2.21.1 pdclttrcの形式と規則
(1) 機能
SQL実行中のクライアントの,SQLトレースを取得します。SQLトレースは,クライアントに出力されます。
SQLトレースを取得するサーバのサーバ名とプロセスIDは,pdls -d prcコマンドの実行結果の,クライアントのIPアドレス,UAPの識別情報から特定できます。
(2) 実行者
HiRDB管理者が実行できます。
(3) 形式
pdclttrc 〔-s サーバ名〕 〔-p プロセスID〕 〔-e〕 〔-l PDUAPREPLVL指定値〕 〔-m ?パラメタ及び検索データの最大データ長〕 〔-n 出力オペレーションコード数〕 〔-o SQLトレースファイルのサイズ〕
(4) オプション
(a) -s サーバ名 〜<識別子>((1〜8))
SQLトレースを取得するクライアントが接続している,サーバの名称を指定します。シングルサーバ又はフロントエンドサーバのサーバ名を指定してください。
このオプションを省略した場合,HiRDBのすべてのサーバ(シングルサーバ又はフロントエンドサーバ)に接続しているプロセスのSQLトレースを取得します。
シングルサーバの場合,不正なサーバ名を指定してもエラーにはなりません。
(b) -p プロセスID 〜<符号なし整数>((1〜10))
SQLトレースを取得するクライアントが接続している,サーバのプロセスIDを指定します。
HiRDB/パラレルサーバの場合,必ず-sオプションと同時に指定してください。HiRDB/シングルサーバの場合,-sオプションの指定は任意です。
このオプションを省略した場合,シングルサーバ又はフロントエンドサーバに接続しているすべてのプロセスのSQLトレースを取得します。
(c) -e
SQLトレースの取得を停止します。
- <規則>
-
-
既に接続が切断されていたり,-nオプションの指定値に達してSQLトレースの取得が停止したりしている状態で,このオプションを指定してもエラーにはなりません。
-
このオプションだけ指定した場合,HiRDBのすべてのサーバ(シングルサーバ又はフロントエンドサーバ)に接続しているプロセスのSQLトレース取得を停止します。
-
同時に-sオプションを指定した場合,指定したサーバに接続しているすべてのプロセスのSQLトレース取得を停止します。
-
同時に-pオプションを指定した場合,指定したプロセスのSQLトレース取得を停止します。
-
クライアント側への停止要求は次回SQLで実行されます。その間に内部的なオペレーションが実行された場合,-eオプションで停止した後もSQLトレースに情報が出力されることがあります。内部的なオペレーションについては,「DAT形式ファイルのレコード形式」のオペレーションコードを参照してください。
-
(d) -l PDUAPREPLVL指定値
このオプションは,SQLトレース情報以外に,UAP統計レポート情報も出力する場合に指定します。UAP統計レポートの出力情報(クライアント環境定義PDUAPREPLVLの指定値)を指定します。指定値,情報の出力先などについては,マニュアル「HiRDB UAP開発ガイド」を参照してください。
プロセス間メモリ通信機能を使用している場合,このオプションを指定しても無視されます。このとき,プロセス間メモリ通信中のメッセージが出力されます。
-eオプションと同時に指定した場合,このオプションの指定は無効となります。
(e) -m ?パラメタ及び検索データの最大データ長 〜<符号なし整数>((4〜32008))
SQLトレースに出力する?パラメタ情報,及び検索データの最大データ長を,バイト単位で指定します。
このオプションは,クライアント環境定義PDPRMTRCにINOUTを指定した場合と同じ機能になります。
-eオプションと同時に指定した場合,このオプションの指定は無効となります。
(f) -n 出力オペレーションコード数 〜<符号なし整数>((0〜10000))《0》
SQLトレースファイルに出力するオペレーションコード数を指定します。指定したオペレーションコード数分情報を出力した場合,SQLトレース取得は停止します。
このオプションを省略した場合,-eオプション指定のpdclttrcコマンドを実行するまで,又はDISCONNECTされるまでSQLトレースを出力します。
-eオプションと同時に指定した場合,このオプションの指定は無効となります。
(g) -o SQLトレースファイルのサイズ 〜<符号なし整数>((0,4096〜2000000000))《32768》
SQLトレースファイルのサイズをバイト単位で指定します。
0を指定した場合,ファイルの最大サイズとなります。
-eオプションと同時に指定した場合,このオプションの指定は無効となります。
(5) 規則
-
pdclttrcコマンドは,HiRDBが稼働中のときだけ実行できます。
-
pdclttrcコマンドは,シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。
-
pdclttrcコマンドは,接続しているクライアントのバージョンが07-01以降の場合に,SQLトレースを取得します。
-
SQLトレースの取得は,pdclttrcコマンド実行時に処理中のSQLから取得を開始します。ただし,SQLトレース取得開始時に処理中のSQLについては,次の情報は出力されません。
-
SQL開始時刻
-
クライアント環境定義PDSQLEXECTIME=YES指定時に出力されるSQL実行時間
-
UAP統計レポートに出力されるSQL単位情報のSQL実行時間と差分情報
-
-
SQLトレースファイル及びUAP統計レポートは,クライアント環境定義PDCLTPATHの指定ディレクトリに出力します。PDCLTPATHを省略している場合は,UAP実行時のカレントディレクトリに出力します。
ただし,-lオプション指定時にクライアント環境定義PDREPPATHが指定されている場合は,PDREPPATHの指定ディレクトリに出力されます。
-lオプション指定時のSQLトレースファイルの出力先を次に示します。
PDCLTPATHの指定
PDREPPATHの指定
SQLトレースファイルの出力先
なし
なし
カレントディレクトリ
あり
なし
PDCLTPATHの指定ディレクトリ
なし
あり
PDREPPATHの指定ディレクトリ
あり
あり
-
-lオプションを指定した場合,UAP単位の情報はコマンド開始からの情報であるため,コマンド実行以前の情報については出力されません。
-
このコマンド実行時のファイル名称については,マニュアル「HiRDB UAP開発ガイド」の「SQLトレース機能」を参照してください。
-
クライアント側で既にSQLトレースが取得されている場合,pdclttrcコマンドを実行しても無効となります。
-
pdclttrcコマンド実行中に再度pdclttrcコマンドを実行した場合,現在SQLトレースを取得しているプロセスについては,取得中である旨のメッセージが出力されます。
-
このコマンドで取得するSQLトレースの出力形式は,クライアント環境変数PDSQLTRCFMTの指定値に従います。PDSQLTRCFMT省略時は出力形式2で出力します。
(6) 注意事項
-
通信エラーやDISCONNECTなどで接続が切断された場合,又は-nオプションで指定したオペレーションコード数分SQLトレースを出力した場合,自動的にSQLトレースの取得を停止します。
-
クライアント環境定義PDHSICOPTIONSでUAPREP又はALLを指定している場合,pdclttrcコマンドを実行しないでください。PDHSICOPTIONSの詳細は,マニュアル「HiRDB UAP開発ガイド」の「クライアント環境定義(環境変数の設定)」を参照してください。
-
pdclttrcコマンドのリターンコードを次に示します。
0:正常終了
8:エラー終了
-
-pオプションを指定しないで実行したpdclttrcコマンドがエラー終了となった場合,一部のプロセスについてだけSQLトレース取得状態となることがあります。エラーとなった原因を対策してから再実行するか,-eオプションを指定してSQLトレースの取得を停止してください。