Bibliotecas Nativas do Tomcat | Thiago Galbiatti Vespa
Bibliotecas Nativas do Tomcat
Postado em: 16/11/2011 por: Thiago Galbiatti Vespa — Seja Você o Primeiro a Comentar! ↓
As bibliotecas nativas do Tomcat são interfaces JNI para aumentar o desempenho das aplicações que rodam no servidor Tomcat através de chamadas nativas. Quando você não tem essas libs no library path do java, o Tomcat exibe a seguinte informação no log: "INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path".
O primeiro passo é instalar as bibliotecas do APR e do OpenSSL. Para isso, execute o seguinte comando no Ubuntu (ou similares Debian):
sudo apt-get install libapr1-dev libssl-dev
Em distribuições que usam RPM você pode utilizar o seguinte comando:
Baixe o código fonte no site: http://tomcat.apache.org/download-native.cgi, descompacte em uma pasta, acesse a subpasta jni/native e execute o seguinte comando:
./configure --with-apr=$HOME_APR \
--with-java-home=$JAVA_HOME \
--with-ssl=$HOME_OPENSSL \
Onde $HOME_APR é o caminho onde o APR está instalado, $JAVA_HOME é o caminho do Java, $HOME_OPENSSL é onde o OpenSSL está instalado e $CATALINA_HOME é o diretório do Tomcat ou um local específico que você queira colocar as libs. No meu caso ficou assim:
--with-java-home=/usr/lib/jvm/java-6-sun \
--prefix=/opt/tomcat/native
Digite "make" e aguarde a compilação. Para testar (opcional) digite o seguinte comando:
ant run-echo
Caso você tenha algum erro dizendo que o ant não está instalado, digite:
E repita o comando anterior. Caso contrário, você deverá ter uma saída com a versão da biblioteca utilizada:
[echo] Running Tomcat Native Echo example ...
Native        1.1.22
APR           1.3.8
Digite "make install" e verifique se a lib libtcnative foi criada na pasta lib do diretório especificado ($CATALINA_HOME). Eu prefiro deixar as libs em pastas separadas para utilizar em diversos Tomcat. Então nesse caso é necessário incluir a seguinte linha no início do bin/catalina.sh:
CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=/opt/tomcat/native/lib"
Substitua para o caminho adequado para o seu ambiente. Inicie o Tomcat. Verifique o log e caso tenha o seguinte problema:
"Catalina";  Protocol handler start failed: java.lang.Exception: Socket bind failed: [22] Invalid argument
É porque a versão de Tomcat utilizada está com bug, Obtive esse problema com a versão 6.0.18. Atualize o Tomcat para uma versão mais recente (nesse tutorial utilizei a 6.0.33) e o problema deverá sumir.
Se você obteve no log as seguintes linhas:
Significa que já está utilizando a otimização de bibliotecas nativas.
Para realizar essa mesma configuração para o JBoss o procedimento é diferente. Para isso consulte o seguinte site: http://www.jboss.org/jbossweb/native
Este post foi publicado em: Java,JEE,Linux Listada nas Tags: java,linux,tomcat,ubuntu por: Thiago Galbiatti Vespa. Arquivado em: Link permanente.