I’m trying to figure out why my web app (I didn’t write it, but I’m supposed to debug it) is consistently causing the Tomcat web server to restart. All I see in the logs before the server restarts is:
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
I can actual do this same processing on other groups of files and it works fine, but doing this one particular group causes the server to restart. Mostly I’m hoping somebody can tell me if that’s just a timeout, or if there should be some other log file telling me why it’s dying. And if it’s a timeout, if there’s a way to increase it.
Update: I tried starting the server with bin/catalina.sh run which puts the output to stanadard out instead of catalina.out, and all I get instead of the above is the progress from my app and then “Killed”.
As an aside, I don’t know what’s restarting it, but when I try to restart the server with bin/catalina.sh run, I get a BindException, so something restarted it.
Update 2: It was using Tomcat 5.5 and Java 5. I installed Tomcat 6 and set it up to use Java 6, and the same thing is happening. Also, if I do an “echo $?” after the “Killed”, it gives me “137”, which probably indicates the hosting company is killing it off for some reason.
Never mind – it turns out the hosting company was killing my process (with kill -9 no less) because it was taking too much CPU time. Now I have to figure out how to do this incredibly time consuming task without using 90% of their CPU for more than 10 minutes – I tried “nicing” Tomcat and that didn’t help, so I may have to add a “sleep(1000)” in the processing loop or something.