分散トランザクション処理機能 OpenTP1 プロトコル TP1/NET/Secondary Logical Unit - TypeP2編

[目次][用語][索引][前へ][次へ]

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

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

エラーイベント(ERREVTn)で使用する構造体は<dcmcf.h>で定義してあります。なお,dc_mcf_evtheaderは<dcmcf.h>で定義されています。<dcmslm.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, 
                                   ERREVT4の場合) 
                               … 出力先論理端末名称
                                 (ERREVTAの場合)
    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 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 reserve1[42];         … 予備
}dcmslm_cerrevt;
 
(b) MCFイベントとして設定される項目

(7) COPNEVTCCLSEVT

(a) 形式
 
typedef struct{
    struct dc_mcf_evtheader header;
                              … MCFイベント情報共通ヘッダ
    DCLONG cls_rcv_action;    … 回復動作情報
                                (CCLSEVTの場合だけ有効)
    char reserve1[54];        … 予備
}dcmslm_statevt;
 
(b) MCFイベントとして設定される項目