分散トランザクション処理機能 OpenTP1 解説

[目次][用語][索引][前へ][次へ]

3.4.2 MHPのスケジュール

<この項の構成>
(1) MHPのスケジュールの方法
(2) MHPのスケジュールの閉塞

(1) MHPのスケジュールの方法

OpenTP1は,MHPのサービスグループ単位にスケジュールキューを作成してスケジュールします。まず,MCFはメッセージに組み込まれたアプリケーション名をサービスグループ名とサービス名に変換し,受信メッセージを入力キューに登録します。アプリケーション名と,サービスグループ名・サービス名の対応は,アプリケーション属性定義で指定します。MCFは,入力キューに受信メッセージの最終セグメントを格納した時点で,変換されたサービスグループ名とサービス名を基に,MHPへのサービス要求をスケジュールキューに登録します。登録したサービス要求は,スケジュールキューから先入れ先出しで取り出します。

MHPのサービスグループが,メッセージを受信したMCFと同じノードにないとスケジュールできません。

MHPのスケジュールを次の図に示します。

図3-48 MHPのスケジュール

[図データ]

(2) MHPのスケジュールの閉塞

(a) OpenTP1のコマンドによる閉塞

コマンドでMHPのアプリケーション名を指定して,対応するアプリケーションを閉塞できます。MHPを閉塞,閉塞を解除するコマンドを次に示します。

コマンドを入力してMHPを閉塞した場合のMHPの閉塞状態は,オンラインシステム停止後の全面回復時に引き継げます。閉塞状態を引き継ぐかどうかを,状態引き継ぎ定義で指定します。なお,mcftdctsgコマンドでサービスグループを閉塞するとき,閉塞状態を引き継がない指定ができます。この場合,全面回復時にmcftactsgコマンドで閉塞を解除する必要はありません。

(b) 異常終了による自動閉塞

MHPがサービスを実行中に異常終了したときの閉塞単位をアプリケーション属性定義で指定すると,異常終了したときに,定義した単位で自動的に閉塞できます。

アプリケーション単位で閉塞するには,アプリケーション属性定義のapliholdにアプリケーション単位で閉塞する指定をします。

サービス単位で閉塞するには,アプリケーション属性定義のservholdにサービス単位で閉塞する指定をします。

サービスグループ単位で閉塞するには,アプリケーション属性定義のsrvgholdにサービスグループ単位で閉塞する指定をします。

また,異常終了した回数によって,アプリケーション,サービスまたはサービスグループを閉塞するかどうかを,アプリケーション属性定義で指定します。このとき,連続して異常終了した回数を数えるか,または異常終了した回数の合計を数えるかのどちらかを選択します。異常終了した回数には,MHPからdc_mcf_rollback関数(ノーリターン指定)でロールバックした回数も含めます。ロールバックの関数については,マニュアル「OpenTP1 プログラム作成の手引」を参照してください。

サービスグループ単位でスケジュールだけを閉塞する場合,MHPがサービスを実行中に異常終了したときの受信メッセージを,エラーイベントに切り替えるか,スケジュールキューの先頭に再スケジュールするかを指定できます。スケジュールキューの先頭に再スケジュールするには,アプリケーション属性定義のrecvmsgにrを指定します。

異常終了による自動閉塞でのMHPの閉塞状態は,オンラインシステム停止後の全面回復時に引き継ぎません。

アプリケーション属性定義のaplihold,servholdまたはsrvgholdに,異常終了した場合に閉塞しない指定をした場合には,アプリケーション,サービスまたはサービスグループを閉塞しません。この場合,異常終了が続くときには,コマンドを使って,アプリケーション,サービスまたはサービスグループを閉塞してください。

(c) MHPの再スケジュール

MCFは,次に示す場合にMHPを再スケジュールします。

MHPの再スケジュール時の処理の流れを,次の図に示します。

図3-50 MHPの再スケジュールの処理の流れ

[図データ]

MHPを再スケジュールするためには,アプリケーション起動プロセスが必要です。このため,アプリケーション起動プロセス用のMCF通信構成定義を作成する必要があります。

また,受信メッセージを,入力キューに再度格納してから再スケジュールします。このため,再スケジュールするメッセージよりもあとに受信したメッセージが,再スケジュールするメッセージを追い越すことがあります。

異常終了したMHPを再スケジュールする場合,アプリケーション属性定義(mcfaalcap)またはUAP共通定義(mcfmuap)の次のオペランドで,再スケジュールの回数や間隔などを指定できます。

指定した回数を超えてMHPが異常終了すると,再スケジュールされません。KFCA11163-Eメッセージが出力され,エラーイベントが通知されます。

なお,MHPからdc_mcf_rollback関数(RETRY指定)でロールバックした場合やMHPが異常終了した場合に,MHPを再スケジュールすると,アプリケーション,サービス,またはサービスグループの自動閉塞で使用する,MHPが連続して異常終了した回数には含まれません。

(d) アプリケーション名とMHPの不整合による自動閉塞

MCFはMHPのスケジュール時に,アプリケーション属性定義で指定したアプリケーション名に対応するサービスグループがあるかどうかをチェックします。アプリケーション名に対応するサービスグループがない場合,該当するサービスグループが存在しないというメッセージログを出力して,サービスグループへのスケジュールだけを閉塞します。

アプリケーション名とMHPの不整合による自動閉塞でのMHPの閉塞状態は,オンラインシステム停止後の全面回復時に引き継ぎません。