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

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

<この項の構成>
(1) ERREVTAが通知されるまでの流れ

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

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

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

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

図3-25 ERREVTAの概要

[図データ]

  1. OpenTP1の正常終了コマンド(dcstopコマンド)を実行します。タイマ起動要求メッセージが残っていた場合は,このタイミングでメッセージが破棄され,MCFからERREVTAが通知されます。
  2. MHPで正常に処理されたメッセージが出力キューに格納されます。
  3. 出力キューのメッセージの送信タイムアウトで,出力するメッセージが廃棄されました。
  4. MCFからERREVTAが通知されます。
  5. ERREVTAのMCFイベント処理用MHPがスケジュールされます。
  6. ユーザファイルなどに退避します。