我正在试图找出为什么我的网络应用程序(我没有写它,但我应该调试它)一直导致Tomcat Web服务器重新启动。我在服务器重新启动之前在日志中看到的只有:
Jul 24, 2009 7:52:15 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The Apache Portable Runtime which allows optimal performance in production environments was not found on the java.library.path: /usr/local/jdk1.5.0_09/jre/lib/i386/server:/usr/local/jdk1.5.0_09/jre/lib/i386:/usr/local/jdk1.5.0_09/jre/../lib/i386
Jul 24, 2009 7:52:15 AM org.apache.coyote.http11.Http11BaseProtocol init
我实际上可以对其他文件组执行相同的处理,但它工作正常,但执行此特定组会导致服务器重新启动。大多数情况下,我希望有人可以告诉我,如果这只是一个超时,或者是否应该有一些其他日志文件告诉我它为什么会死亡。如果超时,如果有办法增加它。
更新:我尝试使用bin/catalina.sh run
启动服务器,将输出放到stanadard而不是catalina.out,而我得到的所有内容都是从我的应用程序取得的进度然后“杀死”。
顺便说一句,我不知道是什么重新启动它,但是当我尝试使用bin/catalina.sh run
重新启动服务器时,我得到一个BindException,所以某些东西重新启动它。
更新2 :它使用的是Tomcat 5.5和Java 5.我安装了Tomcat 6并将其设置为使用Java 6,同样的事情正在发生。另外,如果我做“echo $?”在“杀死”之后,它给了我“137”,这可能表明托管公司因某种原因将其解雇了。
答案 0 :(得分:4)
AprLifecycleListener的职责是初始化Apache Portable Runtime,请参阅 http://tomcat.apache.org/tomcat-6.0-doc/apr.html
你能发布关机的日志条目吗(你有没有,或者上面你看到了什么?)?
BTW,你说tomcat重新启动,标准shell脚本只启动tomcat一次,它们只是在tomcat退出时退出。您是否有任何可能正在重新启动服务器的包装软件(如http://wrapper.tanukisoftware.org/)?答案 1 :(得分:3)
我知道这很蹩脚,但你的应用程序可能以某种方式导致调用System.exit()?
答案 2 :(得分:3)
没关系 - 事实证明托管公司正在杀死我的进程(使用kill -9不会少),因为它占用了太多的CPU时间。现在我必须弄清楚如何在不使用90%的CPU超过10分钟的情况下完成这个非常耗时的任务 - 我试着“咬”Tomcat并且没有帮助,所以我可能需要添加一个“睡眠”( 1000)“在处理循环中或其他东西。
答案 3 :(得分:1)
我相信您只在服务器首次启动时才会看到该APR消息。
部署在Tomcat中的应用程序不应该让整个服务器停止并重新启动 - 这没有多大意义。可以做一些事情来重新加载webapp 本身(例如更改web.xml,或从Tomcat Manager中点击Reload),但部署的应用程序不应该能够停止/启动整个服务器
您确定没有外部停止和启动服务器吗?某个shell脚本或cron作业?
答案 4 :(得分:0)
取消部署webapp,看看Tomcat是否会出现它。我怀疑Tomcat安装不好。