By default Java monitors the currently running threads and will cause the
JVM to begin the shutdown process when it detects that all non-daemon
threads have completed. The Java component of the Wrapper has need for
its own non-daemon threads, meaning that this check will never be satisfied.
To make it possible for the Wrapper to tell when an application has
completed and shutdown in the same way that a standalone JVM does, the
Wrapper does its own thread counting. Normally, this property should
never be touched. But there have been certain cases reported where under
heavy loads an application's main thread may not actually be started
before the first thread count. This was resulting in the Wrapper thinking
the application had completed and shutting down.
The default value of this property has been set to one second. Versions of
the Wrapper before the property was introduced effectively had a value of
0. This alone will resolve the problem in most cases. Secondly, the
WrapperSimpleApp and WrapperStartStopApp classes were modified to make the
original problem impossible. There may still be cases when writing custom
WrapperListener implementations where this value may need to be extended.
Example: |
wrapper.thread_count_delay=1
|
|