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

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

エラーイベント(ERREVTn)で使用する構造体は,<dcmcf.h>で定義してあります。なお,dc_mcf_evtheaderは,<dcmcf.h>で定義されています。<dcmotm.h>の前に<dcmcf.h>を取り込んでおいてください。

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

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

(a) 形式

struct dc_mcf_evtheader {
 char mcfevt_name[9] ;        … MCFイベントコード
 char le_name[16] ;           … 入力元論理端末名称
                                 (ERREVT1,ERREVT2,ERREVT3,CERREVT,
                                   COPNEVTおよびCCLSEVTの場合)
                                 出力先論理端末名称
                                 (ERREVTAの場合)
 char cn_name[9] ;            … コネクション名
 unsigned char format_kind;   … MCF使用領域
 char reserve01[1] ;          … 予備
 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   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] ;         … 予備
} ;

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

(6) CERREVT

(a) 形式

typedef struct {
   struct dc_mcf_evtheader  header ;
                                … MCFイベント共通ヘッダ
   DCLONG err_fact ;            … 障害要因コード(4バイト)
   DCLONG err_reason1 ;         … 理由コード1(4バイト)
   DCLONG err_reason2 ;         … 理由コード2(4バイト)
   DCLONG err_rcv_action;       … 回復動作情報
   char   group_name[16];       … コネクショングループ名
   char   reserve1[26];         … 予備
} dcmotm_cerrevt ;

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

(7) COPNEVTCCLSEVT

(a) 形式

typedef struct {
 struct dc_mcf_evtheader  header ;
                                … MCFイベント共通ヘッダ
 DCLONG cls_rcv_action;         … 回復動作情報
                                   (CCLSEVTの場合だけ有効)
 char    reserve1[12];          … 予備
 char    group_name[16];        … コネクショングループ名
 char    reserve2[26];          … 予備
} dcmotm_statevt ;

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