5.2.3 MCFイベント情報の形式(C言語)

MCFイベント情報は,構造体でMCFイベント処理用MHPに渡されます。MHPに渡される構造体の形式は,MCFイベントの種類によって異なります。ただし,MCFイベント情報の先頭部分の形式は,各イベントに共通です。

エラーイベント(ERREVTn)で使用する構造体は,<dcmcf.h>で定義してあります。

MCFイベントとして設定される項目を次に示します。

<この項の構成>
(1) MCFイベントの共通ヘッダ
(2) ERREVT1
(3) ERREVT2
(4) ERREVT3
(5) ERREVTA
(6) SCMPEVT
(7) SERREVT
(8) VERREVT
(9) VOPNEVT,VCLSEVT

(1) MCFイベントの共通ヘッダ

(a) 形式

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 ;                       … メッセージ入力時刻
} ;

(b) MCFイベントとして設定される項目

(2) ERREVT1

(a) 形式

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] ;                 … 予備
} ;

(b) MCFイベントとして設定される項目

(3) ERREVT2

(a) 形式

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 ;                 … 理由コード
} ;

(b) MCFイベントとして設定される項目

(4) ERREVT3

(a) 形式

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
} ;

(b) MCFイベントとして設定される項目

(5) ERREVTA

(a) 形式

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] ;                … 予備
} ;

(b) MCFイベントとして設定される項目

(6) SCMPEVT

(a) 形式

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>で定義されています。

(b) MCFイベントとして設定される項目

(7) SERREVT

(a) 形式

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>で定義されています。

(b) MCFイベントとして設定される項目

(8) VERREVT

(a) 形式

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] ;                 … 予備
} ;

(b) MCFイベントとして設定される項目

(9) VOPNEVTVCLSEVT

(a) 形式

struct dcmxpn_statevt_type {
 struct dc_mcf_evtheader header ;    … MCFイベント共通ヘッダ
 DCLONG le_kind ;                    … 論理端末属性
 char reserve1[52] ;                 … 予備
} ;

(b) MCFイベントとして設定される項目