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 理由コード一覧」を参照してください。