WebSphere Application Server for z/OS, Version 6.0.x   
             オペレーティング・システム: z/OS

             目次と検索結果のパーソナライズ化

現在実行中のタスクの識別

タスクの実行時、タスク・データベース・レコードはタスクが完了するまでロックされます。 このトピックでは、タスクが実行中であるかどうかを判別する方法について説明します。

このタスクについて

バージョン 6.0.2 より前のバージョンでは、タスクはすべて単一のグローバル・トランザクションで実行します。 この処理は、各タスクが read-committed トランザクション分離機能を使用するため、 タスクが複数回正常に実行するのを妨げるだけでなく、タスクの状態を読み取ろうとするすべての試みをブロックします。

タスクが実行中であるかどうかを判断するには、2 つの方法があります。
  1. NotificationSink

    NotificationSink EJB は、TaskInfo オブジェクト上の setNotificationSink メソッドを使用するタスクでの設定が可能です。 NotificationSink Bean は、タスクのライフ・サイクルをカスタム・テーブルにある別のデータベース・レコードに記録することができます。 これは、スケジューラーから別個に照会できるタスクのヒストリー・ログとなります。 このソリューションは、全バージョンのスケジューラー・サービスで処理できます。 詳しくは、スケジューラー通知の受信を参照してください。

  2. 実行の遅延およびコミットされていない読み取り

    バージョン 6.0.2 以降では、2 つの振る舞いにより、スケジューラーの getTask、getTaskStatus または findTasksByName などの検索 API メソッドおよび取得 API メソッドによって、ブロックされずにタスクの現行の状態を確認することができます。 コミットされていない実行状態を含む、タスクの現在の状態を見るには、次のステップを完了します。

プロシージャー

  1. タスク実行中、スケジューラー読み取りメソッドをブロッキングさせないように、スケジューラー読み取りメソッド用の read-uncommitted トランザクション分離機能を使用可能にする。 読み取りメソッド用にデフォルトのトランザクション分離機能を設定するには、読み取り操作の詳細が記載されているスケジューラー・デフォルトのトランザクション分離機能の構成を参照してください。
    注: スケジューラーのデータベースが、Oracle のように、コミットされていない読み取りをサポートしていない場合、QOS_ATLEASTONCE サービスの品質を使用していなければ、タスクが実行中であるかどうかを判断することができません。
  2. タスクが実行を開始したとき、スケジューラーがタスクに TaskStatus.RUNNING 状態を 書き込むようにするには、TaskInfo.setTaskExecutionOptions メソッド上の TaskInfo.EXECUTION_DELAYEDUPDATE オプションを使用します。



関連タスク
スケジューラー通知の受信
スケジューラー・デフォルトのトランザクション分離機能の構成
タスク・トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 10:52:11 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.zseries.doc/info/zseries/scheduler/tasks/tsch_identify.html