quarta-feira, 10 de abril de 2013

Configurando APR (JBoss Web Native) no JBoss AS 7.1.3


INTRODUÇÃO


Habilitando o uso do APR (Apache Portable Runtime), permite que o subsistema web do servidor JBoss AS 7 possa usar essa API que por sua vez, chama métodos nativos (JNI) da plataforma atual. Ou seja, se estamos usando linux, configuramos o servidor JBoss para "enxergar", "reconhecer" os arquivos binários ".so" que executará de maneira nativa no micro o que dará maior desempenho ao invés de usar o subsistema web no JBoss AS 7 totalmente em Java.
O Jboss fornece pacotes com binários para diversas plataformas, assim, podemos aumentar o desempenho do subsistema web para cada plataforma.


CONFIGURAÇÃO

Download do arquivo jbossweb-native-2.0.10.jar

Contêm todos binários de todas plataformas.

Descompacte esse arquivo.

Entre dentro da pasta que contêm o jbossweb-native descompactado e depois disso, entre na pasta "bin"

Copiar tudo o que contêm a pasta "bin" para dentro da pasta "bin" do servidor JBoss AS 7.1.

Exemplo:

// Supondo que essa pasta contêm
// os diretórios / arquivos do arquivo compactado jar.

cd jbossweb-native-2.0.10 

// Entra no diretório bin.
cd bin

// Copia de modo recursos todos os subdiretórios
cp -R META-INF $JBOSS_HOME/bin

// Entre no diretório $JBOSS_HOME/bin
cd $JBOSS_HOME/bin

// Veja se o diretório META-INF foi copiado dentro do diretório $JBOSS_HOME/bin
ls $JBOSS_HOME/bin.

// Execute o seguinte comando no diretório META-INF para
// que os arquivos binários (dll, so, etc, dependendo da plataforma) possam
// ser executados. Esse comando dará permissão de escrita.
chmod -R a+x META-INF

// Esse comando tem o argumento "-R" que indica recursividade, ou seja, o diretório META-INF
// e seus subdiretórios e arquivos, terão suas permissões alteradas de maneira recursiva, até achar diretórios folhas (sem filhos).
// Se não executar esse comando, os binários podem não ser carregados, pois o sistema operacional
// rejeitará o carregamento dos binários pela JVM.


Ajustar standalone-full-ha.xml:


Mude o valor do atributo "native" de "false" para "true".

<subsystem xmlns="urn:jboss:domain:web:1.2" default-virtual-server="default-host" instance-id="${jboss.node.name}" native="true">



Inicie o servidor JBoss AS 7.1.3.

Verifique no log ($JBOSS_HOME/standalone/log/server.log) se o APR está ativo.
Para isso, execute o seguinte comando:

cat server.log | grep "coyote"


O servidor deverá mostrar essas linhas:

09:41:37,492 INFO  [org.apache.coyote.ajp.AjpAprProtocol] (MSC service thread 1-1) Starting Coyote AJP/1.3 on ajp-/127.0.0.1:8009
09:41:37,519 INFO  [org.apache.coyote.http11.Http11AprProtocol] (MSC service thread 1-2) Starting Coyote HTTP/1.1 on http-/127.0.0.1:8080


Se não aparecer essas linhas, isso indica que as bibliotecas nativas do jboss-web native não foram instaladas com sucesso.


CONCLUSÃO

Com o uso do jboss web nativo, aumentamos o desempenho do servidor na parte web. E também, é importante lembrar que o uso dessas bibliotecas nativas (binários) é de uso opcional, não impactando no funcionamento correto do servidor e a única coisa que agrega, é mais desempenho, por usar componentes que são executados diretamente na máquina e não via JVM.
Lógico que o servidor JBoss AS 7 roda em cima de uma JVM, mas com o jboss web nativo ativado, o processamento passa da JVM pela interface JNI (interface para acesso de métodos nativos no Java) que invoca as implementações de métodos nativos nos binários da plataforma.


REFERÊNCIAS








Nenhum comentário:

Postar um comentário