`

关于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

分享到:
评论
5 楼 coffeesweet 2010-04-20  
谁试过用tomcat5.5.28配置apr,windows环境下的,报java.lang.NoSuchFieldException: TCN_MAJOR_VERSION
错误
至今没解决
4 楼 leesazhang 2009-02-18  
成功!
谢谢!
3 楼 xmx0632 2008-11-27  
Ethip 写道

我的Tomcat6.0.14也出现了和你类似的问题,我严格按照你说的两个的方法去做了,还是没有弄好!不知我哪里搞错了,是否还有其他的原因?


一、我从%tomcat%\bin中启动startup。bat时,弹出窗口:
应用程序或DLL:F:\tomcat\bin\tcnative-1.dll为无效的Windows映像。请再检测一遍你的安装盘。连续点了5次”确定“后,出现的提示是和你的类似

2008-4-16 12:44:25 org.apache.catalina.core.AprLifecycleListener init
信息: The Apache Tomcat Native library which allows optimal performance in produ
ction environments was not found on the java.library.path: (我的系统环境变量)。。。。

但是服务器还算是能启动了!
我新建了一个简单的jsp测试页面,以管理员的身份进点进去还是能正常显示的!但这样终究不是办法,觉得不舒服,因为在MyEclipse中启动Tomcat就很严重了!!!

二、从MyEclipse5.5.1GA中启动Tomcat
点了start后,打开了一个Integer.class页面,里面说“Source not found”

我一路点了Resume,Console下出现如下提示:

2008-4-16 12:52:33 org.apache.catalina.core.AprLifecycleListener init
信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: E:\Appsoftware\jdk1.5.0\bin;F:\tomcat\bin
2008-4-16 12:52:35 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-80
2008-4-16 12:52:35 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 11316 ms
2008-4-16 12:52:35 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2008-4-16 12:52:35 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.14
2008-4-16 12:52:37 org.apache.catalina.core.ApplicationContext log
信息: ContextListener: contextInitialized()
2008-4-16 12:52:37 org.apache.catalina.core.ApplicationContext log
信息: SessionListener: contextInitialized()
2008-4-16 12:52:40 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-80
2008-4-16 12:52:40 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2008-4-16 12:52:40 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/47  config=null
2008-4-16 12:52:40 org.apache.catalina.startup.Catalina start
信息: Server startup in 4719 ms



提示的意思和前面的差不多,也弹出了那个提示窗口!

不知道这遇到的是什么情形的错误?


应该是你的dll文件不完整导致报错,比如只下载了一半,但文件看起来还是正常的时候就会报这种错
2 楼 Ethip 2008-04-16  
我的Tomcat6.0.14也出现了和你类似的问题,我严格按照你说的两个的方法去做了,还是没有弄好!不知我哪里搞错了,是否还有其他的原因?


一、我从%tomcat%\bin中启动startup。bat时,弹出窗口:
应用程序或DLL:F:\tomcat\bin\tcnative-1.dll为无效的Windows映像。请再检测一遍你的安装盘。连续点了5次”确定“后,出现的提示是和你的类似

2008-4-16 12:44:25 org.apache.catalina.core.AprLifecycleListener init
信息: The Apache Tomcat Native library which allows optimal performance in produ
ction environments was not found on the java.library.path: (我的系统环境变量)。。。。

但是服务器还算是能启动了!
我新建了一个简单的jsp测试页面,以管理员的身份进点进去还是能正常显示的!但这样终究不是办法,觉得不舒服,因为在MyEclipse中启动Tomcat就很严重了!!!

二、从MyEclipse5.5.1GA中启动Tomcat
点了start后,打开了一个Integer.class页面,里面说“Source not found”

我一路点了Resume,Console下出现如下提示:

2008-4-16 12:52:33 org.apache.catalina.core.AprLifecycleListener init
信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: E:\Appsoftware\jdk1.5.0\bin;F:\tomcat\bin
2008-4-16 12:52:35 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-80
2008-4-16 12:52:35 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 11316 ms
2008-4-16 12:52:35 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2008-4-16 12:52:35 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.14
2008-4-16 12:52:37 org.apache.catalina.core.ApplicationContext log
信息: ContextListener: contextInitialized()
2008-4-16 12:52:37 org.apache.catalina.core.ApplicationContext log
信息: SessionListener: contextInitialized()
2008-4-16 12:52:40 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-80
2008-4-16 12:52:40 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2008-4-16 12:52:40 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/47  config=null
2008-4-16 12:52:40 org.apache.catalina.startup.Catalina start
信息: Server startup in 4719 ms



提示的意思和前面的差不多,也弹出了那个提示窗口!

不知道这遇到的是什么情形的错误?
1 楼 lyo 2007-05-22  
这样作真的会和apache处理 静态html的性能差不多么

相关推荐

    Failed shutdown of Apache Portable Runtime 解决办法

    当遇到“Failed shutdown of Apache Portable Runtime”的问题时,这通常意味着在尝试关闭APR时遇到了错误。这个问题可能是由于多种原因引起的,包括但不限于配置错误、依赖库的问题或者系统资源冲突。 首先,我们...

    apache-tomcat-7.0.68.tar.gz

    2. 多线程处理:通过NIO(非阻塞I/O)和Apr(Apache Portable Runtime)连接器,提高了并发性能和响应速度。 3. JMX(Java Management Extensions)支持:提供了监控和管理Tomcat实例的能力,便于进行故障排查和性能...

    tomcat 启动报APR based Apache Tomcat Native library not found

    标题 "tomcat 启动报APR based Apache Tomcat Native library not found" 指出的问题是关于Apache Tomcat服务器在启动时找不到基于APR(Apache Portable Runtime)的本机库。这通常涉及到Tomcat使用APR库来提高性能...

    apache-tomcat-7.0.108(UTF8).zip

    4. **连接器优化**:Tomcat 7的NIO(非阻塞I/O)和 APR(Apache Portable Runtime)连接器提供了更高的并发性能,适合处理高流量的Web应用程序。 5. **配置改进**:Tomcat 7的配置文件更加简洁,易于理解和管理。...

    apache-tomcat-7.0.62

    此外,还可以通过启用连接器的NIO或 APR(Apache Portable Runtime)模式来提高并发处理能力。 10. **集成其他应用服务器**: 虽然Tomcat本身是一个轻量级的服务器,但可以通过像Apache HTTP Server这样的反向代理...

    apache-tomcat-9.0.45.zip

    例如,NIO2和APR(Apache Portable Runtime)连接器提供了更高效的I/O处理,对于高并发场景尤其有利。此外,9.0.45版本可能会包含针对内存泄漏和线程安全问题的修复,确保服务器的稳定运行。 总之,Apache Tomcat ...

    apache-tomcat-7.0.34

    同时,通过NIO(非阻塞I/O)和 APR(Apache Portable Runtime)接口,可以实现更高的I/O性能。 10. **社区支持**:作为开源项目,Apache Tomcat拥有活跃的开发者社区,提供及时的技术支持和问题解答。用户可以通过...

    apache-tomcat-8.0.30.zip

    此外,还可以使用连接器如NIO或APR(Apache Portable Runtime)以提高并发处理能力。 10. **社区支持和更新**:Apache Tomcat作为一个开源项目,拥有庞大的开发者社区和持续的更新支持。8.0.30版发布后,可能会有...

    最新版windows apache-tomcat-8.5.72-windows-x64.zip

    此外,NIO和APR(Apache Portable Runtime)连接器提供了非阻塞I/O选项,适用于处理大量并发连接,这对于高流量的Web应用来说至关重要。 安全方面,Tomcat 8.5.72加强了对HTTPS的支持,包括TLS/SSL协议的配置,以...

    apache-tomcat-7.0.28

    同时,还提供了NIO(非阻塞I/O)和 APR(Apache Portable Runtime)连接器,以提升网络性能。 6. **多线程支持**:此版本支持Servlet 3.0中的异步处理,允许Servlet在处理请求时启动新的线程,而不阻塞主线程,提高...

    apache-tomcat-9.0.74-windows-x64

    主要包括以下几个组件:Catalina(核心Servlet容器)、Apr(Apache Portable Runtime,提供高性能网络连接)、 Jasper(JSP引擎)、 Coyote(HTTP/1.1协议处理器)和Juli(日志系统)。这些组件协同工作,提供完整的...

    apache-tomcat-6.0.44

    5. **Apr库**:Apache Portable Runtime(Apr)库提供了一套跨平台的系统接口,增强了Tomcat的性能,特别是在处理高并发请求时。Apr还支持SSL/TLS,提高了网络安全。 6. **安全性**:Tomcat 6.0.44版本在安全方面做...

    apache-tomcat-8.5.97-windows-x.zip

    - 使用NIO或 APR(Apache Portable Runtime)连接器提高性能。 - 缓存JSP编译结果,减少重载压力。 10. **故障排查**: - 查看logs目录下的日志文件,如catalina.out,以定位和解决问题。 - 使用JMX(Java ...

    apache-tomcat-9.0.44.tar.gz

    4. APR (Apache Portable Runtime):提供了与操作系统更紧密集成的功能,如SSL和HTTP连接器,提高性能。 5. Cluster:支持集群部署,实现负载均衡和故障转移。 在实际应用中,Tomcat经常与Spring Boot、Hibernate等...

    apache-tomcat-7.0.59.zip

    8. **性能优化**:Tomcat 7.0.59包含各种性能改进,例如NIO(非阻塞I/O)和APR(Apache Portable Runtime)连接器,这些能提高并发处理能力。 9. **错误处理与调试**:通过查看`logs`目录下的日志文件,可以追踪和...

    apache-tomcat-8.5.9

    3. **NIO2和APR**:此版本的Tomcat提供了对Java NIO2 API的支持,以及对Apache Portable Runtime (APR)库的优化,这可以提高I/O性能,特别是对于高并发场景。 4. **更好的安全特性**:Tomcat 8.5.9增强了安全管理,...

    apache-tomcat-9.0.21-windows-x64.zip

    3. **NIO.2和APR**:Tomcat 9.0.21包含了对Java NIO.2的全面支持,以及可选的Apache Portable Runtime (APR)库,APR利用操作系统级别的特性,如sendfile和epoll,以提高性能和可伸缩性。 4. **JSP 2.3和EL 3.0**:...

    apache-tomcat-8.5.53_tomcat的8.0版本_ApacheTomcat8.5_choiceyqj_

    3. **NIO2和APR**:Tomcat 8.5引入了对Java NIO2的支持,同时保留了对Apache Portable Runtime (APR)的兼容性。这提供了更好的非阻塞I/O性能,适应高并发场景。 4. **更好的日志系统**:根据描述,此版本已经解决了...

    官方原版apache-tomcat-8.5.53-windows-x64.zip

    11. **性能优化**:除了配置参数调整外,还可以通过开启NIO(非阻塞I/O)或APR(Apache Portable Runtime)来提高Tomcat的性能,APR利用操作系统的原生I/O库,可以显著提升处理速度。 12. **集成其他服务**:Tomcat...

    apache-tomcat-7.0.70

    3. NIO(非阻塞I/O)和APR(Apache Portable Runtime)连接器:这两种连接器提供了更高的并发性能,尤其适合高流量网站。 4. 管理工具增强:提供了一个直观的管理界面,可以方便地进行应用部署、监控和管理。 5. ...

Global site tag (gtag.js) - Google Analytics