wrapper.java.detect_debug_jvm プロパティ

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

警告

このプロパティの説明を読まずに、パラメータを変更することは絶対にしないで下さい。 設定を間違えると、期待どおりに動作せず、Wrapperの動作不良や不具合の原因となります。

Wrapperには、JVMがフリーズした時、あるいはJVMが不安定になった時、 それを検知するように設計されたいくつかの機能を備えています。 通常どおり、これらの機能は全て有効のままにしておくべきです。 しかしながら、JVMがデバッガーに接続したときには、 様々なデバッグ動作が行われるため、意図的にJVMをフリーズさせるのが一般的です。 これらのケースの場合、Wrapperは「JVMがフリーズしている」「JVMが落ちた」と想定して、 通常通り、デバッグセッションの途中で、再起動させることになります。 Wrapperは、設定したJavaコマンドラインを確認したり、 デバッガーが利用中であると検知した場合には、一部のタイムアウトを無視したりすることで、この問題を回避します。 このプロパティでは、このデバッグの確認を「有効にする(TRUE)/無効にする(FALSE)」設定が可能です。 デフォルト値は「TRUE」でデバッグ作業を検知して、一部のタイムアウトを無視します。

設定例:(デバッグ検知あり)
wrapper.java.detect_debug_jvm=TRUE

デバッガーの検知:

もし[wrapper.java.command] プロパティに『jdb』や『jdb.exe』が設定されているとき、あるいは、 [wrapper.java.additional.<n>] プロパティの一つに『-Xdebug』が設定されているとき、 Wrapperは「JVMがデバッガーの利用中である」と判断します。

Wrapperが「デバッガー利用中」を検知すると、スタートアップ時のログに次のメッセージが記録されます:

スタートアップ時のログ:
------------------------------------------------------------------------
デバッガ有効の状態でJVMが起動されてます、恐らくサスペンドされます。
不要な自動シャットダウンを避けるために、タイムアウト監視を無効にし、
JVMのフリーズ(凍結)を検知して再起動させる能力を無効にしました。
------------------------------------------------------------------------

タイムアウト機能を無視したとき一番最初に、次のメッセージがログに記録されます:

ログメッセージ:
------------------------------------------------------------------------
Ping: JVMからのシグナル待ちのタイムアウト。
JVMがデバッグオプションで起動されました。 これは、JVMがデバッガーによって
現在サスペンドされているためによるものかもしれません。
このJVM動作中には、今後のタイムアウトは静かに無視されます。
------------------------------------------------------------------------

デバッガー検知の影響を受ける「タイムアウト」プロパティ:

「デバッグ検知」が有効になっている間、このタイムアウトプロパティは無視されます。

参照: Java コマンド