5.2.3 MCFイベント情報の形式(C言語)
C言語の場合は,イベント別の情報が,構造体でMCFイベント処理用MHPに渡されます。MHPに渡される構造体の形式は,MCFイベントによって異なります。ただし,MCFイベント情報の先頭部分の形式は各イベントに共通です。
エラーイベント(ERREVTn)で使用する構造体は<dcmcf.h>で定義してあります。なお,dc_mcf_evtheaderは<dcmcf.h>で定義されています。<dcmslm.h>の前に<dcmcf.h>を取り込んでおいてください。
- 〈この項の構成〉
(1) MCFイベントの共通ヘッダ
(a) 形式
struct dc_mcf_evtheader{
char mcfevt_name[9]; … MCFイベントコード
char le_name[16]; … 入力元論理端末名称
(ERREVT1,ERREVT2,ERREVT3,
ERREVT4の場合)
… 出力先論理端末名称
(ERREVTAの場合)
char cn_name[9]; … コネクション名
unsigned char format_kind; … MCF使用領域
char reserve01; … 予備
DCLONG time; … メッセージ入力時刻
};(b) MCFイベントとして設定される項目
-
le_name
ERREVT1,ERREVT2,またはERREVT3では,メッセージを入力した論理端末名称が設定されます。
ただし,ERREVT2およびERREVT3で,次に示す場合は,'*'が設定されます。
-
SPPからアプリケーション起動機能で起動したMHPで,障害が発生した場合
-
上記の障害が発生したあとに,MCFイベントとして起動したMHPからさらにアプリケーション起動機能で起動したMHPで,障害が発生した場合
ERREVTAでは,メッセージを出力する論理端末名称が設定されます。
CERREVT,COPNEVT,またはCCLSEVTの場合は無効です。
-
-
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の理由コードが設定されます。理由コードの内容については,「付録H 理由コードおよびセンスコード一覧」を参照してください。
(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 reserve1[42]; … 予備
}dcmslm_cerrevt;(b) MCFイベントとして設定される項目
-
err_fact
CERREVTの障害要因コードが次に示す値で設定されます。
- (00000030)16
-
コネクション障害発生
- (00000031)16
-
論理端末障害発生
-
err_reason1,err_reason2
CERREVTの理由コードが設定されます。「付録H 理由コードおよびセンスコード一覧」を参照してください。
-
err_rcv_action
CERREVT通知時に,回復動作情報として次の値が設定されます。
- DCMSLM_RSV_MANUAL
-
コマンド入力による手動回復
- DCMSLM_RSV_AUTO
-
システムによる自動回復
回復動作情報は,該当するコネクションが端末起動の場合は手動回復になり,ホスト起動の場合は自動回復になります。
(7) COPNEVT,CCLSEVT
(a) 形式
typedef struct{
struct dc_mcf_evtheader header;
… MCFイベント共通ヘッダ
DCLONG cls_rcv_action; … 回復動作情報
(CCLSEVTの場合だけ有効)
char reserve1[54]; … 予備
}dcmslm_statevt;(b) MCFイベントとして設定される項目
-
cls_rcv_action
CCLSEVT通知時に,回復動作情報として次の値が設定されます。
- DCMSLM_RSV_MANUAL
-
コマンド入力による手動回復
- DCMSLM_RSV_AUTO
-
システムによる自動回復
回復動作情報は,該当するコネクションが端末起動の場合は手動回復になり,ホスト起動の場合は自動回復になります。