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

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

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

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

MCFイベントの共通ヘッダ(dc_mcf_evtheader),およびエラーイベント(ERREVTn)で使用する構造体は,<dcmcf.h>で定義してあります。また,CERREVT通知インタフェース(dcmcsb_cerrevt),COPNEVT,CCLSEVT通知インタフェース(dcmcsb_statevt),およびMDELEVT通知インタフェース(dcmcsb_mdelevt)は,<dcmcsb.h>で定義されています。<dcmcsb.h>の前に<dcmcf.h>を取り込んでおいてください。

MCFイベント情報の先頭部分の形式を次に示します。

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

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

(a) 形式
 
struct dc_mcf_evtheader {
  char   mcfevt_name[9] ;            …MCFイベント情報コード
  char   le_name[16] ;               …論理端末名称
  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 ;                     …障害要因コード
  DCLONG err_reason1 ;                  …理由コード1
  DCLONG err_reason2 ;                  …理由コード2
  char   reserve[4] ;                   …予備
  char   group_name[16] ;               …コネクショングループ名
  char   reserve1[26] ;                 …予備
} dcmcsb_cerrevt ;
(b) MCFイベントとして設定される項目

(7) COPNEVTCCLSEVT

(a) 形式
 
typedef struct {
  struct dc_mcf_evtheader  header ;     …MCFイベント情報共通ヘッダ
  DCLONG noti_fact ;                    …通知要因コード
  char   reserve[12] ;                  …予備
  char   group_name[16] ;               …コネクショングループ名
  char   reserve1[26] ;                 …予備
} dcmcsb_statevt ;
(b) MCFイベントとして設定される項目

(8) MDELEVT

(a) 形式
 
typedef struct {
  struct dc_mcf_evtheader header ;      …MCFイベント情報共通ヘッダ
  DCLONG del_reason ;                   …メッセージ廃棄理由コード
  DCLONG xnf_errcode ;                  …コネクション障害理由コード
  char   reserve[8] ;                   …予備
  char   group_name[16] ;               …コネクショングループ名
  char   reserve1[26] ;                 …予備
} dcmcsb_mdelevt ;
(b) MCFイベントとして設定される項目