障害が起こっているタスクの停止
スケジューラーは、デフォルトでは、グローバル・トランザクション・コンテキストでタスクを実行します。 タスクが構成上の問題、あるいはアプリケーション・エラーが原因で失敗した場合、 スケジューラーは、スケジューラー障害しきい値に達するまでタスクの再試行を試みます。 失敗しているタスクを停止することができます。
始める前に
デフォルトのスケジューラー障害しきい値は 10 ですが、taskFailureThreshold スケジューラー・カスタム・プロパティーを使用して構成できます。 このカスタム・プロパティーを構成するには、管理コンソールで「リソース (Resources)」>「スケジューラー (Schedulers)」>「scheduler_name」をクリックしてから、「カスタム・プロパティー (Custom Properties)」をクリックします。 有効な値は、負でない整数、すなわち 0 より大きい整数です。
このタスクについて
手順
- 継続的に障害が起こっているトランザクションの (QOS_ONLYONCE) タスクをキャンセルまたはサスペンドします。 スケジューラーが障害しきい値に達していない場合、この動作が起こらない可能性があります。 データベース・ロックを待っている間、および TaskPending 例外をスローしている間は、 スケジューラー API メソッドまたは WASScheduler MBean オペレーションのキャンセルとサスペンドは、タスクが失敗するか API メソッドが タイムアウトになるまでブロックします。 これが起こった場合、アプリケーションはキャンセルまたはサスペンド操作を完了するまで再試行します。
- あるいは、WASScheduler MBean の stopDaemon 操作を使用してスケジューラー・デーモンを停止し、タスクが複数回実行するのを避け、停止中にキャンセルまたはサスペンド操作を実行します。 デーモンが停止している間、スケジューラーはタスクを実行しません。 ただし、すべての MBean 操作および API メソッドは引き続き使用可能です。