Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プログラム作成の手引


3.10.5 未処理送信メッセージ廃棄通知イベント(ERREVTA)

ERREVTAは,次に示す場合に通知されます。

〈この項の構成〉

(1) ERREVTAが通知されるまでの流れ

MHPが正常終了すると,出力キューに送信するメッセージが出力されます。閉塞解除されている論理端末において,メッセージが送信待ちしている状態で,OpenTP1を正常終了する場合,出力キューにある送信メッセージを送信し終わるまでMCFは終了を待ちます。このとき,送信する先のシステムの障害などで送信できない場合,時間切れ(タイムアウト)となり,送信するメッセージを廃棄します。このメッセージの廃棄を知らせるためにERREVTAが通知されます。タイムアウトになる時間は,タイマ定義(mcfttim -t)のmtimオペランドに指定した値で監視しています。

ただし,dc_mcf_execap関数によるタイマ起動要求メッセージや閉塞されている論理端末の出力キューに残っている未処理送信メッセージは,未処理送信メッセージ滞留時間の監視対象にはなりません。そのため,OpenTP1の正常終了コマンド(dcstopコマンド)を実行すると,メッセージはすぐに破棄され,ERREVTAが通知されます。

ERREVTAの概要を次の図に示します。

図3‒28 ERREVTAの概要

[図データ]

  1. OpenTP1の正常終了コマンド(dcstopコマンド)を実行します。タイマ起動要求メッセージや閉塞されている論理端末の出力キューに未処理送信メッセージが残っていた場合は,このタイミングでメッセージが破棄され,MCFからERREVTAが通知されます。

  2. MHPで正常に処理されたメッセージが出力キューに格納されます。

  3. 出力キューのメッセージの送信タイムアウトで,出力するメッセージが廃棄されました。

  4. MCFからERREVTAが通知されます。

  5. ERREVTAのMCFイベント処理用MHPがスケジュールされます。

  6. ユーザファイルなどに退避します。