索引

wrapper.ping.timeout プロパティ

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

警告

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

このプロパティには、JVM から送信される ping 応答の最大間隔(秒数)を設定します。

デフォルト値は「30秒」です。

設定例:
wrapper.ping.timeout=30

このプロパティ値を「0 (ゼロ)」に設定すると、タイムアウト(時間切れ)は発生しません。 ping タイムアウトは、 [wrapper.ping.interval] プロパティの値よりも、少なくとも5秒間長く設定しなければなりません。 もし問題を避ける必要があれば、Wrapper はランタイムに値を修正します。

通常の稼働では、Wrapper は、5秒毎に1回、JVM へ ping 送信して、 JVM プロセスがフリーズしていないことを確認します。 ping タイムアウトとは、「JVM がハングアップしているかもしれない」と Wrapper が想定して JVM を再起動する前に、 その JVM からの次の応答までに待機する時間数です。

このプロパティは、Wrapper から ping されずに JVM が通過する時間数もコントロールします。 もし指定されたタイムアウトの時間数以上の間、Wrapper が JVM へ ping 送信しない場合、 Wrapper は新しい JVM を起動することにより再同期します。 これは、また、もし Wrapper プロセスが異常な状態で終了すると (Windows タスクマネージャーで Wrapper プロセスを停止(kill)したり、あるいは、 UNIX システム上で「kill -9」シグナルを利用したりすると)、 JVM も終了させる、ということでもあります。

Wrapper バージョン 3.5.21 より、Wrapper のプロフェッショナル版では、 「しきい値(秒数)」を超えるとすぐに jvm_ping_timeout イベントを発生します。

wrapper.cpu.timeout] プロパティが加わり、今となっては、このプロパティを変更する必要性の理由はほとんどありません。 ping タイムアウトを利用する唯一の理由は、 システムが重い負荷の状態にある場合、あるいは、JVM が本当にハングアップしている場合です。 今は、CPU タイムアウトで CPU に関わるいかなる問題も検知するはずです。

警告

この機能が有効中の場合、 このプロパティ値を「0 (ゼロ)」(=タイムアウト無効)か、あるいは「ある程度の大きい値」に設定すると、 稼働中、JVM ハングアップを検知する Wrapper の機能が無効になる、という意味になるので注意してください。

なお、次のことにもご注意ください。 もし Wrapper プロセスが異常な状態で強制終了されたり、あるいは、とんでもないクラッシュの場合、 JVM は Wrapper との再同期の試みはしません。 その時点で、もし Wrapper が Windows サービスとして動作していた場合、 Java プロセスを停止するためにマシンの再起動が必要かもしれません。 通常の ping タイムアウトで、JVM は2、3秒後に自力で終了するでしょう。

wrapper.java.detect_debug_jvm] プロパティを「TRUE」に設定して「デバッガー検知」が有効中、このタイムアウトプロパティは無視されます。

wrapper.ping.timeout.action プロパティ

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

このプロパティには、上記の[wrapper.ping.timeout]プロパティで指定した秒数が 経過して、ping タイムアウト発生時に動作するアクションを設定します。

逆互換性や一貫性を保つために、アクションのデフォルト値は「RESTART」に設定してあります。

設定例:
wrapper.ping.timeout.action=RESTART

可能なアクションは次のとおり:

  • [DEBUG] (ver. 3.5.0 から):

    デバッグメッセージをログ化します。 これは、アクションがいつ起動されるかを理解するのに役立ちます。

  • [STATS] (ver. 3.5.52から)(スタンダード版、プロフェッショナル版):

    パフォーマンス統計を出力します。

  • [DUMP] (ver. 3.3.6 から):

    スレッドダンプを生成します。

  • [GC] (ver. 3.5.7 から):

    JVM で完全なガベージコレクション掃除を実行します。 完全な掃除をすると、ガベージコレクション中、しばしば全てのスレッドがフリーズしたりなど引き起こすため、 これを頻繁にすると JVM のパフォーマンスに影響しますのでご理解ください。

  • [RESTART] :

    現在の JVM を停止して、新しい「起動の試み(invocation)」として再起動します。

  • [SHUTDOWN] :

    Wrapper 同様に、JVM を終了します。

  • [USER_<n>] (ver. 3.5.0 から)(スタンダード版、プロフェッショナル版):

    ユーザー定義イベントを発生させます。 イベントには、「メール送信」か、 「外部システムコマンドの実行」か、 どちらかのアクションが可能です。 そのコマンド指定には、クリーンアップ作業や SNMP トラップを起こしたり、何でも可能です。

  • [PAUSE] (ver. 3.5.0 から):

    ポーズ(一時停止)が可能で JVM が動作している場合、Java アプリケーションをポーズ(一時停止)します。 詳しくは[wrapper.pausable]プロパティをご覧ください。

  • [RESUME] (ver. 3.5.0 から):

    JVM がポーズ(一時停止)状態にあるとき、Java アプリケーションをレジューム(再開)します。 これは、JVM が停止ではなくポーズ(一時停止)している場合に利用可能です。 詳しくは[wrapper.pausable]プロパティをご覧ください。

  • [SUSPEND_TIMEOUTS_<n>] (ver. 3.5.40 から)(スタンダード版、プロフェッショナル版:

    JVM が応答しない場合、全てのタイムアウトを停止するように指示します。 「<n>」は、タイムアウトを停止する期間(秒数)を指定し、1-3600 (1秒から1時間まで)の範囲で設定できます。 これは、Java アプリケーションが長いブロックタスクを実行する必要がある時に Wrapper がアプリケーションが応答不能と判断するのを防ぐために使用できます。

    その他のアクションプロパティ、コマンドファイル、或いは Java WrapperManager.suspendTimeouts() メソッドでタイムアウトを停止することができます。

    タイムアウトを停止するリクエストが複数ある場合、各リクエストで指定されている秒数は加算されません。 代わりに、新しく指定された秒数が残りの停止期間より長い場合、停止期間が置き換えられますが、 それより短い場合は無視されます。

  • [RESUME_TIMEOUTS] (ver. 3.5.40 から)(スタンダード版、プロフェッショナル版):

    Wrapper に、停止された全てのタイムアウトを再開するように指示します。

    その他のアクションプロパティ、コマンドファイル、或いは Java WrapperManager.resumeTimeouts() メソッドでタイムアウトを再開することができます。

  • [SUCCESS] (ver. 3.5.5 から):

    Wrapper の起動失敗の内部カウントをリセットして、 現在のJVM 起動が成功したものとしてカウントします。 これは、比較的、短い頻度で再起動するように設計されたアプリケーションに便利です。

  • [NONE] :

    何のアクションも起こしません。 高いナンバリング数値で設定されているトリガーを、フィルター検索の対象から除外することができるので、便利です。

注意

JVM が完全にフリーズしている場合、一部のアクション(GC や DUMP など)の処理を実行できない可能性がありますので、ご注意ください。

複数のアクションを指定する:

スペースやカンマで区切ることで、複数のアクションを指定することが可能です。 複数のアクションを指定すると、迅速に指定した順番で続けて実行されます。

次の例は、スレッドダンプを実行して、その後、JVM を再起動します。 スレッドダンプは、JVM が完全にフリーズしていない場合のみに実行されます。

設定例:
wrapper.ping.timeout.action=DUMP,RESTART

参照: ping

参照: タイムアウト(時間切れ)