付録A 入出力キューのダンプファイルの形式
mcftdmpquコマンドを実行すると,ダンプファイルにはメッセージが連続して出力されます。ダンプファイルの形式を次の図に示します。
図A-1に示すメッセージの形式を説明します。
-
アイキャッチャ(4バイト)
出力したメッセージが入力キューのメッセージか,出力キューのメッセージかを示します。
ITQ△:入力キューのメッセージです。
OTQ△:出力キューのメッセージです。
-
MCF使用領域(32ビットの場合:960バイト,64ビットの場合:1,276バイト)
MCFが使用する領域です。
-
メッセージ情報(512バイト)
出力したメッセージについての情報を格納する領域です。
構造体dc_mcf_dump_infoで参照できます。構造体dc_mcf_dump_infoの形式を次に示します。
-
セグメント長(4バイト),セグメント
セグメントの長さを示す領域と,セグメント長で示される長さのセグメントです。セグメント長とセグメントで一組となり,セグメント数分繰り返します。
-
メッセージ終了識別子(4バイト)
メッセージの終了を示す領域で,ヌル文字で埋められます。
/*************************************************************/ /* 入出力キューダンプ メッセージ情報 */ /*************************************************************/ struct dc_mcf_dump_info { char le_name[16]; /* 入力元論理端末名称※1 */ char cn_name[16]; /* 入力元コネクションID */ char mcf_sid[3]; /* MCF識別子 */ char ap_name[9]; /* アプリケーション名※2 */ char ap_kind[5]; /* アプリケーション種別※2 */ /* value<"mcf "=システムアプリケーション */ /* "user"=ユーザ アプリケーション> */ char sg_name[32]; /* サービスグループ名 */ char sv_name[32]; /* サービス名 */ char map_name[9]; /* マップ名 */ char yobi1[2]; /* 予備1 */ struct { /* メッセージ書き込み時間 */ unsigned int tvsec; /* 1970年1月1日からの通算秒 */ int tvsec; /* 秒以下 */ } write_time; struct { /* 入力通番構造体 */ unsigned int time; /* 入力通番取得時刻 */ /* (1970年1月1日からの通算秒) */ int no_in_time; /* 同時刻での枝番(初期値=1) */ char yobi1[8]; /* 予備1 */ } recv_no; struct { /* 出力通番構造体※1 */ int no; /* 出力通番 */ char type[2]; /* 出力通番識別 */ /* value<"n"=一般 */ /* "p"=優先 */ /* "o"=応答> */ char yobi1[2]; /* 予備1 */ } send_no; char exec_ap_name[9]; /* 起動先アプリケーション名※1※3 */ char exec_ap_kind[5]; /* 起動先アプリケーション種別※1※3 */ /* value<"mcf "=システムアプリケーション */ /* "user"=ユーザ アプリケーション> */ char send_le_name[16]; /* 出力先論理端末名称 */ char yobi2[326]; /* 予備2 */ };
- 注※1
-
出力キューダンプのときだけ設定されます。
- 注※2
-
SPPからメッセージを送信した場合は,アプリケーション名に'*******',アプリケーション種別に'****'が設定されます。
- 注※3
-
アプリケーションを起動しなかった場合は,起動先アプリケーション名に'*******',起動先アプリケーション種別に'****'が設定されます。