8.4 ワークフローエンジンとクラスタの環境設定

この節では、ワークフローエンジンとクラスタの環境設定について説明していきます。これらの設定は、クラスタ内のすべてのエンジンに適用されます。いずれかの設定が変更されると、クラスタ内の他のエンジンはデータベースの変更を検出して、新しい値を使用します。エンジンは、[保留中のプロセス間隔]に指定された間隔で、これらの設定の変更をチェックします。

プロセスキャッシュの設定とハートビートの設定を変更した場合、変更内容を有効にするにはサーバを再起動する必要があります。

8.4.1 ワークフローエンジンの環境設定

ワークフローエンジンを設定する

  1. [プロビジョニング]タブを選択します。

  2. 左側のナビゲーションメニューから、[エンジンおよびクラスタの設定]を選択します。

    [ワークフロー環境設定]ページが表示されます。エンジンを環境設定するには、[ワークフローエンジン]で設定項目を変更する必要があります。

  3. エンジン設定を変更するには、目的のフィールドをクリックして、新しい値を入力します。エンジン設定については、下で説明しています。

    エンジン設定

    説明

    電子メール通知(ワークフローエンジンごと)

    ワークフローエンジン全体に対する電子メール通知を有効/無効にします。デフォルトでは、このオプションは有効になっています。

    Webサービスアクティビティタイムアウト(分)

    デフォルトのWebサービスアクティビティタイムアウトを分で指定します。デフォルトは50分です。

    ユーザアクティビティタイムアウト(時間、0を指定するとタイムアウトなし)

    デフォルトのユーザアクティビティタイムアウト時間を指定します。デフォルトは0日です。この場合、タイムアウトにはなりません。

    完了プロセスのタイムアウト(日)

    完了したプロセス状態をシステムに保持する日数を指定します。デフォルトは120日です。

    完了プロセスクリーンアップ間隔(時間)

    エンジンが、完了プロセスのタイムアウトに指定されている時間が経過した完了プロセスを削除するための、チェック頻度を指定します。デフォルトは 12時間です。

    保留中のプロセス間隔(秒)

    プロセスがバインドされていないエンジンで実行されているユーザアクティビティは、保留状態に移行されます。この間隔は、アクティビティの実行を継続するために、保留中のアクティビティをチェックする頻度を表します。デフォルトは30秒です。

    再試行キュー間隔(分)

    データベース接続上の問題が疑われるために失敗したアクティビティは、再試行キューに移動されます。この間隔は、エンジンがこれらのアクティビティの再試行を試みる間隔を表します。デフォルトは15分です。

    最大スレッドプールサイズ

    エンジンがアクティビティの実行に使用するスレッドの最大数です。デフォルトは20です。

    最小スレッドプールサイズ

    エンジンがアクティビティの実行に使用するスレッドの最小数です。スレッドの要求時にプールに最小値未満のスレッドしかない場合、プール内にアイドル状態のスレッドがある場合でもプールにスレッドが作成されます。デフォルトは10です。

    初期スレッドプールサイズ

    プール内でのスレッドの作成時に、事前開始されたスレッド数です。デフォルトは5です。

    スレッド存続時間(秒)

    プールが最小サイズより大きい場合に、スレッド存続時間を超えてアイドル状態の超過スレッドは破棄されます。デフォルトは5分です。

    プロセスキャッシュロードファクタ

    ロードファクタには、キャッシュがどの程度一杯になったら容量を増やすのかを指定します。キャッシュ内のエントリ数が{ロードファクタ x 現在の容量」を超えた場合に、容量が増やされます。デフォルトは0.75です。

    プロセスキャッシュ初期容量

    プロセスキャッシュは、ハッシュマップによりバックアップされています。この容量は、ハッシュマップ内のバケット数です。初期容量は、キャッシュ作成時のバケット数です。デフォルトは700です。

    プロセスキャッシュ最大容量

    キャッシュ内のプロセス数がここに指定した値以上の場合、キャッシュにプロセスを追加する前に、もっとも古いアクティブではないプロセスの削除が試みられます。この最大容量は緩やかな制限です。キャッシュ内にアクティブなプロセスしかない場合は、キャッシュ内のプロセス数がここに指定した値を超えることもあります。

    ここには、プロセスキャッシュ初期容量とプロセスキャッシュロードファクタの積の値未満の値を設定することをお勧めします。そうすることにより、キャッシュ容量が増やされる前に、まずアクティブではない古いプロセスが削除されます。

    次の例を参照してください。

    プロセスキャッシュ初期容量:700

    プロセスキャッシュロードファクタ:0.75

    プロセスキャッシュ最大容量:500

    キャッシュ内のプロセス数:500

    この場合、「初期容量 x ロードファクタ」は525になるため、キャッシュ内のプロセス数が525になると、キャッシュ容量が増やされ再ハッシュが行われます。キャッシュ内にはプロセスが500あるため、このままプロセスが増えるとまもなく(525になると)サイズが増やされて再ハッシュが行われます。キャッシュに他のプロセスが追加されると、まず一番使われていない非アクティブなプロセスが削除されます。

    デフォルトは500です。

    最大エンジンシャットダウンタイムアウト(分)

    エンジンは、一定時間の余裕を持ってシャットダウンを行います。シャットダウン時には、新しいアクティビティのキューへの格納が中止され、すでにキューに格納されているアクティビティの処理完了が試みられます。このタイムアウトには、キューに格納されているすべてのアクティビティとスレッドの実行が完了するまでにエンジンが待機する最大時間を指定します。ここに指定した時間が経過すると、キュー内のアクティビティの処理が停止され、アクティビティを実行しているすべてのスレッドの中断が試みられます。デフォルトは1分です。

8.4.2 ワークフロークラスタの環境設定

ワークフロークラスタを設定する

  1. [プロビジョニング]タブを選択します。

  2. 左側のナビゲーションメニューから、[エンジンおよびクラスタの設定]を選択します。

    [ワークフロー環境設定]ページが表示されます。クラスタを設定するには、[ワークフロークラスタ]ボックスで設定項目を変更する必要があります。

  3. クラスタ設定を変更するには、目的のフィールドをクリックして、新しい値を入力します。クラスタ設定については、下で説明しています。

    クラスタ設定

    説明

    ハートビートの間隔(秒、最小60)

    ワークフローエンジンのハートビートを更新する間隔を指定します。

    ワークフローエンジンの起動時に、クラスタ内の他のノードがそのエンジンIDをすでに使用していないかどうかが確認され、そのIDが使用中の場合は、起動が拒否されます。エンジンIDとエンジンの状態は、ユーザーアプリケーションデータベースが管理しています。エンジンがクラッシュして再起動された場合、データベース内の最終状態は、そのエンジンがまだ動作中であることを示します。そのため、ワークフローエンジンはハートビートを指定した間隔で書き込むハートビートタイマーを使用します。このタイマーは、そのIDを持つエンジンがクラスタ内で動作しているかどうかを判断するために用いられます。そのエンジンがすでに動作している場合は、起動が拒否されます。

    ハートビート間隔の最小値は60秒です。

    ハートビートファクタ(最小2)

    ハートビートファクタを指定します。「ファクタ x ハートビート間隔」がハートビートタイムアウトになります。

    タイムアウト時間を経過すると、ハートビートはタイムアウトとみなされます。

    ハートビートファクタの最小値は2です。