World Map
Java Service Wrapperは、御社Javaアプリケーション製品の安定した信頼性を高める最短最善の方法です。
  • Free Trial
  • Buy Now
wrapper.disable_shutdown_hook プロパティ

wrapper.disable_shutdown_hook プロパティ

対応バージョン : 1.0.0
対応エディション :プロフェッショナル版スタンダード版コミュニティー版
対応プラットフォーム :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/OSIBM z/Linux

警告

このプロパティの説明を読まずに、パラメータを変更することは絶対にしないで下さい。 設定を間違えると、期待どおりに動作せず、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デッドロックバグに関する詳しい情報は、Sunのサイトに完全な説明がありますのでご覧ください: 『bug #4712342

参照: シャットダウン

Java Service Wrapper では、必要なコンフィギュレーション設定を含んだ完全なパッケージを提供しており、 それを活用することで、皆様の求めるニーズに合った動作を実現させることができます。 上記の例の他に、工夫次第で様々なことが実現可能となりますので、それぞれ個別にプロパティページをご覧ください。