Dicas, JBoss

Configurando JBoss AS 5: principais arquivos de conf.

Se você  está acostumado com a configuração do JBoss AS 4.x (baseado no Microkernel JMX do JBoss) e começou a trabalhar com a versão 5 deve estar, como eu no início, um pouco perdido para encontrar as principais configurações espalhadas pelos novos descritores de serviços (arquivos *-service/bean.xml) na nova estrutura do JBoss AS. Na nova versão boa parte dos arquivos de conf. foram alterados por conta da nova implementação do kernel do JBoss – agora chamado JBoss Microcontainer ou simplesmente JBossMC.

Neste post pretendo mostrar a localização e alguns trechos de configuração para alguns ajustes que considero importantes e que creio fazer parte do dia a dia de um Admin. de JBoss AS. Portanto meu objetivo neste post está longe de percorrer todas as mudanças e configurações da dessa versão do JBossAS!

1) Para começar mostro onde se encontra a configuração do serviço responsável pelo controle transacional do servidor – TransactionManager.

Descritor do serviço: $JBOSS_HOME/server/default/transaction-jboss-beans.xml

Uma propriedade que geralmente precisamos ajustar é o timeout da transação (lembrando que isso altera o timet global do AS)

Trecho de conf:

<property name="transactionTimeout">600</property> <!-- alterado para 10 min (600s). -->
<property name="objectStoreDir">${jboss.server.data.dir}/tx-object-store</property>
<property name="mbeanServer"><inject bean="JMXKernel" property="mbeanServer"/></property>

2) Agora o mecanismo responsável por “monitorar” o diretório de deploy e fazer o Hot Deployment é o HDScanner.

Descritor do serviço: $JBOSS_HOME/server/default/deploy/hdscanner-jboss-beans.xml

Trecho de conf:

<!-- Hotdeployment of applications -->
 <property name="deployer"><inject bean="ProfileServiceDeployer"/></property>
 <property name="profileService"><inject bean="ProfileService"/></property>
 <property name="scanPeriod">5000</property> <!-- intervalo do scanner -->
 <property name="scanThreadName">HDScanner</property>
 </bean>
...

Para desabilitar o HDScanner basta renomear o descritor hdscanner-jboss-beans.xml para extensão .rej (ou remover o arquivo).

3) Outro importante serviço é o ServiceBindManager. Ele é responsável por configurar as portas de cada connector/invoker de acesso aos serviços/containers internos do JBoss.

Por exemplo o conector HTTP do JBossWEB atende por padrão na porta 8080, quando se deseja subir mais de uma instância num mesmo Host (JBoss em MultiHomed), temos duas alteranativas: (a) definir um endereço  IP para cada instância (run.sh -c default -b x.x.x.x) ou (b) usar o ServiceBindManager para trocar as portas automaticamente durante o startup do AS.

Para informar ao JBoss como ele irá atribuir as portas aos conectores basta informarmos um propriedade à JVM na linha de comanda que inicia o servidor:

./run.sh -c default -Djboss.service.binding.set=ports-01

Em destaque o parâmetro que informa aos ServiceBindManager quel o conjunto de portas será atribuído aos conectores de cada serviço. Neste exemplo (ports-01) irá atribuir a porta 8180 ao conector HTTP por exemplo.

Descritor do serviço: $JBOSS_HOME/server/default/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml

Trecho de conf:

<!-- Provides management tools with a ProfileService ManagementView
     interface to the SBM and its components -->
<constructor>
<!-- The name of the set of bindings to use for this server -->
<parameter>${jboss.service.binding.set:ports-default}</parameter>
<!--  The binding sets -->
<parameter>
<set>
   <inject bean="PortsDefaultBindings"/>
   <inject bean="Ports01Bindings"/>
   <inject bean="Ports02Bindings"/>
   <inject bean="Ports03Bindings"/>
</set>
</parameter>

<!-- Base binding metadata that is used to create bindings for each set -->
<parameter><inject bean="StandardBindings"/></parameter>
</constructor>
</bean>

Como podemos ver, o JBoss fornece 4 conjuntos de portas prontos para uso. Os parâmetros que devem ser informados na propriedade da linha de comando são os seguintes:

  • ports-default
  • ports-01
  • ports-02
  • ports-03

Basicamente o ServiceBindManager adiciona 100 ao número padrão de cada porta, ou seja, para a porta HTTP padrão (8080) quando usamos o conjunto ports-01 ela passará a ser 8180.

4) O serviço de LOG do JBoss continua sendo o Log4j. Nesse serviço geralmente temos a necesside alterar somente o nível (DEBUG,INFO,WARN,ERROR,FATAL) de saída do LOG geral do AS conforme a necessidade do ambiente. Na versão 5 do JBoss podemos informar esse nível de log via uma outra propriedade do sistema passada via linha de comando:

./run.sh -c default -Djboss.server.log.threshold=DEBUG

Neste caso informamos que o nível de log do servidor será DEBUG (geralmente utilizado em ambiente de desenvolvimento).

Outros ajustes do Log4j continuam sendo feitas no descritor do serviço tais como a configuração de appenders e category.

Descritor do serviço: $JBOSS_HOME/server/default/conf/jboss-log4j.xml

Por enquanto ficamos com esses pontos da configuração do JBoss AS. Posteriormente falarei sobre a configuração de classloaders isolados em aplicações WEB.

Abaixo algumas referências ([1] e [2]) sobre as principais mudanças no AS 5 descritas no wiki oficial do JBoss.ORG.

Abraço!

________

Ref.
[1] http://community.jboss.org/wiki/JBossAS50xChangesFAQ
[2] http://community.jboss.org/wiki/JBossAS5FAQ

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s