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.
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