pureQuery コンポーネント・ロギング/トレースのプロパティーの説明

Java アプリケーションでは、pureQuery Runtime API、pureQuery クライアント最適化、CMX モニターなど、 さまざまな pureQuery コンポーネントのログ・レベルを制御できます。 pureQuery Runtime によってモニターされるデータベース・ログ・イベントをリポジトリーに送信することもできます。

pureQuery は java.util.logging フレームワークを使用します。 pureQuery ロギングおよび java.util.logging フレームワークについては、 『Java アプリケーションの使用上の注意』を参照してください。

pureQuery コンポーネント・ロギング・パラメーター

pureQuery コンポーネント・ベースのロギングでは、以下のログ・レベルがサポートされます。 レベルは、最も情報の少ないレベルから最も詳細なレベルの順に、以下のようになっています。
  • OFF
  • SEVERE
  • WARNING
  • INFO
  • CONFIG
  • FINE
  • FINER
  • FINEST
  • ALL
デフォルトのレベルは OFF です。
以下の pureQuery Runtime プロパティーは、pureQuery コンポーネント・ベースのロギングを制御します。
com.ibm.pdq
より具体的なコンポーネントが指定されていない場合は、すべての pureQuery コンポーネントのログ・レベルを指定します。
com.ibm.pdq.api
インライン・メソッドまたは DAO スタイルの pureQuery API を実行する場合のログ・レベルを指定します。
com.ibm.pdq.api.static
pureQuery Runtime DAO が静的な状態で実行されるログ・レベルを指定します。
com.ibm.pdq.api.dynamic
pureQuery Runtime DAO スタイルが動的な状態で実行されるログ・レベルを指定します。
com.ibm.pdq.co
pureQuery クライアント最適化によって SQL ステートメントが実行される場合のログ・レベルを指定します。
com.ibm.pdq.co.static
pureQuery クライアント最適化によって SQL ステートメントが静的に実行される場合のログ・レベルを指定します。
com.ibm.pdq.co.dynamic
pureQuery クライアント最適化によって SQL ステートメントが動的に実行される場合のログ・レベルを指定します。
com.ibm.pdq.cmx
CMX クライアント・モニターのログ・レベルを指定します。
com.ibm.pdq.database
pureQuery Runtime によって記録されるデータベース・イベントをログに記録するためのログ・レベルを指定します。 ログ・レベル設定は、このプロパティーに対して明示的に行われなければなりません。 このプロパティーは、com.ibm.pdq プロパティーの子プロパティーではありません。

com.ibm.pdq.database プロパティーについてログに記録されるデータベース・イベントを次の表にリストします。

表 1. pureQuery データベース・イベント・ロギングのログ・レベル
ログ・レベル データベース・イベント
CONFIG dumpLogsOnSqlCodes にはリストされて dumpLogsExcludedSqlCodes にはリストされない SQL エラー
FINE リポジトリーからの pureQuery プロパティーのリフレッシュ
FINER pureQuery クライアント最適化による SQL ステートメントの動的 PREPARE
FINEST pureQuery クライアント最適化による SQL ステートメントの静的 PREPARE

アプリケーションが、pureQuery データに対してリポジトリーを使用するように構成されている 場合、pureQuery Runtime は、小さいログ・レコード・サブセットをリポジトリーに保管できます。 リポジトリーは、グローバル pdq.properties ファイルに指定されなければなりません。 アプリケーション・レベルまたはデータ・ソース・レベルで指定されるリポジトリー・ロケーションはロギング目的では無視されます。

ログ・レコードは IBMPDQ.LOG 表に保管されます。 リポジトリーに保管されているすべてのログ・レコードを表示するには、次の SQL ステートメントを発行します:
 select * from ibmpdq.log
注: ログ・レコードを既存のリポジトリーに保管するには、 リポジトリーをアップグレードしておかなければならない場合があります。 ManageRepository ユーティリティーの -upgrade オプションを参照してください。

使用上の注意

スタンドアロン Java ユーザーは、pureQuery Runtime pdq.properties ファイルを 使用したり他の方法を使用したりしてログ・レベルを管理できます。 アプリケーションが pdq.properties によって pureQuery コンポーネント・ロギングを管理する場合は、 ログ・ファイルをディスク上に置くことも、ログの内容をリポジトリーに保管することもできます。 pureQuery コンポーネント・ロギングのログ・レベルを制御するために、JRE では、JRE/lib フォルダー内の logging.properties ファイルがサポートされます。

pureQuery コンポーネント・ロギング・プロパティーに関しては、子ログ・プロパティーは親レベルのログ設定を継承します。 子ログ設定を明示的に行うことで、親レベルのログ設定をオーバーライドできます。

例えば、com.ibm.pdq.co プロパティーのログ・レベルのみを FINE に設定した場合、 子プロパティー com.ibm.pdq.co.staticcom.ibm.pdq.co,dynamic のログ・レベルも FINE になります。

java.util.logging によって指定されるメソッドでログ・レベルを設定できます。 他のアプリケーションでは、java.util.logging ロガーを管理するための他のメソッドが備わっていることもあります。

いずれの pureQuery コンポーネント・ログ・プロパティーでもログ・レベルを設定しない場合、 そのプロパティーは WebSphere® 環境では親 (com.ibm など) のレベルを継承します。

次の WebSphere Application Server の例では、pureQuery コンポーネント・ログ・プロパティーが ALL に 設定されます。

com.ibm.pdq.*=all 

pureQuery Runtime コンポーネント・プロパティーのトレース・レベルを指定

pureQuery コンポーネント・トレースのログ・レベルを設定するには、 グローバル pdq.properties ファイルで以下の構文を使用します。

pdq.traceLevel=OFF
pdq.traceLevel.com.ibm.pdq.co=FINER
pdq.traceLevel.com.ibm.pdq.co.static=FINE

これらの pureQuery Runtime プロパティーは、 ディスクまたはリポジトリーにある pdq.properties ファイルで指定できます。 pureQuery Runtime がリフレッシュ間隔でリポジトリーからこれらのプロパティーをリフレッシュすると、ログ・レベルが pureQuery ロガーに適用されます。

pureQuery コンポーネント・ロギング・プロパティーには、pdq.traceFile に相当するものはありません。

リポジトリーから pureQuery Runtime トレース・プロパティーを指定

pdq.traceLevelpdq.traceLevel.com.ibm.pdq.* をトレースするために使用される pureQuery Runtime プロパティー、 およびプロパティー dumpLogsOnSqlCodes は、リポジトリーで指定できます。 pdq.properties ファイルに pureQuery Runtime プロパティーを設定して、そのファイル内の情報をリポジトリーにアップロードします。 リポジトリーのリフレッシュ間隔が指定されている場合、更新されたログ・プロパティーが指定の時刻にリポジトリーから 読み取られ、pureQuery Runtime 対応アプリケーションに適用されます。

リポジトリーは、グローバル pdq.properties ファイルに指定されなければなりません。 アプリケーション・レベルまたはデータ・ソース・レベルで指定されるリポジトリー・ロケーションはロギング目的では無視されます。

ManageRepository ユーティリティーを -pureQueryProperties オプションとともに使用すれば、pureQuery Runtime プロパティー・ファイルを リポジトリーにアップロードできます。 次のコマンドはスクリプトから実行され、トレース・レベルが含まれるファイル pdq.properties をリポジトリーにアップロードします。

java -cp %PQ_USER_CLASSPATH% com.ibm.pdq.tools.ManageRepository 
   -update runtimeGroup 
   -pureQueryProperties pdqrep.properties 
   -runtimeGroupID %1 -runtimeGroupVersion %2 
   -repositoryURL %PQ_REP_URL% 
   -repositoryUsername %PQ_REP_USERNAME% 
   -repositoryPassword %PQ_REP_PASSWORD% 
   -repositoryDriverClass com.ibm.db2.jcc.DB2Driver

このスクリプトをコマンド行から実行すると、 変数 %1%1 が、スクリプトの実行時に指定された値で置き換えられます。 %PQ_USER_CLASSPATH% などの変数は、環境変数によって指定された値で置き換えられます。


フィードバック