MCFイベントとして渡される論理メッセージは,MCFイベント情報と,処理できなかったメッセージから構成されます。処理できなかったメッセージは,通知されたMCFイベントによって異なります。
次に示すMCFイベントの場合は,MCFイベント情報だけが渡されます。処理できなかったメッセージに該当するものはありません。
MCFイベントをMCFイベント処理用MHPで受信する場合は,通常のメッセージを受信する関数(dc_mcf_receive関数)を使います。
MCFイベントは,複数セグメントの論理メッセージとして,MCFイベント処理用MHPに渡されます。先頭セグメントにはMCFイベント情報が,2番目以降のセグメントには処理できなかったメッセージのセグメントが設定されています。このとき,元の先頭セグメントは2番目のセグメントになり,以降一つずつずれてMCFイベントのセグメントとなります。
また,通信イベント障害時のエラーイベント通知機能(アプリケーション属性定義mcfaalcapの-nオプションにerrevt=yesを指定)によって起動されたMCFイベント処理用MHPにERREVT2またはERREVT3が渡されます。先頭セグメントにはMCFイベント情報が,2番目のセグメントに障害となった通信イベントのMCFイベント情報が設定されています。
MCFイベントとして渡される論理メッセージのセグメント形式を次の図に示します。
図3-31 MCFイベントとして渡される論理メッセージのセグメント
MCFイベント情報は,MCFイベント処理用MHPをコーディングした高級言語(C言語,またはCOBOL言語)に合わせて通知されます。
C言語のMHPでは,MCFイベント情報を構造体で受け取れます。この構造体はヘッダファイル<dcmcf.h>で定義されています。MCFイベント情報を処理するMHPでは,#includeで<dcmcf.h>をインクルードしてください。また,通信イベントによっては,通信プロトコル製品別のヘッダファイルに,構造体を定義している場合もあります。
COBOL言語のMHPでは,MCFイベント情報をセグメントの並びで受け取れます。このセグメントのバイト位置で必要な情報を取り出します。
MCFイベント情報のデータ形式は,通信プロトコル対応製品(TP1/NET/××××)によって異なります。次に示すMCFイベント情報のデータ形式については,マニュアル「OpenTP1 プロトコル」の該当するプロトコル編を参照してください。
ERREVT4のMCFイベント情報のデータ形式については,マニュアル「OpenTP1 プログラム作成リファレンス」の該当する言語編を参照してください。