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

wrapper.commandfile プロパティ

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

警告

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

このプロパティには、実行するコマンドが書き込まれたコマンドファイルを指定します。 このプロパティは、デフォルトで設定されません

このプロパティは、ほとんどのアプリケーションに使いませんが、クロスプラットフォーム慣習で、 Java プロセスの Wrapper をコントロールする必要がある外部アプリケーションに便利に使えることでしょう。

このプロパティを設定すると、Wrapper は、 定期的なインターバル(一定間隔)でモニタリング(監視)して、 指定されたコマンドファイルの存在をチェックします。 ファイルが見つかった場合、そのファイルが開かれ、順に全てのコマンドを実行します。 コマンド実行が完了すると、そのファイルは削除されます。

設定例:
wrapper.commandfile=./myapp.command

注意

セキュリティリスク:

テキストファイルを作成することで、単純に Wrapper をコントロールすることができるため、 このプロパティの利用で、セキュリティリスクを招くことになりますのでご注意ください。 この理由のため、コマンドファイルを含むディレクトリーのパーミッション(アクセス権限)が 適切に設定されていることを確認してください。

コマンドファイルを使う

Wrapper がコマンドファイルを開くとき、ファイルの読み/書きの保護ロック情報の取得を試みます。 一旦、ファイルが開かれると、順に全てのコマンドを実行し、 コマンド実行が完了すると、そのファイルは削除されます。

コマンドファイルを作成する外部プロセスは、常にコマンドファイルを「アペンド(追加)」モードで開くはずです。 このように、もしファイルが存在しない場合には、新しく作成されますが、 もし既存のファイルが存在する場合、新しいコマンドが追加されます。

一旦、ファイルの存在を確認すると、 Wrapper は、1秒間に何度かコマンドファイルを開く試みをします。 これは、他のプロセスがファイルを書き込むプロセスになる問題を回避するために行われます。 もし、ファイルが1秒以上保護ロックされた状態になった場合、 ログファイルに警告メッセージが表示されます。 これは、Wrapper 運用に影響はありませんが、 その警告を避けるために、ファイルロックは可能な限り短時間であることが大切です。

ファイルの形式は、テキストファイルで、各行に1つのコマンドを書きます。 可能なコマンドは次のとおり:

  • [STOP {EXIT_CODE}] :

    Wrapper をキレイにシャットダウンさせるリクエストです。 Wrapper が実際にシャットダウンさせるとき、 任意の終了コード(exitCode)を{EXIT_CODE}に指定して利用することができます。

  • [RESTART] :

    Wrapper が JVM を再起動するリクエストです。 これは、 [wrapper.restart.reload_configuration] プロパティとの組み合わせで利用され、 Wrapper にコンフィギュレーションのリロード(再読み込み)をさせて、 変更が有効になった新しい JVM を起動します。 JVM が動作していない環境では、この値は無視されます。

  • [PAUSE] :

    Wrapper をポーズ(一時停止)させるリクエストです。 [wrapper.pausable] プロパティが「TRUE」に設定されているときだけ、このコマンドがサポートされます。

  • [RESUME] :

    Wrapper をレジューム(再開)させるリクエストです。 [wrapper.pausable] プロパティが「TRUE」に設定されているときだけ、このコマンドがサポートされます。

  • [SUSPEND_TIMEOUTS {TIME}] (バージョン3.5.40から) スタンダード版・プロフェッショナル版 :

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

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

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

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

    Wrapper に、停止された全てのタイムアウトを再開させるリクエストです。

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

  • [DUMP] :

    Wrapper が JVM にスレッドダンプを生成させるリクエストです。 そのダンプ結果は、Wrapper ログファイル で閲覧できます。 JVM が動作していない環境では、この値は無視されます。

  • [GC] (バージョン3.5.7から) :

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

  • [CONSOLE_LOGLEVEL {LOG_LEVEL}] :

    Wrapper のコンソールログレベルを変更します。

  • [LOGFILE_LOGLEVEL {LOG_LEVEL}] :

    Wrapper のログファイル ログレベルを変更します。

  • [SYSLOG_LOGLEVEL {LOG_LEVEL}] :

    Wrapper の syslog、あるいは、イベントログログレベルを変更します。

新しく追加されたテスト用コマンドは、 [wrapper.commandfile.enable_tests]プロパティが有効に設定されている場合のみ、 これらのコマンドは Wrapper やご利用のアプリケーションの安全性の都合からデフォルトで無効になっています。 一部のコマンドは、セキュリティや安定性に問題を引き起こす可能性があります。

利用可能なテスト用コマンドは次のとおり:

  • [ACCESS_VIOLATION] (バージョン3.5.2から) :

    Wrapper プロセス自身をクラッシュさせますので、キレイにシャットダウンの失敗になります。 これが発生すると、JVM が即座に「Wrapper が落ちた」と検知して、キレイにシャットダウンするはずです。 このアクセス違反後は、Wrapper ログファイルに残りません。 Wrapper がクラッシュした場合の、Wrapper や JVM や外部システムの動作についてテストする際に便利です。

  • [CLOSE_BACKEND] (バージョン3.5.26から) :

    JVM でバックエンド接続を即座に閉じます。 これは Wrapper に再接続して JVM 能力をテストするときに便利です。 JVM が動作していない環境では、この値は無視されます。

  • [CLOSE_SOCKET] (バージョン3.5.0から) :

    JVM でバックエンドソケットを即座に閉じます。 これは Wrapper に再接続して JVM 能力をテストするときに便利です。 JVM が動作していない環境では、この値は無視されます。

    バージョン 3.5.26 より、こちらは 「CLOSE_BACKEND」のエイリアス(別名)です。

  • [PAUSE_LOGGER {seconds}] (バージョン3.5.11から) :

    {seconds}パラメータで指定した秒数間、ログ出力の次の行ラインでポーズ(一時停止)させるリクエストです。 これは、ログ化コードで遅延を処理する Wrapper テストや JVM テストに便利です。 指定できる可能な秒数({seconds})は「1秒〜3600秒」の範囲、または「0秒」に設定するとエンドレスで永久に待機します。 安全のため、[wrapper.commandfile.enable_tests]が「TRUE」に設定されている場合以外、このコマンドは無効になっています。

  • [PAUSE_THREAD {THREAD} {TIME}] (バージョン3.5.8から) :

    パラメータで指定した Wrapper スレッドを一定時間、ポーズ(一時停止)させるリクエストです。 これは、1つ、2つの Wrapper スレッドが CPU 不足に陥るような負荷の高い状況下での Wrapper 動作テストに便利です。 長いポーズ(一時停止)の共通原因のほとんどは、ログ化のようなオペレーションをする際に、高い I/O 待ち時間です。

    必須の {THREAD} パラメータ:

    このプロパティ値[PAUSE_THREAD]の {THREAD} パラメータは必須であり、次の値のどれかを入れることができます:

    • [MAIN] :

      メインの Wrapper スレッドで、モニタリング(監視)や JVM プロセスへの ping を含みます。

    • [TIMER] :

      wrapper.use_system_time]プロパティが「FALSE」の場合に存在するタイマースレッドです。

    • [JAVAIO] :

      wrapper.javaio.use_thread]プロパティが「TRUE」の場合に存在する Java I/O スレッドです。

    • [EVENT] :

      全てのイベントアクション処理に使われるスレッドです。プロフェッショナル版の場合だけに有効です。

    任意 {TIME} パラメータ:

    このプロパティ値[PAUSE_THREAD]の {TIME} パラメータは任意で、スレッドが遅延する秒数を指定します。 有効な値は「-1」または「0秒〜3600秒」の範囲です。 「-1」に設定するとエンドレスで永久に待機します。 「0 (ゼロ)」に設定すると効果はありません。「0 (ゼロ)」より大きい値に設定すると、その秒数で待機します。 デフォルト値は「-1」です。

    MAIN]スレッドがポーズ(一時停止)中、 Wrapper は応答しませんので、ポーズ時間切れの前にリカバリー(回復)させるためには、 強制的に Wrapper プロセスを終了させる手段が必要になるかもしれません。

wrapper.commandfile.enable_tests プロパティ

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

いくつかのテスト運用に関連するコマンドは、セキュリティの都合で、デフォルトで無効になっています。 このプロパティを「TRUE」に設定すると、テスト用コマンドの利用が可能になります。 デフォルト値は「FALSE」です。

設定例:
wrapper.commandfile.enable_tests=FALSE

利用が可能になるテスト用コマンドは次のとおり:

  • [PAUSE_LOGGER {seconds}] (バージョン3.5.11から) :

    {seconds}パラメータで指定した秒数間、ログ出力の次の行でポーズ(一時停止)させるリクエストです。 詳しくは上記をご覧ください。

  • [PAUSE_THREAD {THREAD} {TIME}] (バージョン3.5.8から) :

    パラメータで指定した Wrapper スレッドを一定時間、ポーズ(一時停止)させるリクエストです。 詳しくは上記をご覧ください。

  • [CLOSE_SOCKET] (バージョン3.5.0から) :

    JVM でバックエンドソケットを即座に閉じます。 詳しくは上記をご覧ください。

注意

一部のテスト用コマンドにより、Wrapper や JVM が不安定になる可能性もありますのでご注意ください。 テスト用コマンドは運用テストの利用だけに限定し、正式なサーバー製品では絶対に有効にするべきではありません。

wrapper.commandfile.poll_interval プロパティ

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

既存コマンドファイルのテストをする際に、このプロパティに、定期的なインターバル(一定間隔)を設定して、 コマンドファイルの存在をモニタリング(監視)することができます。 デフォルト値は「5秒」で、有効な値は「1秒〜3600秒」の範囲です。

設定例:
wrapper.commandfile.poll_interval=5

wrapper.command.poll_interval プロパティ

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

警告

このプロパティの使用は、Wrapper バージョン 3.5.31 で 使用の推奨を辞め、その代わりに[wrapper.commandfile.poll_interval]の使用を推奨しています。

既存コマンドファイルのテストをする際に、このプロパティに、定期的なインターバル(一定間隔)を設定して、 コマンドファイルの存在をモニタリング(監視)することができます。 デフォルト値は「5秒」で、有効な値は「1秒〜3600秒」の範囲です。

設定例:
wrapper.command.poll_interval=5

参照: コマンドファイル