3.10 MCFイベント
メッセージ送受信形態の通信をする場合,OpenTP1の各種システム情報をMHPに知らせるために,MCFからメッセージを出力します。これをMCFイベントといいます。メッセージ送受信の処理でエラーや障害が起こった場合,システム内で何が起こっているのかがMCFイベントの内容でわかります。MCFイベントには,エラーや障害発生などのエラーイベントと,コネクションの確立・解放などプロトコルに依存する通信イベントの2種類があります。
MCFイベントの内容を基に障害の対処をするMHPをMCFイベント処理用MHPといいます。このMHPを作成しておくと,独自の障害回復処理などができます。
MCFイベントは入力キューに渡されて,MCFイベント処理用MHPが起動されます。このとき,入力メッセージの編集とアプリケーション名決定UOCは経由しません。また,MCFイベントに対して障害が起こったことによって,MCFイベントが起動されることはありません。
MCFイベントの一覧を次の表に示します。次の表に示すMCFイベント以外にも,通信プロトコル対応製品で固有なMCFイベントが通知される場合があります。通信プロトコル対応製品で固有なMCFイベントについては,マニュアル「OpenTP1 プロトコル」の該当するプロトコル編を参照してください。
- 注
-
ERREVT1,ERREVT2,ERREVT3,ERREVT4,ERREVTAはエラーイベントを示します。
SERREVT,SCMPEVT,CERREVT,COPNEVT,CCLSEVTは通信イベントを示します。
- 注※
-
MCFアプリケーション定義(mcfaalcap -g)のrecvmsgオペランドにrを指定した場合,またはdc_mcf_rollback関数のactionにDCMCFRTRYもしくはDCMCFRRTNを指定した場合は除きます。
-
MCFイベント処理用MHPのアプリケーションの型は,MCFイベントが通知された原因で決まります。MCFイベント処理用MHPでは,決められたアプリケーションの型に応じた処理をしてください。
ERREVT1,ERREVT2,およびERREVT3のMCFイベント処理用MHPを起動する場合には,アプリケーション起動プロセスが必要となります。アプリケーション起動プロセスを使う場合は,MCF通信構成定義を作成しておいてください。
dc_mcf_execap関数で複数のMHPを起動させた場合にMCFイベントが通知されたときは,最初にdc_mcf_execap関数を呼び出したMHPの型を基に,MCFイベント処理用MHPの型が決定されます。SPPからdc_mcf_execap関数を呼び出した場合は,アプリケーション起動プロセスに対応するMCFイベントが通知されます。
MCFイベント処理用MHPとアプリケーションの型の関係を次の表に示します。
- 注※
-
非トランザクション属性のMHPの場合は,異常終了したあとでもアプリケーションの型を引き継がないで,MCFイベント処理用MHPの指定に従います。
-
通信プロトコル対応製品と,通知されるMCFイベントの関係
通信プロトコル対応製品と,通知されるMCFイベントの関係を以降の表に示します。
表3‒15 通信プロトコル対応製品と通知されるMCFイベントの関係1 MCFイベント
通信プロトコル対応製品
TP1/NET/OSAS−NIF
TP1/NET/OSI-TP
TP1/NET/SLU-TypeP2
TP1/NET/TCP/IP
ERREVT1
○
○
○
○
ERREVT2
○
○
○
○
ERREVT3
○
○
○
○
ERREVT4
×
○
○
○
ERREVTA
○
○
○
○
SERREVT
×
×
×
×
SCMPEVT
×
×
×
○
CERREVT
○
○
○
○
COPNEVT
○
○
○
○
CCLSEVT
○
○
○
○
VERREVT
×
×
×
×
VOPNEVT
×
×
×
×
VCLSEVT
×
×
×
×
- (凡例)
-
○:該当する通信プロトコル対応製品で通知されます。
×:該当する通信プロトコル対応製品では通知されません。
表3‒16 通信プロトコル対応製品と通知されるMCFイベントの関係2 MCFイベント
通信プロトコル対応製品
TP1/NET/User Agent
TP1/NET/UDP
TP1/NET/XMAP3
ERREVT1
○
○
○
ERREVT2
○
○
○
ERREVT3
○
○
○
ERREVT4
○
○
○
ERREVTA
○
○
○
SERREVT
×
×
○※
SCMPEVT
×
×
○※
CERREVT
○
○
×
COPNEVT
○
○
×
CCLSEVT
○
○
×
VERREVT
×
×
○
VOPNEVT
×
×
○
VCLSEVT
×
×
○
- (凡例)
-
○:該当する通信プロトコル対応製品で通知されます。
×:該当する通信プロトコル対応製品では通知されません。
- 注※
-
SERREVT,SCMPEVTが通知されるのは,印刷機能を使用する場合だけです。
- 〈この節の構成〉
-