|
From: Clement, N. <ncl...@qv...> - 2003-04-03 00:21:48
|
Here's the message again with the log trimmed more -----Original Message----- From: Clement, Nathan Sent: Thursday, 3 April 2003 10:13 To: 'wra...@li...' Subject: RE: Disabling JVM ping Leif, The new configurable Java side timeout sounds like a good idea. We haven't had any problems with the application in question overnight, which is obviously a good start. However, we have had a similar problem with another application in a customer's environment. This environment seems unique in some way, because we can't replicate the problem in any of our test environments. I have attached the log of the wrapper trying to start the JVM. The key lines I saw are as follows: Wrapper Process has not received any CPU time for 52 seconds. Extending timeouts. The Wrapper code did not ping the JVM for 40 seconds. Quit and let the wrapper resynch. The problem occurs continually on startup - the wrapper starts the JVM, then the application almost starts up, and finally quits because it has not been pinged for 30 seconds. The restarts occur repeatedly until the wrapper gives up. I don't know why the wrapper process is not getting any CPU for this long - the logging on startup is not what I'd call excessive (only about 60k per start-up). The interesting thing is that if the wrapper is run interactively (not as a service), the application starts fine and continues to work without problems. Since this is a customer's environment, any suggestions you can provide would be welcome. Thanks again, Nathan From: Leif Mortenson <leif@ta...> Re: RE: Disabling JVM ping 2003-04-02 02:08 Wow, you want to disable the feature that led me to create the Wrapper in the first place... Having just had problems with restarting I can understand your concern. But in general, the Wrapper is quite good about only restarting the JVM when it is really necessary. The ability to sleep well at night and put the old pager in the bottom drawer where it belongs should be viewed as a good thing :-) The wrapper.ping.timeout property controls how long the Wrapper will allow to pass without the JVM responding to a ping. The problem was inverted in your case. The Wrapper process was busy and failed to ping the JVM. The JVM side of the Wrapper has a feature that will cause it to exit and let the Wrapper restart it if it ever fails to be pinged for a long period of time. The thinking there was to avoid the JVM turning into a zombie process if the Wrapper process ever died abnormally. The fact that this Java side timeout is hard coded at 30 seconds was an oversight. It should have been the same as the ping timeout on the Wrapper side. A fix is now in CVS and will be in the 3.0.2 release. I don't want to do a release just for this as it is not a critical problem. Unless you really need this immediately for some reason, I'll wait until there are more things needing to be released. You can also do a build from CVS to get it sooner. Cheers, Leif |