關于Apache Portable Runtime and Tomcat- -
??????????????????????????????????????
關于Apache Portable Runtime and Tomcat
在從Tomcat 5.0.28轉向5.5.X時,在啟動時發現出現如下信息
[org.apache.catalina.core.AprLifecycleListener]-[INFO] The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: (...你的系統環境PATH路徑...)
在停止時發現出現如下信息
[org.apache.catalina.core.AprLifecycleListener]-[INFO] Failed shutdown of Apache Portable Runtime
于是,想消除這個問題,通過查閱 http://tomcat.apache.org/tomcat-5.5-doc/apr.html
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).
These features allows making Tomcat a general purpose webserver, will enable much better integration with other native web technologies, and overall make Java much more viable as a full fledged webserver platform rather than simply a backend focused technology.
發現 Tomcat 可以用 Apache Portable Runtime 來提供更強性能,提升Web靜態頁面的處理能力,不再需要專門的Web Server來處理靜態頁面了。
但是APR的支持需要安裝三個本地組件
APR support requires three main native components to be installed:
1、APR library
2、JNI wrappers for APR used by Tomcat (libtcnative)
3、OpenSSL libraries
解決:Windows下的安裝配置與使用
1、先去 http://tomcat.heanet.ie/native/ 下載編譯好的 tcnative-1.dll 文件,也可以下載tomcat-native.zip自己進行編譯
2、修改一下 catalina.bat,加上
set CATALINA_OPTS="-Djava.library.path=../../APR/lib"
因為我把這個DLL放在與Tomcat目錄同級的APR/lib目錄下,所以采用了相對路徑。或者把dll加到你的系統變量PATH里之類的,最簡單的方法應當就是把tcnative-1.dll文件放在Tomcat的bin目錄下:)
這樣設置后,啟動可以看到信息如下:
[org.apache.coyote.http11.Http11AprProtocol]-[INFO] Initializing Coyote HTTP/1.1 on http-9091
在停止時發現出現如下信息
[org.apache.coyote.http11.Http11AprProtocol]-[INFO] Pausing Coyote HTTP/1.1 on http-9091
......
[org.apache.coyote.http11.Http11AprProtocol]-[INFO] Stopping Coyote HTTP/1.1 on http-9091
這樣就配置成功了。性能方面目前沒有做詳細的測試。
======================================================================
相關的文檔參見
http://tomcat.apache.org/tomcat-5.5-doc/apr.html
相關的性能測試結果參見
http://www.javaworld.com.tw/jute/post/view?bid=9&id=139958&sty=3&age=0