wrapper.commandfile プロパティ

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

警告

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

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

このプロパティは、ほとんどのアプリケーションには使用できませんが、クロスプラットフォームで Wrapper をコントロールする必要がある 外部アプリケーションには役立ちます。

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

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

注意

セキュリティリスク:

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

コマンドファイルを使う

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

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

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

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

  • [STOP {EXIT_CODE}] :

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

  • [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()」メソッドでタイムアウトを再開することができます。

  • [USER_{n}] (バージョン3.5.57から) プロフェッショナル版 :

    Wrapper が JVM にユーザイベントをトリガーするように指示します。

    イベント名の「{n}」コンポーネントは、1〜32767の範囲の任意の整数です。

  • [DUMP] :

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

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

    JVM で完全なガベージコレクションスイープを実行させるリクエストです。 完全なスイープをすると、ガベージコレクション中、しばしば全てのスレッドがフリーズしたりなど引き起こすため、 これを頻繁にすると 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 スレッドを一定時間に一時停止させるリクエストです。 これは、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/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/Linux

コマンドファイルの存在をテストする一定間隔をこのプロパティで設定します。 デフォルト値は「5秒」で、有効な値は「1秒〜3600秒」の範囲です。

Example:
wrapper.commandfile.poll_interval=5

wrapper.command.poll_interval プロパティ

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

警告

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

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

設定例:
wrapper.command.poll_interval=5

参照: コマンドファイル