WebLogic JDBC Spy は WebLogic Type 4 JDBC ドライバをラップするラッパーです。アプリケーションによって発行された JDBC 呼び出しに関する詳細情報をログに記録して、その呼び出しをラップされた WebLogic Type 4 JDBC ドライバに渡します。このログの情報は、アプリケーションの問題を解決するために使用できます。WebLogic JDBC Spy を使用する利点は以下のとおりです。
ロギングは JDBC 3.0 に準拠しており、JDBC オプション パッケージのサポートも含まれている。WebLogic JDBC Spy では、サポートされている JDBC 4.0 機能のロギングもサポートされる。
ロギングはすべての WebLogic Type 4 JDBC ドライバで動作する。
ロギングはどの WebLogic Type 4 JDBC ドライバを使用する場合でも一貫性がある。
JDBC 呼び出しのすべてのパラメータと関数の結果をログに記録できる。
WebLogic Server コンフィグレーションの JDBC データ ソースを変更することで、アプリケーションを変更せずにロギングを有効にできる。
注意 : WebLogic JDBC Spy は標準の JDBC API のみを実装します。他の WebLogic Type 4 JDBC ドライバで実装される JDBC 拡張機能は実装していません。アプリケーションで JDBC 拡張機能を使用する場合、WebLogic JDBC Spy を使用するとエラーが発生するおそれがあります。 |
WebLogic Server で WebLogic JDBC Spy を使用するには、JDBC データ ソース コンフィグレーションの URL の末尾に JDBC Spy 属性を追加します。データ ソースのコンフィグレーションを修正するには、次の手順に従います。
サーバを起動する前に、CLASSPATH に WL_HOME
/server/lib/wlspy.jar
を追加します。WL_HOME
は、WebLogic Server ソフトウェアをインストールしたディレクトリです。
WebLogic ドメインの WebLogic Server Administration Console またはコンフィグレーション ファイルで、データ ソースの URL に WebLogic JDBC Spy のオプションを付加します。JDBC Spy オプションをセミコロンで区切って、1 組の括弧内にすべてのオプションを含めます。
Administration Console の[ドメイン コンフィグレーション | データ ソース] タブで、spy を有効にする特定のデータ ソースを選択します。[接続プール] タブを開き、既存の URL の最後に spyAttributes
を追加します。次に例を示します。
jdbc:weblogic:DB2://db2host:50000;spyAttributes=(log=(file)d:\spy.log;timestamp=yes)
または、datasource_name-jdbc.xml ファイルで、JDBC データ ソースのエントリの URL を更新します。次に例を示します。
<jdbc-driver-params>
<url>jdbc:weblogic:db2://bangpcdb2:50000;spyAttributes=(log=(file)db2-spy.out;load=weblogic.jdbc.db2.DB2Driver;timestamp=yes)
</url>
<driver-name>weblogic.jdbc.db2.DB2Driver</driver-name>
<properties>
<property>
<name>user</name>
<value>john</value>
</property>
<property>
<name>portNumber</name>
<value>50000</value>
</property>
<property>
<name>databaseName</name>
<value>wls</value>
</property>
<property>
<name>serverName</name>
<value>db2host</value>
</property>
<property>
<name>batchPerformanceWorkaround</name>
<value>true</value>
</property>
</properties>
<password-encrypted>{3DES}hqKps8ozo98=</password-encrypted>
</jdbc-driver-params>
WebLogic Server を停止して再起動します。
表 D-1 に、WebLogic JDBC Spy コンフィグレーションで使用できるオプションを示します。これらのオプションを、XA ドライバの場合は spyAttributes プロパティの属性として、非 XA ドライバの場合は URL 内の属性として使用します。
表 D-1 WebLogic JDBC Spy の URL 属性
キーと値の組み合わせ | 説明 |
---|---|
log=System.out |
ロギングを Java 標準出力にリダイレクトする。 |
log=(file)filename |
ロギングを filename で指定されるファイルにリダイレクトする。デフォルトでは、WebLogic JDBC Spy は DriverManager.setLogStream() で指定されるストリームを使用する。 |
load=classname |
classname で指定されるドライバをロードする。 |
linelimit=numberofchars |
WebLogic JDBC Spy が 1 行に記録する最大文字数を numberofchars で指定する。デフォルトは 0 (最大の制限はなし)。 |
logIS={yes、no、または nosingleread} |
WebLogic JDBC Spy が InputStream および Reader オブジェクトのアクティビティをログに記録するかどうかを指定する。 logIS=nosingleread の場合、InputStream および Reader オブジェクトのロギングはアクティブになるが、InputStream.read() の 1 バイトの読み込みまたは Reader.read() の 1 文字の読み込みのロギングは行われない。これによって、1 バイトまたは 1 文字の読み込みのメッセージを含む大きなログ ファイルの生成が回避される。 デフォルトは no。 |
logTName={yes または no} |
WebLogic JDBC Spy が現在のスレッドの名前をログに記録するかどうかを指定する。デフォルトは no。 |
timestamp={yes または no} |
WebLogic JDBC Spy のログの各行にタイムスタンプを含めるかどうかを指定する。 |
例の下にある「注意」で該当するテキストを参照してください。
例 D-1 WebLogic JDBC Spy のログの例
All rights reserved.脚注 1 registerDriver:driver[className=weblogic.jdbcspy.SpyDriver, context=null,weblogic.jdbcspy.SpyDriver@1ec49f]脚注 2 *Driver.connect(jdbc:spy:{jdbc:weblogic:sqlserver://QANT:4003; databaseName=Test;}) trying driver[className=weblogic.jdbcspy.SpyDriver, context=null,weblogic.jdbcspy.SpyDriver@1ec49f]脚注 3 spy>> Driver.connect(String url, Properties info) spy>> url = jdbc:spy:{jdbc:weblogic:sqlserver://QANT:4003;databaseName=Test; OSUser=qauser;OSPassword=null12} spy>> info = {password=tiger, user=scott} spy>> OK (Connection[1])脚注 4 getConnection returning driver[className=weblogic.jdbcspy.SpyDriver, context=null,weblogic.jdbcspy.SpyDriver@1ec49f]脚注 5 spy>> Connection[1].getWarnings() spy>> OK脚注 6 spy>> Connection[1].createStatement spy>> OK (Statement[1])脚注 7 spy>> Statement[1].executeQuery(String sql) spy>> sql = select empno,ename,job from emp where empno=7369 spy>> OK (ResultSet[1])脚注 8 spy>> ResultSet[1].getMetaData() spy>> OK (ResultSetMetaData[1])脚注 9 spy>> ResultSetMetaData[1].getColumnCount() spy>> OK (3)脚注 10 spy>> ResultSetMetaData[1].getColumnLabel(int column) spy>> column = 1 spy>> OK (EMPNO)脚注 11 spy>> ResultSetMetaData[1].getColumnLabel(int column) spy>> column = 2 spy>> OK (ENAME)脚注 12 spy>> ResultSetMetaData[1].getColumnLabel(int column) spy>> column = 3 spy>> OK (JOB)脚注 13 spy>> ResultSet[1].next() spy>> OK (true)脚注 14 spy>> ResultSet[1].getString(int columnIndex) spy>> columnIndex = 1 spy>> OK (7369)脚注 15 spy>> ResultSet[1].getString(int columnIndex) spy>> columnIndex = 2 spy>> OK (SMITH)脚注 16 spy>> ResultSet[1].getString(int columnIndex) spy>> columnIndex = 3 spy>> OK (CLERK)脚注 17 spy>> ResultSet[1].next() spy>> OK (false)脚注 18 spy>> ResultSet[1].close() spy>> OK脚注 19 spy>> Connection[1].close() spy>> OK脚注 20
脚注
脚注 1 : WebLogic JDBC Spy は登録されています。spy>> プレフィックスは、この行が BEA WebLogic JDBC Spy によってログに記録されたことを表します。