警告
このプロパティの説明を読まずに、パラメーターを変更することは絶対にしないで下さい。 設定を間違えると、期待どおりに動作せず、Wrapperの動作不良や不具合の原因となります。
このプロパティでは、 [System.exit()]へのコール検知を無効にします。 もし無効に設定されている場合、 [System.exit()]へのコールは、 JVMがクラッシュしてものとして取り扱われ、サービスを再起動します。
Wrapperは、デフォルトでシャットダウン・フックを登録します。 もし、アプリケーションが、サービスを停止する際には、 [WrapperManager.stop()] を呼び出すのではなく、 [System.exit()]を呼び出し、 そして、Wrapperがサーバーを正しくシャットダウンします。
多くの理由により、シャットダウン・フックを無効にしたいと願うかもしれません。
もし、アプリケーションが、時々失敗するコードを含んでいて、 [System.exit()]をコールする場合、 サーバーが回復して戻ってくると確認するのに、このプロパティは役に立つはずです。 しかしながら、ほとんどのケースでは、 [wrapper.on_exit.<n>] は、この問題を解決するのに、より適しています。
wrapper.disable_shutdown_hook=TRUE
[System.exit()] がコールされたとWrapperが検知すると、 [WrapperListener] メソッドを実装している場合、ご利用のアプリケーション上で、 [stop()]メソッドをコールします。 ご利用のアプリケーションは、 再度[System.exit()] をコールしたり、 AWTフレームやウィンドウ上で、[dispose()]メソッドを コールしたりしませんので、ご注意ください。 これらのアクションのいずれにしても、 Javaがこれらのメソッドを実装している都合で、 シャットダウン・フック・スレッド内部からコールされる時、 デッドロックの結果となります。 もし、これらのケースのいずれも、避けることができないならば、 シャットダウン・フックを無効にするべきです。
もし、ご自分で [System.exit()]あるいは [dispose()]メソッドがコールされるかどうか、 コントロールするならば、 デッドロック問題を回避するために、 [WrapperManager.hasShutdownHookBeenTriggered()] メソッドを利用してもよいかもしれません。
AWTデッドロック・バグに関する詳しい情報は、サンのサイトに完全な説明がありますのでご覧ください: 『bug #4712342』
If you notice something that is incorrect, missing, or simply feel that some part of this page could be explained better, feel free to log in and add a comment. You will need to register before you can log on.