スケーラブルデータベースサーバ HiRDB Version 8 UAP開発ガイド

[目次][索引][前へ][次へ]

11.1.2 エラーログ機能

クライアントとHiRDBサーバ間の通信処理中,又はX/Openで規定したXAインタフェースでエラーが発生した場合,エラー情報をエラーログとしてエラーログファイルに取得します。

エラーログファイルは,取得した情報で満杯になると,最も古い情報から順次新しい情報に書き替えられます。

<この項の構成>
(1) エラーログ情報の取得方法
(2) エラーログ情報の見方
(3) エラーログファイルのバックアップの取得

(1) エラーログ情報の取得方法

エラーログは,クライアント環境定義のPDCLTPATH及びPDUAPERLOGに値を設定することで取得できます。各クライアント環境定義については,「6.6 クライアント環境定義(環境変数の設定)」を参照してください。

情報を取得するエラーログファイルは,指定したディレクトリに二つ作成されます。作成されるファイルは,X/Openに従ったAPI(TX_関数)の使用の有無によって異なります。

X/Openに従ったAPI(TX_関数)の使用の有無と作成されるエラーログファイルの関係を次の表に示します。

表11-3 X/Openに従ったAPI(TX_関数)の使用の有無と作成されるエラーログファイルの関係

TX_関数の使用 作成されるエラーログファイル
なし pderr1.trc,及びpderr2.trc
あり pderr×××××-1.trc,及びpderr×××××-2.trc

(凡例)×××××:UAP実行時のプロセスID


(2) エラーログ情報の見方

エラーログは,SQL文実行時,通信処理時,又はX/Openで規定したXAインタフェース関数実行時でエラーが発生したときに出力されます。

出力されるエラーログの例とその説明を次に示します。

[出力例]
[図データ]

[説明]
  1. エラーログ先頭識別子
    SQL実行でエラーが発生した場合には,'>>'を,それ以外のエラーの場合には'>'を表示します。
  2. UAPのプロセス番号
    エラーが発生したUAPのプロセス番号を表示します。
    なお,正しいプロセス番号が取得できない場合,不正な数値が表示される場合があります(Windows版の場合)。
  3. UAPのスレッド番号
    エラーが発生したUAPがマルチスレッドで動作している場合にUAPのスレッド番号を表示します。マルチスレッドで動作していない場合は0を表示します。正しいスレッド番号が取得できず,不正な数値が表示される場合があります。
  4. サーバのプロセス番号
    接続しているサーバのプロセス番号を表示します。
  5. エラーログカウンタ
    エラーログを受け付けるごとに順次カウントして表示します。
    0から65535までカウントできます。
  6. エラー取得日時
    エラーログを取得した日時をYYYY/MM/DD HH:MM:SSの形式で表示します。
  7. ログデータ
    障害情報(エラーメッセージ)を表示します。
  8. SQLCODE
    エラーログがUAPに返すSQLCODEに対応している場合に,そのSQLCODEを表示します。
  9. SQLカウンタ
    エラーが発生したSQL文のSQLカウンタを表示します。SQLカウンタの詳細については,「11.1.1 SQLトレース機能」の出力例の説明を参照してください。
  10. エラー取得時間
    エラーログを取得した時間をミリ秒単位で表示します。
  11. エラー検出箇所
    エラーを検出したソースファイルの名前と行番号を表示します。
  12. オペレーションコード
    エラーが発生したSQL文のオペレーションコードを表示します。

(3) エラーログファイルのバックアップの取得

エラーログ情報を出力中にエラーログファイルの容量が一杯になると,HiRDBはそのファイルへ出力しないで,もう一方のエラーログファイルにエラーログ情報を出力します。このとき,切り替え先のエラーログファイルに格納されている古いエラーログ情報から順に消去され,新しいエラーログ情報に書き換えられます。このため,必要な情報はUAP終了時にエラーログファイルの内容をコピーしてバックアップを取得しておいてください。

なお,現在使用しているエラーログファイルを知りたい場合は,ファイルの最終更新日時を調べてください。最終更新日時の新しい方が現在使用しているエラーログファイルになります。

HiRDBクライアントがWindows版の場合はdirコマンド又はエクスプローラで,ファイルの最終更新日時を調べてください。

HiRDBクライアントがUNIX版の場合はOSのls -lコマンドで,ファイルの最終更新日時を調べてください。