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

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

エラーイベント(ERREVT1,ERREVT2,ERREVT3,ERREVT4,ERREVTA)および送信完了通知イベント(SCMPEVT)で使用する構造体は,<dcmcf.h>で定義してあります。なお,dc_mcf_evtheaderは,<dcmcf.h>で定義されています。<dcmtcpu.h>の前に<dcmcf.h>を取り込んでおいてください。

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

<この項の構成>
(1) MCFイベントの共通ヘッダ
(2) ERREVT1
(3) ERREVT2
(4) ERREVT3
(5) ERREVTA
(6) SCMPEVT
(7) CERREVT
(8) COPNEVT,CCLSEVT
(9) RHLDEVT
(10) MDELEVT

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

(a) 形式

struct dc_mcf_evtheader {
 char mcfevt_name[9] ; …  MCFイベントコード
 char le_name[16] ;    …  入力元論理端末名称
                          (ERREVT1,ERREVT2,ERREVT3,CERREVT,
                            COPNEVT,CCLSEVT,RHLDEVT,MDELEVTの場合)
                           出力先論理端末名称
                          (ERREVTA,SCMPEVTの場合)
 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] ;        … MCF使用領域
 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 reserve02[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] ;                   … MCFが使用
 char msg_type ;                      … メッセージ種別
 char reason_code ;                   … 起動理由
 char reserve01[5] ;                  … 予備
 DCLONG user_leng ;                   … MCF使用領域
 char pro_indv_inf[16] ;              … MCF使用領域
 char user_data[16] ;                 … MCF使用領域
} ;

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

(7) CERREVT

(a) 形式

typedef struct {
 struct dc_mcf_evtheader  header ;
                          … MCFイベント共通ヘッダ
 DCLONG err_fact ;        … 障害要因コード(4バイト)
                             0x30:コネクション障害発生
                             0x31:論理端末障害発生
 DCLONG err_reason1 ;     … 理由コード1(4バイト)
 DCLONG err_reason2 ;     … 理由コード2(4バイト)
 char group_name[16];     … MCF使用領域
 char reserve1[32] ;      … 予備
} dcmtcp_cerrevt ;

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

(8) COPNEVTCCLSEVT

(a) 形式

typedef struct {
 struct dc_mcf_evtheader  header ;
                          … MCFイベント共通ヘッダ
 char group_name[16];     … MCF使用領域
 char reserve1[40] ;      … 予備
} dcmtcp_statevt ;

(9) RHLDEVT

(a) 形式

typedef struct {
 struct dc_mcf_evtheader  header ;
                        … MCFイベント共通ヘッダ
 char group_name[16];   … MCF使用領域
 char reserve1[44] ;    … 予備
} dcmtcp_rhldevt ;

(10) MDELEVT

(a) 形式

typedef struct {
 struct dc_mcf_evtheader  header ;
                        … MCFイベント共通ヘッダ
 DCLONG del_reason;     … 理由コード
 char group_name[16];   … MCF使用領域
 char reserve1[40] ;    … 予備
} dcmtcp_mdelevt ;

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