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 マッピングサービスの障害コードの詳細」を参照してください。