Hosted by:

wrapper.disable_shutdown_hook Property

wrapper.disable_shutdown_hook Property

Configuration Property Overview

- Configuration Property Overview
- Advanced Properties
- Property List by Name

wrapper.disable_shutdown_hook

Disable detection of calls to `System.exit()`. If disabled, calls to `System.exit()` will be treated as if the JVM had crashed and the Service will be restarted.

The Wrapper registers a shutdown hook by default. If an application ever calls `System.exit()` rather than calling `WrapperManager.stop()` to stop the service, then the Wrapper will correctly shutdown the server.

You may wish to disable the shutdown hook for a number of reasons.

If an application contains code which sometimes fails and calls System.exit(), this property can be useful to make sure that the server comes back up. In most cases however, the wrapper.on_exit.<n> is better suited for resolving this problem.

Example:

    wrapper.disable_shutdown_hook=TRUE

WARNING

When the Wrapper detects that `System.exit()` has been called, it will call the `stop()` method on your application if it implements the WrapperListener method. You must be careful that your application does not call `System.exit()` again or call the `dispose()` method on an AWT frame or window. Either one of these actions will result in a deadlock when called from within a ShutdownHook thread due to the way Java has implemented these methods. If either of these cases can not be avoided, then the shutdown hook should be disabled.

If you have control over whether the `System.exit()` or `dispose()` methods are called, you may be able to make use of the `WrapperManager.hasShutdownHookBeenTriggered()` method to avoid the deadlock issue.

For more information on the AWT deadlock bug, see the full description of bug #4712342 on Sun's site.

by Leif Mortenson

Copyright ©1999-2004 by Tanuki Software. All Rights Reserved. | last modified: