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

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

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

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

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

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

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

(a) 形式
 
struct dc_mcf_evtheader {
  char   mcfevt_name[9];     …MCFイベント情報コード
  char   le_name[16];        …入力元論理端末名称
                               (ERREVT1,ERREVT2,ERREVT3の場合)
                               出力先論理端末名称
                               (ERREVTA,SCMPEVT,SERREVTの場合)
  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] ;       …予備
  char reserve07[36] ;       …予備
};
 
(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[9] ;      …予備
  char   pro_indv_inf[16] ;  …プロトコル個別情報
  char   reserve02[16];      …予備
} ;
 
(b) MCFイベントとして設定される項目

(7) SERREVT

(a) 形式
 
struct dc_mcf_serrevt_type {
  struct dc_mcf_evtheader evtheader ;
                             …MCFイベント共通ヘッダ
  DCLONG output_no ;         …出力通番
  char   map_name[9] ;       …MCF使用領域
  char   msg_type ;          …メッセージ種別
  char   send_error_code ;   …送信エラーコード
  unsigned char trouble_code;…障害コード
  unsigned char detail_info; …詳細情報
  unsigned char error_code;  …エラーコード
  unsigned char error_subcode;
                             …エラーサブコード
  char reserve01[5] ;        …予備
  char pro_indv_inf[16] ;    …プロトコル個別情報
  char reserve02[16];        …予備
} ;
 
(b) MCFイベントとして設定される項目

(8) 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 recover_code ;      …回復可否識別
  DCLONG retry_code ;        …自動再確立有無識別
} dcmpcm_cerrevt ;
typedef sutrct {
  dcmpcm_cerrevt comheader   …プロトコル共通ヘッダ
  char reserve1[36] ;        …予備
} dcmhsc_cerrevt ;
 

なお,dcmpcm_cerrevtは,<dcmpcm.h>で定義されています。<dcmhsc1.h>または<dcmhsc2.h>の前に<dcmpcm.h>を取り込んでおいてください。また,dc_mcf_evtheaderは,<dcmcf.h>で定義されています。<dcmcf.h>,<dcmpcm.h>,<dcmhsc1.h>または<dcmhsc2.h>の順に取り込んでください。

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

(9) COPNEVTCCLSEVT

(a) 形式
 
typedef struct {
  struct dc_mcf_evtheader  header ;
                             …MCFイベント共通ヘッダ
  char reserve1[56] ;        …予備
} dcmhsc_statevt ;
 

なお,dcmpcm_statevtは,<dcmhsc1.h>または<dcmhsc2.h>で定義されています。<dcmhsc1.h>または<dcmhsc2.h>の前に<dcmcf.h>を取り込んでおいてください。

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

ありません。