World Map
Java Service Wrapper is the easiest way to make your product more reliable.
  • Free Trial
  • Buy Now
wrapper.shutdown.timeout Property

wrapper.shutdown.timeout

Compatibility :2.2.7
Editions :Professional EditionStandard EditionCommunity Edition
Platforms :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/OSIBM z/Linux

WARNING

DO NOT modify any of these parameters unless you have read this property description. Incorrect settings can cause the Wrapper to fail to operate as expected.

Number of seconds to allow between the time that the Wrapper asks the JVM to shutdown and the time that the JVM side of the Wrapper responds that it is stopping. Setting this property value to "0" (zero) means never time out.

The default value is "30 seconds".

Example:
wrapper.shutdown.timeout=30

Problems? :

If you are experiencing timeout problems as your application is shutting down, you may want to consider extending this timeout. This can happen in cases where the shutdown code within the application takes a long time to complete. As a test, try setting this property value to something like 300 (5 minutes) and see if this makes the problem go away.

If the application still times out quicker than the 5 minute test timeout, then the problem may be in a later phase of shutdown. Take a look at the wrapper.jvm_exit.timeout property.

If the application still times out after waiting the full 5 minutes, then you will have to do some debugging of your application to see what is taking so long. If it is possible to speed up the application's shutdown phase, that would be best. Otherwise set the timeout to a value that allows the application to shutdown cleanly.

It is best to choose a value which is long enough to let the application run reliably, but short enough that the Wrapper will react as quickly as possible in the event of an actual JVM hang.

WrapperManager.signalStopping(n):

If the shutdown procedure sometimes takes a long time, one alternative to setting a long timeout is to periodically call the WrapperManager.signalStopping(n) method. This method let the Wrapper know that the JVM is alive and the application's shutdown is going well. The report will be repeated as many times as needed. Therefore, that additional time is required, and it may take much longer time on the shutdown.

If you are having problems with your application timing out on shutdown, it may be useful to have the Wrapper attempt to request a thread dump prior to killing the JVM. This will usually make it clear what was preventing the JVM from shutting down. Please see the wrapper.request_thread_dump_on_failed_jvm_exit property for more information.

WARNING

While the ability is there, be aware that setting this property value to "0" (zero) (= disable Timeout) or some large value will mean that the Wrapper's ability to detect a JVM hang during the shutdown phase will be disabled.

WARNING

While the wrapper.java.detect_debug_jvm property is set to "TRUE" and the Debugger Detection is functioning, this "timeout" property will be ignored.

Reference: Timeout

Reference: Shutdown

The Java Service Wrapper provides a full set of configuration properties that allows you to make the Wrapper meet your exact needs. Please take a look at the documentation for the individual properties to see all of the possibilities beyond the examples shown above.