Hitachi

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


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

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

エラーイベント(ERREVTn)で使用する構造体は,<dcmcf.h>で定義してあります。なお,dc_mcf_evtheaderは,<dcmcf.h>で定義されています。<dcmotm.h>の前に<dcmcf.h>を取り込んでおいてください。

〈この項の構成〉

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

(a) 形式

struct dc_mcf_evtheader {
  char mcfevt_name[9] ;        … MCFイベントコード
  char le_name[16] ;           … 入力元論理端末名称
                                  (ERREVT1,ERREVT2,ERREVT3,CERREVT,
                                    COPNEVTおよびCCLSEVTの場合)
                                  出力先論理端末名称
                                  (ERREVTAの場合)
  char cn_name[9] ;            … コネクション名
  unsigned char format_kind;   … MCF使用領域
  char reserve01[1] ;          … 予備
  DCLONG time ;                … メッセージ入力時刻
};

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

  • le_name

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

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

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

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

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

  • 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

(a) 形式

typedef struct {
    struct dc_mcf_evtheader  header ;
                                 … MCFイベント共通ヘッダ
    DCLONG err_fact ;            … 障害要因コード(4バイト)
    DCLONG err_reason1 ;         … 理由コード1(4バイト)
    DCLONG err_reason2 ;         … 理由コード2(4バイト)
    DCLONG err_rcv_action;       … 回復動作情報
    char   group_name[16];       … コネクショングループ名
    char   reserve1[26];         … 予備
} dcmotm_cerrevt ;

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

  • err_fact

    CERREVTの障害要因コードが,次に示す値で設定されます。

    (00000030)16

    コネクション障害発生

  • err_reason1,err_reason2

    CERREVTの理由コード1,理由コード2が設定されます。「付録I 理由コード一覧」を参照してください。

  • err_rcv_action

    CERREVT起動時に,回復動作情報として次の値が設定されます。

    DCMOTM_RSV_MANUAL

    コマンド入力による手動回復

    DCMOTM_RSV_AUTO

    システムによる自動回復

(7) COPNEVT,CCLSEVT

(a) 形式

typedef struct {
  struct dc_mcf_evtheader  header ;
                                 … MCFイベント共通ヘッダ
  DCLONG cls_rcv_action;         … 回復動作情報
                                    (CCLSEVTの場合だけ有効)
  char    reserve1[12];          … 予備
  char    group_name[16];        … コネクショングループ名
  char    reserve2[26];          … 予備
} dcmotm_statevt ;

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

  • cls_rcv_action

    CCLSEVT起動時に,回復動作情報として次の値が設定されます。

    DCMOTM_RSV_MANUAL

    コマンド入力による手動回復

    DCMOTM_RSV_AUTO

    システムによる自動回復