Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プロトコル TP1/NET/OSAS-NIF編


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

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

エラーイベント(ERREVTn)で使用する構造体は<dcmcf.h>で定義してあります。Cイベント(CxxxEVT)で使用する構造体は<dcmnom.h>で定義してあります。<dcmcf.h>,<dcmnom.h>の順で取り込んでください。

各MCFイベントの共通ヘッダと,各イベントのMCF情報の形式を次に示します。

〈この項の構成〉

(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イベントとして設定される項目

  •  le_name

    メッセージを入力した論理端末名称が設定されます。

    ERREVT2またはERREVT3で,次に示す場合は,'*'が設定されます。

    • SPPからアプリケーション起動機能で起動したMHPで,障害が発生した場合

    • 上記の障害が発生したあとに,MCFイベントとして起動したMHPからさらにアプリケーション起動したMHPで,障害が発生した場合

    ERREVTAの場合は,メッセージを出力する論理端末名称が設定されます。

    論理端末障害のCERREVTの場合は,障害が発生した論理端末名称が設定されます。

    COPNEVT,CCLSEVTおよびコネクション障害のCERREVTの場合は,不定です。

  •  cn_name

    コネクション名が設定されます。

    ERREVT2またはERREVT3で,次に示す場合は,'*'が設定されます。

    • SPPからアプリケーション起動機能で起動したMHPで,障害が発生した場合

    • 上記の障害が発生したあとに,MCFイベントとして起動したMHPからさらにアプリケーション起動したMHPで,障害が発生した場合

  •  time

    メッセージを入力した時刻が,1970年1月1日0時0分0秒からの通算の秒数で設定されます。

(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イベントとして設定される項目

  •  ap_name

    次に示すどれかが設定されます。

    • 形式不正のアプリケーション名

    • 定義されていないアプリケーション名

    アプリケーション名は,MHPから送信されたメッセージの場合に設定されます。MHP以外から送信された場合は,ヌル文字が設定されます。

(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イベントとして設定される項目

  •  ap_name

    エラーになったUAPのアプリケーション名が設定されます。

    アプリケーション名は,MHPから送信されたメッセージの場合に設定されます。MHP以外から送信された場合は,ヌル文字が設定されます。

  •  reason_code

    ERREVT2の理由コードが設定されます。理由コードの内容については,「付録I 理由コード一覧」を参照してください。

(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イベントとして設定される項目

  •  ap_name

    異常が発生したMHPのアプリケーション名が設定されます。

    アプリケーション名は,MHPから送信されたメッセージの場合に設定されます。MHP以外から送信された場合は,ヌル文字が設定されます。

  •  service_name

    異常が発生したMHPのアプリケーション名に対応するサービス名が設定されます。

  •  serv_grp_name

    異常が発生したMHPのサービスが属するサービスグループ名が設定されます。

  •  bid

    トランザクションブランチIDが次の形式で設定されます。

    [図データ]

(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イベントとして設定される項目

  •  ap_name

    正常終了したメッセージのアプリケーション名が設定されます。

    アプリケーション名は,MHPから送信されたメッセージの場合に設定されます。MHP以外から送信された場合は,ヌル文字が設定されます。

(6) CERREVT

コネクション障害または論理端末障害発生時に,相手システムから受信した障害報告の利用者データがある場合,CERREVTの第2セグメントに設定します。

(a) 形式

typedef struct {
  struct dc_mcf_evtheader  header ;      … MCFイベント共通ヘッダ
  DCLONG err_fact ;                      … 障害要因コード
  DCLONG err_reason1 ;                   … 理由コード1
  DCLONG err_reason2 ;                   … 理由コード2
  char   reserve1[44] ;                  … 予備
} dcmnom_cerrevt ;

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

  •  err_fact

    障害の発生要因が設定されます。

    • 0x30:コネクション障害発生

    • 0x31:論理端末障害発生

  •  err_reason1,err_reason2

    理由コードが設定されます。理由コードの詳細については,「付録I 理由コード一覧」を参照してください。

(7) COPNEVT,CCLSEVT

(a) 形式

typedef struct {
  struct dc_mcf_evtheader  header ;    … MCFイベント共通ヘッダ
  char reserve1[56] ;                  … 予備
} dcmnom_statevt ;

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

ありません。