分散トランザクション処理機能 OpenTP1 プロトコル TP1/NET/User Datagram Protocol編

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

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

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

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

COPNEVT,CCLSEVTおよびCERREVTで使用する構造体は,<dcmudpu.h>で定義されています。また,dc_mcf_evtheaderは,<dcmcf.h>で定義されているので,<dcmudpu.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] ;           … 論理端末名称
  char cn_name[9] ;            … MCF使用領域
  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) CERREVT

(a) 形式
 
typedef struct {
    struct dc_mcf_evtheader  header ;
                               … MCFイベント共通ヘッダ
    DCLONG err_fact ;          … 障害要因コード(4バイト)
    DCLONG err_reason1 ;       … 理由コード1(4バイト)
    DCLONG err_reason2 ;       … 理由コード2(4バイト)
    char   reserve1[48];       … 予備
} dcmudp_cerrevt ;
 
(b) MCFイベントとして設定される項目

(7) COPNEVTCCLSEVT

(a) 形式
 
typedef struct {
  struct dc_mcf_evtheader  header ;
                               … MCFイベント共通ヘッダ
  char  reserve1[60];          … 予備
} dcmudp_statevt ;
(b) MCFイベントとして設定される項目

ありません。