ロギングおよびトレースのプロパティーの説明

pureQuery には、ログ・ファイルに送信される情報のタイプを制御し、重大度レベルを構成可能なロギングおよびトレースの機能を備えています。

以下のプロパティーを設定できます。

pdq.traceFile
ログ情報を書き込む物理ファイルを指定します。 絶対パスを使用することも、pureQuery 対応アプリケーションの実行先のディレクトリーに対して相対的なパスを使用することもできます。

Java アプリケーション用のファイルが存在する場合、pureQuery はそのファイルの内容を削除してから、 新しいログ項目用にそのファイルを使用します。

traceFile プロパティーは、グローバル pdq.properties ファイルでのみ指定できます。

pdq.traceLevel
ログ・ファイルに書き込む詳細情報のレベルを指定します。レベルは、最も情報の少ないレベルから最も詳細なレベルの順に、以下のようになっています。
  • OFF
  • SEVERE
  • WARNING
  • INFO
  • CONFIG
  • FINE
  • FINER
  • FINEST
  • ALL
デフォルトのレベルは OFF です。

pureQuery コンポーネント・ロギングのトレース・レベルを指定できます。 pureQuery コンポーネント・トレース情報をログに記録する方法については、 『pureQuery Runtime コンポーネント・プロパティーのトレース・レベルを指定』を参照してください。

traceLevel プロパティーは、グローバル pdq.properties ファイルでのみ指定できます。

pdq.traceBufferRowCount
メモリーにバッファリングされるログ・レコードの最大数を指定します。 traceBufferRowCount プロパティーの値は負の整数にはできません。 デフォルト値 (0) の場合、ログ・レコードがメモリーにバッファリングされないことが指定されます。

traceBufferRowCount プロパティーが有効な場合、ログ・レコードをファイルに 書き込むには、pureQuery Runtime プロパティー dumpLogsOnSqlCodes も指定する必要があります。 dumpLogsOnSqlCodes プロパティーの値は、SQL エラー・コードのリストです。 リストにあるエラーが発生した場合、メモリーにバッファリングされているログ・レコードがログ・ファイルに書き込まれます。 ログ・ファイルは、traceFile プロパティーで指定されます。 指定されたエラー・コードが検出されないか、またはプロパティー dumpLogsOnSqlCodes が指定されていない場合に、 メモリーの最大量に達すると、新規レコードがメモリーにバッファリングされたときに、最も古いレコードがメモリーから削除されます。

プロパティー dumpLogsExcludingSqlCodes は、ログ・レコードがログ・ファイルに書き込まれることのない SQL エラー・コードとともに 指定できます。

次の例では、最大 8000 個のログ・レコードがメモリーにバッファリングされて、SQL エラーの pureQuery Runtime デフォルト・リストに 含まれている SQL エラーが発生した場合にログ・レコードがログ・ファイルに書き込まれることが指定されます。
pdq.traceBufferRowCount=8000
pdq.dumpLogsOnSqlCodes=default

traceBufferRowCount オプションは、 スタンドアロン pureQuery Runtime アプリケーションとともに使用されるように設計されています。 これは、WebSphere® リング・バッファーとは無関係です。

pdq.dumpLogsOnSqlCodes
pureQuery Runtime がメモリーにログ・レコードをバッファリングする場合、このプロパティーは、 レコードがログ・ファイルに書き込まれることになる SQL エラー・コードを指定します。
このプロパティーの値は、パイプ文字 (|) で区切られた SQL エラー・コードのリストです。 このリストには、キーワード default を含めることができます。 キーワード default は、バッファリングされたログ・レコードがログ・ファイルに書き込まれるようにするために pureQuery Runtime が 使用する SQL エラー・コードのリストを指定します。 SQL エラー・コードの指定時には、先頭のダッシュを含める必要があります。 次の例では、バッファリングされたログ・レコードがログ・ファイルに書き込まれることになる 2 つの SQL エラー・コードがリストされます。
pdq.traceBufferRowCount=8000
pdq.dumpLogsOnSqlCodes=-805|-810

SQL エラー・コード -805 または -810 が発生した場合、 あるいは traceBufferRowCount プロパティーによって指定されたレコードの数がメモリーにバッファリングされた 場合、pureQuery Runtime は、メモリー内にあるログ・レコードをログ・ファイルに書き込みます。

次の例では、SQL エラー・コードの default リストと、バッファリングされたログ・レコードがログ・ファイルに書き込まれることになる エラー・コードとして SQL エラー・コード -3476 が示されます。
pdq.traceBufferRowCount=8000
pdq.dumpLogsOnSqlCodes=default|-3476

キーワード default を使用する場合は、 バッファリングされたログ・レコードがログ・ファイルに書き込まれることのない 特定の SQL エラー・コード dumpLogsExcludingSqlCodes を指定できます。 pureQuery Runtime のデフォルト SQL エラー・コードのリストについては、 『ロギングで使用される pureQuery Runtime のデフォルト SQL エラー・コードのリスト』を参照してください。

pdq.dumpLogsExcludingSqlCodes
pureQuery Runtime がメモリーにログ・レコードをバッファリングする場合、このプロパティーは、バッファリングされたログ・レコードが ログ・ファイルに書き込まれることがない SQL エラー・コードを指定します。 dumpLogsOnSqlCodes プロパティーは、バッファリングされたログ・レコードがログ・ファイルに書き込まれることになる SQL エラー・コードを 指定します。 このプロパティーの値は、パイプ文字 (|) で区切られた SQL エラー・コードのリストです。 SQL エラー・コードの指定時には、SQL エラー・コードの符号が重要です。 例えば、805 と -805 は別々のエラー・コードです。 このプロパティーは、default キーワードを dumpLogsOnSqlCodes とともに指定する場合に使用します。

次の例では、最大 8000 個のログ・レコードをメモリーにバッファリングできます。 pureQuery Runtime は、デフォルト・リスト内の SQL エラー・コード、またはエラー・コード -3476 が検出されると、 バッファリングされたログ・レコードをログ・ファイルに書き込みます。 SQL エラー・コードのデフォルト・リストには、エラー・コード -805 が含まれています。 dumpLogsExcludingSqlCodes プロパティーでは、SQL エラー・コード -805 が発生した場合に、 バッファリングされたログ・レコードがログ・ファイルに書き込まれないことが指定されました。

pdq.traceBufferRowCount=8000
pdq.dumpLogsOnSqlCodes=default|-3476
pdq.dumpLogsExcludingSqlCodes=-805

Java アプリケーションの使用上の注意

pureQuery Runtime は java.util.logging フレームワークを使用します。 そのフレームワーク内で、pureQuery Runtime は親ロガー com.ibm.pdq.logger を指定します。 Java ロギング API 規則/ツールを使用すれば、手動で、またはご使用の アプリケーションで、com.ibm.pdq に対してログ・レベルおよびログ・ファイルを設定して、pureQuery ログ・メッセージが このロガーに転送されるようにすることができます。

多くのアプリケーション・サーバーには、java.util.logging フレームワークで実行されるロガーを構成するための管理ツールが用意されています。 例えば、WebSphere Application Server では、pureQuery ロギング/トレースを制御するように com.ibm.pdq ロガーを構成できます。 アプリケーション・サーバーのツールを使用しても、pureQuery Runtime プロパティーで pureQuery ロギングを構成できます。 pureQuery は、com.ibm.pdq logger レベルが pureQuery の pdq.traceLevel プロパティーに指定されたレベルよりも高く、com.ibm.pdq logger レベルが INFO よりも高い場合、com.ibm.pdq logger レベルを使用します。 WebSphere Application Server Integrated Solutions Console で「トラブルシューティング」 > 「ログおよびトレース」を 選択すれば、com.ibm.pdq ロガー・レベルを設定できます。

com.ibm.pdq logger のトレース・レベルが INFO よりも包括的なレベルに設定されていて、pureQuery プロパティーでは com.ibm.pdq logger のトレース・レベルよりも包括的なレベルを指定していない場合、pureQuery は com.ibm.pdq logger のレベルを継承します。

pureQuery アプリケーションと一緒に WebSphere Application Server を使用する計画の場合に、WebSphere Application Server のログ内で pureQuery ログ項目を参照するのであれば、INFO より上位のレベルに設定する必要があります。

pureQuery Runtime は、ロギングと JDBC ドライバー・ログを明示的には統合しません。 ただし、Java ロギング API を使用してログへの記録も行う JDBC ドライバーは、ロギング・フレームワークの統合に参加できます。 つまり、JDBC ドライバーと pureQuery Runtime の両方が WebSphere トレースに記録するように 構成されている場合、pureQuery および JDBC ドライバーのログ項目は同じログ・ファイルにインターリーブされます。

getJccSpecialRegisterProperties() メソッドに対する呼び出しの結果のロギング

アプリケーションが IBM® Data Server Driver for JDBC and SQLJ を使用して、サポートされている DB2® データベースに接続する際に、Connection オブジェクト上の getJccSpecialRegisterProperties() メソッドを呼び出す場合は、pureQuery はオブジェクト上のこのメソッドに対する最初の呼び出しの結果をログに記録できます。pureQuery がログに書き込むメッセージには、ドライバーがデータベース用にサポートする特殊レジスターの非ヌル値がすべてリストされます。

ログ内のこのメッセージを参照するには、トレース・レベルを FINE に設定します。

DB2 CLI および IBM Data Server Driver の使用上の注意

DB2 コール・レベル・インターフェースまたは IBM Data Server Driver と pureQuery Runtime を一緒に使用する場合は、pureQuery Runtime プロパティーを構成キーワードとして使用できます。

構成ファイル db2cli.ini または dsdriver.cfg には 2 つのキーを設定できます。

IBM CLI キーワードの構文
traceFile = path-to-logfile

CLI アプリケーションが実行されるディレクトリーに対する絶対パスまたは相対パスを使用できます。 ファイルが存在する場合は、ファイルの既存の内容に新しいログ・メッセージが追加されます。

traceLevel = path-to-logfile
IBM Data Server Driver 構成の構文
<parameter name="traceFile" value="path-to-logfile" />

CLI アプリケーションが実行されるディレクトリーに対する絶対パスまたは相対パスを使用できます。 ファイルが存在する場合は、ファイルの既存の内容に新しいログ・メッセージが追加されます。

<parameter name="traceLevel" value="path-to-logfile" />
IBM Data Server Provider for .NET の等価な接続ストリング・キーワード
該当なし

db2cli.ini ファイル内の以下の行は、traceFile を /user/CLIOPTtraces.log に、traceLevel を INFO に設定します。

traceFile=/user/CLIOPTtraces.log
traceLevel=INFO

フィードバック