hdstrcedit(稼働トレースファイルの編集)
機能
抽出側Datareplicator/反映側Datareplicatorの稼働中に出力されたトレースファイルを編集して,別ファイル(又は標準出力)に出力します。オプションの指定に従って,稼働トレースファイルの内容すべてを解析して出力します。
指定したオプションのエラーが複数あるときは,チェックできるだけのエラーメッセージがすべて出力されます。また,オプションの解析結果は,hdstrceditコマンドのローカルメモリに保持されます。
形式
hdstrcedit -f稼働トレースファイル名〔,稼働トレースファイル名〕 〔 -l{ glbl|perf1|perf2 }〕 〔 -pプロセスID〔 -pプロセスID 〕…〕|〔 -t 開始日時〔,終了日時〕〕 〔 -o出力先ファイル名〕〔 -O shortfmt 〕
オプション
-
-f稼働トレースファイル名〔,稼働トレースファイル名〕
〜〈1〜255バイトの文字列〉
hdstrceditコマンドに入力する稼働トレースファイル名を指定します。ここで指定できるのは,次に示すDatareplicatorの稼働トレースファイルだけです。
抽出側Datareplicatorのとき:
-
抽出システム定義のint_trc_unitオペランドにsystemを指定,または省略した場合
抽出マスタトレースファイル,抽出ノードマスタトレースファイル
-
抽出システム定義のint_trc_unitオペランドにprocessを指定した場合
表「抽出側Datareplicatorの稼働トレースファイル名」に示すファイル
反映側Datareplicatorのとき:
-
反映システム定義のint_trc_unitオペランドにsystemを指定または省略した場合
反映トレースファイル
-
反映システム定義のint_trc_unitオペランドにprocessを指定した場合
表「反映側Datareplicatorの稼働トレースファイル名」に示すファイル
ファイル名は,相対パス名でも絶対パス名でもかまいません。また,「$HDSPATH/ファイル名」のように環境変数を使っても指定できます。ただし,相対パス名を指定するときは,コマンドをカレントディレクトリで実行してください。
ファイル名は,最大2個まで指定できます。ファイル名を複数指定するときは,「,」(コンマ)で区切ります。2個指定するときは,同じ稼働範囲(Datareplicatorの開始コマンドから終了コマンドまでの間で取得した情報)にしてください。ファイル名を2個指定するときに,ファイル名とコンマの間 又はコンマと次のファイル名の間に空白を入れると正しく認識できません。ファイルを2個指定したときは,作成日付を比較して古い日付の方から入力を開始します。
次に示す指定をすると,コマンドがエラーになって処理を中止します。
-
-fオプションを省略
-
-fオプションに指定したファイルが存在しない(ファイルを2個指定したときに1個だけが存在するときもエラー)
-
指定した値が255バイトを超えた
-
-fオプションを複数指定
-
-
-l{ glbl|perf1|perf2 }
〜《glbl》
トレースファイルの編集結果として,どの情報を出力するかを指定します。値は,英小文字で指定してください。英大文字で指定すると,エラーになります。
-lオプションの指定と出力される情報の関係を次に示します。
トレースファイルの情報
-lオプションの指定値
glbl
perf1
perf2
- スタートアップ情報
-
起動時又は停止時の処理実行を示す情報。通常のプロセス起動ごとに1回だけ実行される情報で,処理の開始と終了 及びその状態を示します。
○
○
○
- グローバル情報
-
大きな処理の,あるポイントで取得される情報。例えば,送受信の単位や,トランザクションの単位などのように定期的に実行されるが頻度は比較的少ない処理を示します。
○
○
○
- ローカルイベント情報
-
Datareplicatorの内部処理での変化を示す情報。グローバル情報に比べるとより小さな処理で実行されるが,全体処理の中では比較的実行頻度が少ない,処理の変局点を示します。
○
○
○
- パフォーマンス(1)情報
-
比較的大きな範囲(グローバル情報+ローカルイベントの一部)で取得する,性能解析のための情報。概要レベルでの性能を把握するのに有効です。
×
○
○
- パフォーマンス(2)情報
-
SQL1件のような,より小さな範囲で取得する性能解析情報。情報量が非常に多くなるため,取得するときは注意が必要だが,ほぼ完全に性能情報を取得できます。
×
×
○
- エラー情報
-
エラーになったときに取得する情報です。
○
○
○
- (凡例)
-
○:出力する情報
×:出力しない情報
ただし,該当する情報を,トレースファイルを採取するときに指定していることが前提です。トレースファイルを採取するときの指定については,抽出システム定義又は反映システム定義を参照してください。
次に示す指定をすると,コマンドがエラーになって処理を中止します。
-
指定できる値以外の値を指定
-
複数のオプションを指定
-
-pプロセスID〔 -pプロセスID〕…
〜〈数字の文字列〉
トレースファイルの編集結果を出力する対象のプロセスIDを指定します。-pプロセスID -pプロセスID …の形式で,最大8個まで指定できます。
出力したいプロセスのプロセスIDは,エラー情報ファイルを参照してください。
プロセスIDが妥当かどうかは,コマンドではチェックしません。また,指定値の途中に数字でない文字があるときは,その直前までの数値がプロセスIDと仮定されます。
繰り返して指定できる最大数を超えてプロセスIDを指定すると,コマンドがエラーになって処理を中止します。
-
-t 開始日時〔,終了日時〕
〜〈YYYYMMDDHHMMSS〉
年(YYYY)最(MM)日(DD)時(HH)分(MM)秒(SS)
《すべてを編集対象》
トレースファイルを編集出力する対象範囲の日時を年(4けた)月(2けた)日(2けた)時(2けた)分(2けた)秒(2けた)の形式で指定します。指定する順序は,開始日時〔,終了日時〕でなければなりません。
開始日時を指定するとトレースの採取日時が開始日時以上の情報を,開始日時と終了日時の両方を指定するとトレースの採取日時が開始日時以上で かつ終了日時以下の情報が,編集の対象になります。このとき,うるう年・うるう秒はチェックしません。
開始・終了日時を両方とも指定するときに,開始日時とコンマの間 又はコンマと終了時刻の間に空白を入れると正しく認識できません。
次に示す指定をすると,コマンドがエラーになって処理を中止します。
-
指定形式が間違っている
-
開始日時 >= 終了日時である
-
-tオプションを複数指定
-
-
-o出力先ファイル名
〜〈1〜255バイトの文字列〉《標準出力》
編集したトレースファイルを出力するファイル名を指定します。-oオプションを省略すると,標準出力に出力されます。ファイル名は存在していても存在していなくてもかまいませんが,存在しているときはファイルは上書きされます。
ファイル名は,相対パス名でも絶対パス名でもかまいません。また,「$HDSPATH/ファイル名」のように環境変数を使っても指定できます。ただし,相対パス名を指定するときは,コマンドをカレントディレクトリで実行してください。
次に示す指定をすると,コマンドがエラーになって処理を中止します。
-
指定した値が255バイトを超えた
-
-oオプションを複数指定
-
-
-O shortfmt
トレース情報の編集を,1件1行形式の簡略フォーマットで出力することを指定します。
-Oオプションに「shortfmt」以外の値を指定すると,指定した値は無視されます(警告メッセージが出力されます)。
規則
-
hdstrceditコマンドの実行結果は,コマンド実行時の戻り値,又はエラーメッセージの有無で確認してください。コマンド実行時の戻り値と,その意味を次に示します。
戻り値
終了状態
内容
0
正常終了
入力したトレースファイルのすべてのデータを入力・編集し終わりました。
1
異常終了
-
入力したトレースファイルが入出力エラーになりました。又は,編集結果の出力で入出力エラーになりました。
-
入力したトレースファイルの内容が間違っています。
-
指定したオプションで,コマンドの処理を続けられない間違いがあります。
不定
異常終了
シグナルに割り込まれました(hdstrceditコマンドではシグナルをハンドリングしません)。
-
注意
-
入力する稼働トレースファイルの終端がレコードの途中であるときは,次のように編集します。
- -fオプションで指定した稼働トレースファイル名が1個のとき:
-
途中のレコードは無視して,データの終了と判断されます。
- -fオプションで指定した稼働トレースファイル名が2個のとき:
-
途中のレコードは,次のファイルの先頭レコードと連結されます。
-
レコードの入力中にOS(システムコール)からエラーが返されたときの動作を次に示します。
-
OSからエラーが返されたとき
エラーメッセージを出力して,コマンドは終了します。
-
-
抽出側Datareplicatorの初期化(hdestart -iコマンド)を実行したユーザ名で実行してください。
出力形式
稼働トレースファイルで取得したレコードが正常のときは,編集されて出力されます。トレースファイルの編集結果の例を次に示します。
- (凡例)
-
99…9:数字の文字列
zz…z:文字列
xx…x:16進文字列
- 出力項目の説明
-
-O shortfmtオプションを指定したときは,3.〜8.は出力されません。
-
ヘッダ情報(稼働トレースであることを示す文字列とコマンド実行日付)
-
レコード通番,トレースレベル(Lvl),プロセスID(Pid),識別名(Cpn),トレース取得日時
トレースレベル(Lvl)に表示される値(zz)の意味
ST:スタートアップ情報
GL:グローバル情報
LE:ローカルイベント情報
P1:パフォーマンス(1)情報
P2:パフォーマンス(2)情報
プロセスID(Pid)に続いて表示されるプロセスコード(,zzzz)の一覧については,「表7-17 プロセスコードの一覧」を参照してください。
識別名(Cpn)に表示される値(zzzzzz)と表示内容の関係については,「表7-18 プロセスコードと識別名の関係」を参照してください。
日時は,年(4けた)-月(2けた)-日(2けた) 時(2けた,24時間):分(2けた):秒(2けた).マイクロ秒(6けた)の形式で出力されます(以降も同様)。
-
送信できなかった件数,付加文字列情報
Add-stringsは,稼働トレースの出力内容を簡易的に示す情報です。稼働トレースの目的,状態,出力元情報(内部情報)が24バイト以内の文字列として表示されます。
-
開始時刻・終了時刻
この情報は,性能についての情報のときだけ出力されます。
-
送信先識別子(Sndid),データ連動識別子(Ujid),データシーケンスID(Seqn)
送信先識別子は,反映側システムのときは「--------」になります。この情報は,性能についての情報のときだけ出力されます。
-
リターン情報
この情報は,関数のリターン情報 又はSQL実行についての内容が出力されます。関数のリターン情報の場合にはリターン値が,SQL実行の場合にはSQLCODE及びSQLWARN6,SQLWARN7が出力されます。
-
詳細情報があって,バイナリデータ形式のときは,この形式で出力されます。
-
詳細情報があって,文字列形式のときは,この形式で出力されます。
Additional-dataは,稼働トレースの出力内容を詳細に示す情報です。これらは内部情報で,障害が起こったときの資料として参照します。
-
プロセスコード |
プロセス名 |
---|---|
TRCR ※ |
トレース情報収集プロセス |
MSTR |
抽出マスタプロセス,又は反映マスタプロセス |
NMST |
抽出ノードマスタプロセス |
SNDR |
送信プロセス |
SNDM |
|
SNDC |
|
CAPT |
抽出プロセス |
RCVT |
受信プロセス(TCP/IP通信) |
RCVO |
受信プロセス(OSI通信) |
DEFS |
反映定義サーバプロセス |
RFCT |
反映プロセス |
SQLE |
反映SQLプロセス |
UOCG |
反映UOCプロセス |
- 注※
-
起動直後の1回だけ出力されます。
表7‒18 プロセスコードと識別名の関係 プロセス
コード
Cpnに表示される値
トレース
レベル
意 味
同時に出力される付加情報
TRCR
QRCVST
GL
稼働トレース取得の開始
メッセージキューのID
MSTR
R_INIT
GL
INITENV(初期化)要求発行トレース取得
要求種別,要求対象
R_STRT
GL
START要求発行トレース取得
要求種別,要求対象
R_STOP
GL
STOP要求発行トレース取得
要求種別,要求対象
R_STTE
GL
STATE要求発行トレース取得
要求種別,要求対象
R_WTCH
GL
WATCH(監視)要求発行トレース取得
要求種別,要求対象
NMST
R_INIT
GL
INITENV(初期化)要求受付トレース取得
−
R_STRT
GL
START要求受付トレース取得
要求種別,要求対象
R_STOP
GL
STOP要求受付トレース取得
要求種別,要求対象
R_STTE
GL
STATE要求受付トレース取得
要求種別,要求対象
R_WTCH
GL
WATCH(監視)要求受付トレース取得
要求種別,要求対象
SNDR
SNDSTR
ST
送信プロセスの開始
「hdesender start」を表示
SNDPPT
P1
ポートチェック送信性能の取得
「Send performance: port check send」を表示
SNDPDF
P1
抽出定義送信性能の取得
「Send performance: extract definition send」を表示
SNDPTW
P2
トランザクション管理性能の取得
「Send performance: transaction watch」を表示
SNDPEX
P1
更新情報送信性能(送信間隔中の全送信)の取得
「Send performance: send interval」を表示
SNDEND
ST
送信プロセスの終了
「hdesender stop」を表示
SNCPSD
P1
更新情報送信性能(1回分のデータ送信だけ)の取得
送信分割種別,送信トランザクション数,更新情報数,バイト数を表示
SNCPAU
P2
ADTコンストラクタ情報生成UOCの性能取得
「ADT UOC call」を表示
SNCPLB
P2
キューファイル格納形式の組み立て性能の取得
「EB Log」を表示
SNCPLC
P2
キューファイル格納形式の組み立て性能の取得
「EC Log」を表示
SNCPUC
P2
送信判定UOCの性能取得
UOCからの戻り値を表示
SNCPCV
P2
送信データ編集の処理性能取得(繰返し列)
「hde_edt_extcnv2() call」を表示
SNCPCV
P2
送信データ編集の処理性能取得
「hde_edt_extcnv() call」を表示
SNDLYT
P1
送信滞留時間の取得
滞留時間
SNDM
SNMSTR
ST
抽出ノードマスタプロセスの開始
「hdesenmst start」を表示
SNMEND
ST
抽出ノードマスタプロセスの終了
「hdesenmst end」を表示
SNDC
SNPSTR
ST
送信プロセスの開始
「hdesndprc start」を表示
SNPPEX
P1
更新情報送信性能(送信間隔中の全送信)の取得
「Send performance: send interval」を表示
SNPEND
ST
送信プロセスの終了
「hdesndprc end」を表示
SNPPPT
P1
ポートチェック送信性能の取得
「Send performance: port check send」を表示
SNPPDF
P1
抽出定義送信性能の取得
「Send performance: extract definition send」を表示
SNDLYT
P1
送信滞留時間の取得
滞留時間
CAPT
REDINI
ST
プロセス起動直後のREAD開始ポイントの取得
READポイント情報(バイナリ形式)
SYNCQU
SYNCRD
LC
READ,WRITEポイント同期処理トレース
システムログREADポイント,キューファイルWRITEポイント
CMDTRC
LC
コマンド受付トレース
コマンド要求内容
CPDLYT
P1
抽出滞留時間の取得
滞留時間
RCVT
RCVDP1
P1
データの受信
データ受信状態
TCPSOP
ER
socketオープンエラー
関数リターン値,errno
TCPSOP
GL
socketオープン終了
関数リターン値
TCPSBN
ER
bindエラー
関数リターン値,errno
TCPSBN
GL
bind終了
関数リターン値
TCPSLI
GL
listen結果
関数リターン値
TCPSCP
GL
accept待ち
−
TCPSCP
GL
acceptリターン
関数リターン値,errno
TCPFRK
GL
forkエラー
関数リターン値,errno
RCVO
OSITOP
GL
t_open結果
関数リターン値,errno
OSITBN
GL
t_bind終了
関数リターン値,errno
OSITAL
GL
t_alloc終了
関数リターン値,errno
OSITLI
GL
t_listen待ち
−
OSITLI
GL
t_listen結果
関数リターン値,errno
OSITOP
GL
t_open結果
関数リターン値,errno
OSITBN
GL
t_bind結果
関数リターン値,errno
OSITAC
GL
t_accept結果
関数リターン値,errno
OSIFRK
GL
fork結果
関数リターン値,errno
DEFS
DFINIT
ST
プロセス起動
データ連動識別子
DFEXIT
ST
プロセス停止
−
DEFMKP
LE
子プロセス起動(INIT)
イベントコード,プロセスID
DEFMKP
LC
子プロセス起動(NORMAL)
イベントコード,プロセスID
DEFMKP
LC
子プロセス起動(RERUN)
イベントコード,プロセスID
DEFCOM
LC
コマンド入力検知
コマンド名
DEFMKP
LC
子プロセス起動(イベント)
イベントコード,プロセスID
DEFMKP
LC
子プロセス起動(hdsstop)
イベントコード,プロセスID
RFCT
RFINIT
ST
反映プロセス開始
Datareplicator識別子,データ連動識別子
EVSTOP
GL
前回イベント停止による停止
イベントID
IMSTOP
GL
開始処理中Immediate停止
−
RFSTRT
GL
反映処理開始
開始モード,キューファイルオフセット
RFSIGS
LE
シグナルの受信
受信シグナル
RFQGET
P1
キューファイルの終端を検知
キューファイルオフセット
RFQGET
P1
キューファイルデータを入力
キューファイルオフセット,更新情報(先頭128バイト)
RFTRNC
P1
更新情報中のトランザクションエントリ表示
トランザクションカウンタ,トランザクション内更新情報数
EVENTC
LE
イベントの検知
イベントID,プロセス状態コード1,2
RFTERM
ST
反映プロセスの停止
終了モード,キューファイルオフセット
RFPIPR
P2
SQL実行結果の受信
送信先エントリ,readサイズ又はリターンコード
RFPIPW
P2
SQL実行指示の反映SQLプロセス又はUOCプロセスへの送信
送信先エントリ,writeサイズ,SQL組み立て情報(先頭128バイト)
RFRCVR
P1
リラン実行時のトランザクション回復実行結果(2相コミットだけ)
リターンコード
RFCOMT
P1
COMMIT結果
COMMIT発生要因,リターンコード
RFENDC
P1
END/DISCONNECT結果
種別,リターンコード
RFEXIT
ST
反映プロセスの停止
種別,リターンコード
RFDLYT
P1
反映滞留時間の取得
滞留時間
SQLE
SQINIT
ST
プロセスの起動
開始モード(dsid,グループ名,分割番号)
SQEXIT
ST
プロセスの停止
終了モード(NORMAL,FORCE,ERROR)
SQEREQ
GL
停止要求の受付
−
XARERN
LC
リカバリ実行(2相コミット方式)
リカバリ種別
TRETRY
LC
トランザクションリトライ
−
CNCT_S
P2
connect実行前
−
CNCT_E
P2
connect実行後
SQLCODE
PINS_S
P2
prepare(insert)実行前
SQL文(最大127バイト)
PINS_E
P2
prepare(insert)実行後
SQLCODE
PUPD_S
P2
prepare(update)実行前
SQL文(最大127バイト)
PUPD_E
P2
prepare(update)実行後
SQLCODE
PDEL_S
P2
prepare(delete)実行前
SQL文(最大127バイト)
PDEL_E
P2
prepare(delete)実行後
SQLCODE
EINS_S
P2
execute(insert)実行前
表名
EINS_E
P2
execute(insert)実行後
SQLCODE
EUPD_S
P2
execute(update)実行前
表名
EUPD_E
P2
execute(update)実行後
SQLCODE
EDEL_S
P2
execute(delete)実行前
表名
EDEL_E
P2
execute(delete)実行後
SQLCODE
EXEI_S
P2
execute immediate実行前
SQL文(最大127バイト)
EXEI_E
P2
execute immediate実行後
SQLCODE
CMIT_S
P2
commit実行前
−
CMIT_E
P2
commit実行後
SQLCODE
RLBK_S
P2
rollback実行前
−
RLBK_E
P2
rollback実行後
SQLCODE
XAOP_S
P2
xa_open()実行前
−
XAOP_E
P2
xa_open()実行後
xa_open()戻り値
XAPR_S
P2
xa_prepare()実行前
XAPR_E
P2
xa_prepare()実行後
xa_prepare()戻り値
XACM_S
P2
xa_commit()実行前
XACM_E
P2
xa_commit()実行後
xa_commit()戻り値
XARL_S
P2
xa_rollback()実行前
−
XARL_E
P2
xa_rollback()実行後
xa_rollback()戻り値
DISC_S
P2
disconnect実行前
−
DISC_E
P2
disconnect実行後
SQLCODE
SQPIPR
P2
更新情報読み込み
要求種別,readサイズ
PWRT_A
P2
PRE-C結果送信
実行結果,writeサイズ
SQPIPW
P2
COMMIT結果送信
実行結果,writeサイズ
CUOC_S
P2
列UOC実行前
列UOC関数種別
CUOC_E
P2
列UOC実行後
列UOC関数種別,列UOC関数実行結果
CUOC_S
P2
列UOC実行前
列UOC関数種別
CUOC_E
P2
列UOC実行後
列UOC関数種別,列UOC関数実行結果
SQPIPW
P2
更新(同期点まで)実行結果の送信
実行結果,writeサイズ
UOCG
UCINIT
ST
プロセスの開始
開始モード
UCEXIT
ST
プロセスの停止
終了モード(NORMAL,FORCE,ERROR)
UBE1_S
GL
hds_ubegin()呼び出し
−
UEDT_S
GL
hds_uedit()呼び出し
−
UEND_S
GL
hds_uend()呼び出し
−
UCPIPR
P2
SQL実行指示読み込み
−
UBE1_E
P2
hds_ubegin()戻り
−
UEDT_E
P2
hds_uedit()戻り
−
UEND_E
P2
hds_uend()戻り
−
UCPIPW
P2
更新(同期点まで)実行結果送信
−
UCEREQ
GL
停止要求受付
−
出力例
反映側Datareplicatorで稼働トレースを取得した例を次に示します。ここで示す稼働トレースは,次に示す条件で取得したとします。
-
反映システム定義で,「int_trc_lvl=p1」を設定
-
「hdstrcedit -f reftrc.trc1 -l perf1 -o reftrc.res」を実行
(凡例)
- No.00000002,00000007,00000014,00000018など
-
:反映処理で各プロセスが起動されたことを示します。
- No.00000003,00000004,00000025,00000026
-
:受信処理を実行したことを示します。Perf-infoで受信動作に入った時刻とデータの受信が完了した時刻を表示します。
- No.00000016,00000019
-
:反映キューファイルからデータを読み込んだ時刻と,トランザクションを完結(COMMIT)した時刻を示します。識別名(Cpn)で反映キューファイルの読み込みを示す「RFQGET」とコミットを示す「RFCOMT」の間のレコードが,反映処理のトランザクションの範囲です。この時刻の差分が,反映側システムでのトランザクション処理時間です。
- No.00000031 以降
-
:反映側システムの各プロセスの終了処理を示します。個々のプロセスIDがそれぞれの終了処理の時刻を示します。
稼働トレース取得レベルに「p2」を指定して,hdstrceditコマンド実行時に-l perf2を指定すると,上記の情報に加えてSQL単位の発行・完了時刻が出力されます。