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

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

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

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

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

COPNEVT,CCLSEVTおよびCERREVTで使用する構造体は,<dcmxem.h>で定義されています。また,dc_mcf_evtheaderは<dcmcf.h>で定義されているので,<dcmxem.h>の前に<dcmcf.h>を取り込んでおいてください。

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

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

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

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

(7) CERREVT

(a) 形式
 
typedef struct {
  struct dc_mcf_evtheader  header ;     … MCFイベント情報共通ヘッダ
  DCLONG err_fact ;                     … 障害要因コード
                                           0x30:コネクション障害発生
  DCLONG err_reason1 ;                  … 理由コード1
  DCLONG err_reason2 ;                  … 理由コード2
  DCLONG reserve ;                      … 予備
  char   group_name[16] ;               … コネクショングループ名
  char   reserve1[26] ;                 … 予備
} dcmxem_cerrevt ;
 
(b) MCFイベントとして設定される項目

(8) COPNEVTCCLSEVT

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