MCFイベント情報は,構造体でMCFイベント処理用MHPに渡されます。MHPに渡される構造体の形式は,MCFイベントの種類によって異なります。ただし,MCFイベント情報の先頭部分の形式は,各イベントに共通です。
エラーイベント(ERREVTn)で使用する構造体は,<dcmcf.h>で定義してあります。
MCFイベントとして設定される項目を次に示します。
struct dc_mcf_evtheader {
char mcfevt_name[9] ; … MCFイベントコード
char le_name[16] ; … 入力元論理端末名称
(ERREVT1,ERREVT2,ERREVT3の場合)
出力先論理端末名称
(ERREVTA,SCMPEVT,SERREVTの場合)
障害発生論理端末名称
(VERREVTの場合)
該当事象発生論理端末名称
(VOPNEVT,VCLSEVTの場合)
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] ; … マップ名
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] ; … マップ名
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] ; … 予備
} ;
struct dc_mcf_scmpevt_type {
struct dc_mcf_evtheader evtheader ; … MCFイベント共通ヘッダ
DCLONG output_no ; … 出力通番
char map_name[9] ; … マップ名
char msg_type ; … メッセージ種別
char reason_code ; … 起動理由
chat reserve01[5] ; … 予備
DCLONG user_leng; … 他プロトコルの場合の使用領域
char pro_indv_inf[16] ; … プロトコル個別情報
char user_data[16] ; … 他プロトコルの場合の使用領域
} ;
プロトコル個別情報の形式を次に示します。
struct dcmxpn_sevtpro_type {
DCLONG serr_reason1 ; … 理由コード1
DCLONG serr_reason2 ; … 理由コード2
DCLONG serr_detail ; … 詳細コード
char reserve1[4] ; … 予備
} ;
なお,dcmxpn_sevtpro_typeは<dcmxpn.h>で定義されています。
struct dc_mcf_serrevt_type {
struct dc_mcf_evtheader evtheader ; … MCFイベント共通ヘッダ
DCLONG output_no ; … 出力通番
char map_name[9] ; … マップ名
char msg_type ; … メッセージ種別
char send_error_code ; … 送信エラーコード
unsigned char trouble_code ; … 障害コード
unsigned char detail_info ; … 詳細情報
unsigned char error_code ; … エラーコード
unsigned char error_subcode ; … エラーサブコード
chat reserve01[1] ; … 予備
DCLONG user_leng; … 他プロトコルの場合の使用領域
char pro_indv_inf[16] ; … プロトコル個別情報
char user_data[16] ; … 他プロトコルの場合の使用領域
} ;
プロトコル個別情報の形式を次に示します。
struct dcmxpn_sevtpro_type {
DCLONG serr_reason1 ; … 理由コード1
DCLONG serr_reason2 ; … 理由コード2
DCLONG serr_detail ; … 詳細コード
char reserve1[4] ; … 予備
} ;
なお,dcmxpn_sevtpro_typeは<dcmxpn.h>で定義されています。
struct dcmxpn_verrevt_type {
struct dc_mcf_evtheader header ; … MCFイベント共通ヘッダ
DCLONG le_kind ; … 論理端末属性
DCLONG err_fact ; … 障害要因コード
DCLONG err_reason1 ; … 理由コード1(4バイト)
DCLONG err_reason2 ; … 理由コード2(4バイト)
DCLONG err_detail ; … 詳細コード(4バイト)
char reserve1[36] ; … 予備
} ;
struct dcmxpn_statevt_type {
struct dc_mcf_evtheader header ; … MCFイベント共通ヘッダ
DCLONG le_kind ; … 論理端末属性
char reserve1[52] ; … 予備
} ;