MCFイベント情報は構造体で,MCFイベント処理用MHPに渡されます。MHPに渡される構造体の形式は,MCFイベントの種類によって異なります。ただし,MCFイベント情報の先頭部分の形式は,各イベントで共通です。
PVCの場合,MCFイベントの共通ヘッダ(dc_mcf_evtheader),およびエラーイベント(ERREVTn)で使用する構造体は<dcmcf.h>で定義されています。また,CERREVT通知インタフェース(dcmpcm_cerrevt)は<dcmpcm.h>で,COPNEVT,CCLSEVT通知インタフェース(dcmx25_statevt)は<dcmx25.h>で定義されています。<dcmcf.h>,<dcmpcm.h>,<dcmx25.h>の順に取り込んでください。
VCの場合,MCFイベントの共通ヘッダ(dc_mcf_evtheader),およびエラーイベント(ERREVTn)で使用する構造体は<dcmcf.h>で定義されています。また,CERREVT通知インタフェース(dcmx2m_cerrevt),およびCOPNEVT,CCLSEVT通知インタフェース(dcmx2m_statevt)は,共に<dcmx2m.h>で定義されています。<dcmcf.h>,<dcmx2m.h>の順に取り込んでください。
MCFイベントとして設定される項目を次に示します。
struct dc_mcf_evtheader {
char mcfevt_name[9] ; … MCFイベント情報コード
char le_name[16] ; … 論理端末名称
char cn_name[9] ; … コネクション名
unsigned char format_kind ; … MCFが使用
char reserve01 ; … 予備
DCLONG time ; … メッセージ入力時刻
} ;
struct dc_mcf_evt1_type {
struct dc_mcf_evtheader evtheader ; … MCFイベント情報共通ヘッダ
char reserve01[12] ; … 予備
char reserve02[10] ; … 予備
char reserve03[2] ; … 予備
char ap_name[10] ; … アプリケーション名
char reserve04[2] ; … 予備
} ;
struct dc_mcf_evt2_type {
struct dc_mcf_evtheader evtheader ; … MCFイベント情報共通ヘッダ
char reserve01[12] ; … 予備
char reserve02[10] ; … 予備
char reserve03[2] ; … 予備
char ap_name[10] ; … アプリケーション名
short reason_code ; … 理由コード
} ;
struct dc_mcf_evt3_type {
struct dc_mcf_evtheader evtheader ; … MCFイベント情報共通ヘッダ
char reserve01[12] ; … 予備
char map_name[10] ; … MCFが使用
char reserve03[2] ; … 予備
char ap_name[10] ; … アプリケーション名
char reserve04[2] ; … 予備
char service_name[32] ; … サービス名
char serv_grp_name[32] ; … サービスグループ名
char bid[36] ; … トランザクションブランチ
ID領域
} ;
struct dc_mcf_evta_type {
struct dc_mcf_evtheader evtheader ; … MCFイベント情報共通ヘッダ
char reserve01[12] ; … 予備
char map_name[10] ; … MCFが使用
char reserve03[2] ; … 予備
char ap_name[10] ; … アプリケーション名
char reserve04[2] ; … 予備
char reserve05[32] ; … 予備
char reserve06[32] ; … 予備
DCLONG user_leng ; … 他プロトコルの場合に有効
char user_data[16] ; … 他プロトコルの場合に有効
char reserve07[16] ; … 予備
} ;
PVCのCERREVT通知インタフェースdcmpcm_cerrevtの形式を示します。
typedef struct {
struct dc_mcf_evtheader header ;
… MCFイベント情報共通ヘッダ(40バイト)
DCLONG err_fact ; … 障害要因コード(4バイト)
DCLONG err_reason1 ; … 理由コード1(4バイト)
DCLONG err_reason2 ; … 理由コード2(4バイト)
DCLONG recover_code ; … 回復可否識別(4バイト)
DCLONG retry_code ; … 自動リトライ有無識別
} dcmpcm_cerrevt ;
typedef struct {
dcmpcm_cerrevt comheader ; … プロトコル共通ヘッダ
char reserve[36] ; … 予備
} dcmx25_cerrevt ;
VCのCERREVT通知インタフェースdcmx2m_cerrevtの形式を示します。
typedef struct {
struct dc_mcf_evtheader header ;
… MCFイベント情報共通ヘッダ(40バイト)
DCLONG err_fact ; … 障害要因コード(4バイト)
DCLONG err_reason1; … 理由コード1(4バイト)
DCLONG err_reason2 ; … 理由コード2(4バイト)
DCLONG err_dctreason ; … 切断理由コード
char rname[16] ; … MCFが使用
char reserve1[26] ; … 予備
} dcmx2m_cerrevt ;
PVCのCOPNEVT,CCLSEVT通知インタフェースdcmx25_statevtの形式を示します。
typedef struct {
struct dc_mcf_evtheader header ; … MCFイベント情報共通ヘッダ
char reserve1[56] ; … 予備
} dcmx25_statevt ;
VCのCOPNEVT,CCLSEVT通知インタフェースdcmx2m_statevtの形式を示します。
typedef struct {
struct dc_mcf_evtheader header ; … MCFイベント情報共通ヘッダ
char reserve[16] ; … 予備
char rname[16] ; … MCFが使用
char reserve1[26] ; … 予備
} dcmx2m_statevt ;