解決:The APR based Apache Tomcat Native library which allows optimal performance in production...


tomcat日志apr報錯引發的基於Tomcat Native加速Tomcat性能

tomact服務啟動報錯日志如下:
息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /home/ss/jdk1.6.0_13/jre/lib/amd64/server:/home/ss/jdk1.6.0_13/jre/lib/amd64:/home/ss/jdk1.6.0_13/jre/../lib/amd64:/usr/java/packages/lib/amd64:/lib:/usr/lib
2013-6-8 10:19:00 org.apache.coyote.http11.Http11Protocol init

缺少apr的支持: 
Tomcat Native 是利用 APR 來提升Tomcat性能的本地API
Tomcat Native 這個項目可以讓 Tomcat 使用 Apache 的 apr 包來處理包括文件和網絡IO操作,以提升性能。
以下是tomcat官網搜索說明:
Tomcat can use the Apache Portable Runtime to provide superior scalability, performance, and better integration with native server technologies. The Apache Portable Runtime is a highly portable library that is at the heart of Apache HTTP Server 2.x. APR has many uses, including access to advanced IO functionality (such as sendfile, epoll and OpenSSL), OS level functionality (random number generation, system status, etc), and native process handling (shared memory, NT pipes and Unix sockets).

網上搜索解釋:
tomcat native在具體的運行平台上,提供了一種優化技術,它本身是基於APR(Apache Portable Runtime)技術
也就是說,我們應用了tomcat native技術之后,tomcat在跟操作系統級別的交互方面可以做得更好,並且它更像apache一個,可以更好地作為一台web server。

目前,Tomcat Native的最新版本是1.1.27 如果tomcat包里沒有自帶native的話
其下載地址:http://archive.apache.org/dist/tomcat/tomcat-connectors/native/1.1.24/source/tomcat-native-1.1.24-src.tar.gz
測試時發現我的tomcat1.5版本不支持tomcat-nativer的1.1.27最新版本,1.1.24版可以使用.


1. 安裝方法參見:http://tomcat.apache.org/native-doc/
#yum install apr-devel
#cd ~/apache-tomcat-6.0.36/bin
#tar zxf tomcat-native.tar.gz
#cd ~/apache-tomcat-6.0.36/bin/tomcat-native-1.1.23-src/jni/native
#./configure --with-apr=/usr/bin/apr-1-config --with-java-home=/home/ss/jdk1.6.0_13 --prefi
x=/home/ss/apache-tomcat-6.0.36
make && make install
安裝成功如下提示:
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/apr/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
2. 添加環境變量:
官網說明:Edit $CATALINA_HOME/bin/setenv.sh (creating the file if necessary) and add the path to the tc-native libraries to LD_LIBRARY_PATH

tomcat安裝目錄bin下創建setenv.sh文件:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_HOME/lib
    export LD_LIBRARY_PATH

3. tomcat啟動后查看日志 apr已加載上
2013-6-8 14:31:05 org.apache.catalina.core.AprLifecycleListener init
信息: Loaded APR based Apache Tomcat Native library 1.1.23 using APR version 1.3.9.
2013-6-8 14:31:05 org.apache.catalina.core.AprLifecycleListener init
信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].

 

 如果還是報錯路徑下找不到庫:

息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /home/saas/jdk1.6.0_13/jre/lib/amd64/server:/home/saas/jdk1.6.0_13/jre/lib/amd64:/home/saas/jdk1.6.0_13/jre/../lib/amd64:/usr/java/packages/lib/amd64:/lib:/usr/lib
解決,將安裝好的libtcnative庫拷貝到上面提示的任一地址下即可:
# ll  ~/jdk1.6.0_13/jre/lib/amd64/server/
-rw-r--r-- 1 saas saas 1604882 6月  18 16:43 libtcnative-1.a
-rwxr-xr-x 1 saas saas    1042 6月  18 16:43 libtcnative-1.la
-rwxr-xr-x 1 saas saas  902937 6月  18 16:42 libtcnative-1.so
-rwxr-xr-x 1 saas saas  902937 6月  18 16:43 libtcnative-1.so.0
-rwxr-xr-x 1 saas saas  902937 6月  18 16:43 libtcnative-1.so.0.1.24

 

原文:http://blog.51cto.com/iceeggplant/1218909


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM