Hitachi

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


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

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

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

MCFイベントとして設定される項目を次に示します。

〈この項の構成〉

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

(a) 形式

struct dc_mcf_evtheader {
  char mcfevt_name[9] ;               … MCFイベントコード
  char le_name[16] ;                  … 入力元論理端末名称
                          (ERREVT1,ERREVT2,ERREVT3の場合)
                                         出力先論理端末名称
                          (ERREVTA,SCMPEVT,SERREVTの場合)
                                         障害発生論理端末名称
                                            (VERREVTの場合)
                                         該当事象発生論理端末名称
                                    (VOPNEVT,VCLSEVTの場合)
  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,SCMPEVTでは,メッセージを出力する論理端末名称が設定されます。

    SERREVTでは,送信障害となった出力先論理端末名称が設定されます。

    VERREVTでは,障害の発生した論理端末名称が設定されます。コネクション障害時は無効です。ヌル文字が設定されている場合は無効と見なします。

    VOPNEVTでは,論理端末画面を生成した論理端末名称が設定されます。

    VCLSEVTでは,論理端末画面を廃棄した論理端末名称が設定されます。

  • 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

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

    • 不正となったアプリケーション名

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

(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のアプリケーション名が設定されます。

  • reason_code

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

(4) ERREVT3

(a) 形式

struct dc_mcf_evt3_type {
  struct dc_mcf_evtheader evtheader ; … MCFイベント共通ヘッダ
  char reserve01[12] ;                … 予備
  char map_name[10] ;                 … マップ名
  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イベントとして設定される項目

  • map_name

    XMAP3のドローで指定した次画面名(マップ名)が返されます。

    なお,次に示す場合は,ヌル文字が設定されます。

    • 次画面名を指定していない場合

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

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

  • ap_name

    異常が発生した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] ;                 … マップ名
  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イベントとして設定される項目

  • map_name

    出力マップ名が設定されます。send関数で省略した場合は,ヌル文字が設定されます。

  • ap_name

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

    MHPから送信されたメッセージの場合に設定されます。MHP以外から送信された場合は,ヌル文字が設定されます。

(6) SCMPEVT

(a) 形式

struct dc_mcf_scmpevt_type {
  struct dc_mcf_evtheader evtheader ; … MCFイベント共通ヘッダ
  DCLONG output_no ;                  … 出力通番
  char map_name[9] ;                  … マップ名
  char msg_type ;                     … メッセージ種別
  char reason_code ;                  … 起動理由
  chat reserve01[5] ;                 … 予備
  DCLONG user_leng;                   … 他プロトコルの場合の使用領域
  char pro_indv_inf[16] ;             … プロトコル個別情報
  char user_data[16] ;                … 他プロトコルの場合の使用領域
} ;

プロトコル個別情報の形式を次に示します。

struct dcmxpn_sevtpro_type {
  DCLONG serr_reason1 ;               … 理由コード1
  DCLONG serr_reason2 ;               … 理由コード2
  DCLONG serr_detail ;                … 詳細コード
  char reserve1[4] ;                  … 予備
} ;

なお,dcmxpn_sevtpro_typeは<dcmxpn.h>で定義されています。

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

  • output_no

    出力通番が設定されます。出力通番がない場合は,-1が設定されます。

  • map_name

    出力マップ名が設定されます。send関数で省略した場合は,ヌル文字が設定されます。

  • msg_type

    メッセージ種別として,次の値が設定されます。

    o:応答送信メッセージ

    n:一般一方送信メッセージ

    p:優先一方送信メッセージ

  • reason_code

    起動理由として次の値が設定されます。

    :メッセージが正常に送信されました。

  • pro_indv_inf

    ヌル文字が設定されます。

(7) SERREVT

(a) 形式

struct dc_mcf_serrevt_type {
  struct dc_mcf_evtheader evtheader ; … MCFイベント共通ヘッダ
  DCLONG output_no ;                  … 出力通番
  char map_name[9] ;                  … マップ名
  char msg_type ;                     … メッセージ種別
  char send_error_code ;              … 送信エラーコード
  unsigned char trouble_code ;        … 障害コード
  unsigned char detail_info ;         … 詳細情報
  unsigned char error_code ;          … エラーコード
  unsigned char error_subcode ;       … エラーサブコード
  chat reserve01[1] ;                 … 予備
  DCLONG user_leng;                   … 他プロトコルの場合の使用領域
  char pro_indv_inf[16] ;             … プロトコル個別情報
  char user_data[16] ;                … 他プロトコルの場合の使用領域
} ;

プロトコル個別情報の形式を次に示します。

struct dcmxpn_sevtpro_type {
  DCLONG serr_reason1 ;               … 理由コード1
  DCLONG serr_reason2 ;               … 理由コード2
  DCLONG serr_detail ;                … 詳細コード
  char reserve1[4] ;                  … 予備
} ;

なお,dcmxpn_sevtpro_typeは<dcmxpn.h>で定義されています。

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

  • output_no

    出力通番が設定されます。出力通番がない場合は,-1が設定されます。

  • map_name

    出力マップ名が設定されます。send関数で省略した場合は,ヌル文字が設定されます。

  • msg_type

    メッセージ種別として,次の値が設定されます。

    o:応答送信メッセージ

    n:一般一方送信メッセージ

    p:優先一方送信メッセージ

  • send_error_code

    送信エラーコードとして,'E'が設定されます。

  • trouble_code

    障害コードとして,次の値が設定されます。

    DCMCF_SERR_SEND:送信エラー

    DCMCF_SERR_LOGICAL:論理エラー

  • detail_info

    詳細情報として,次に示す値が設定されます。

    DCMCF_SERR_ERROR:エラーによる送信障害

    DCMCF_SERR_DCTCN:運用コマンド(mcftdctcn)による送信障害

    DCMCF_SERR_DCTLE:運用コマンド(mcftdctle)による送信障害

  • error_code

    ヌル文字が設定されます。

  • error_subcode

    メッセージの状態として,次の値が設定されます。

    DCMXPN_SEVT_QUE:メッセージ保持

    DCMXPN_SEVT_DEL:メッセージ消去

  • pro_indv_inf

    detail_infoがDCMCF_SERR_ERROR以外の場合,ヌル文字が設定されます。

    detail_infoがDCMCF_SERR_ERRORの場合,次の項目を設定します。

    • serr_reason1

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

      DCMXPN_RSN1_MCF:MCF障害

      DCMXPN_RSN1_XPW:XMAP3 Server障害

      DCMXPN_RSN1_PRT:プリンタ障害

      DCMXPN_RSN1_INVL:無効メッセージ

    • serr_reason2

      理由コード1がDCMXPN_RSN1_INVL以外の場合,理由コード2が設定されます。理由コード2の詳細については,「付録J 理由コード一覧」参照してください。

    • serr_detail

      マッピングサービスの障害コードが設定されます。プリンタ送信時,ほかのメッセージのマッピング障害によって,送信障害通知されることがありますが,障害コードが設定されるのは,マッピング障害となったメッセージだけです。障害コードについては,「付録K マッピングサービスの障害コードの詳細」を参照してください。

(8) VERREVT

(a) 形式

struct dcmxpn_verrevt_type {
  struct dc_mcf_evtheader header ;    … MCFイベント共通ヘッダ
  DCLONG le_kind ;                    … 論理端末属性
  DCLONG err_fact ;                   … 障害要因コード
  DCLONG err_reason1 ;                … 理由コード1(4バイト)
  DCLONG err_reason2 ;                … 理由コード2(4バイト)
  DCLONG err_detail ;                 … 詳細コード(4バイト)
  char reserve1[36] ;                 … 予備
} ;

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

  • le_kind

    論理端末の属性として,次の値が設定されます。

    (00000001)16:画面

    (00000002)16:プリンタ

  • err_fact

    障害の要因として,次の値が設定されます。

    DCMXPN_PLACE_CN:コネクション障害

    DCMXPN_PLACE_LE:論理端末障害

  • err_reason1

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

  • err_reason2

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

  • err_detail

    マッピング障害の場合,障害コードが設定されます。障害コードの詳細については,「付録K マッピングサービスの障害コードの詳細」を参照してください。

(9) VOPNEVT,VCLSEVT

(a) 形式

struct dcmxpn_statevt_type {
  struct dc_mcf_evtheader header ;    … MCFイベント共通ヘッダ
  DCLONG le_kind ;                    … 論理端末属性
  char reserve1[52] ;                 … 予備
} ;

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

  • le_kind

    論理端末の属性として,次の値が設定されます。

    (00000001)16:画面

    (00000002)16:プリンタ