ヘッダーをスキップ
Oracle® Fusion Middleware WebLogic Server Type 4 JDBC ドライバ ガイド
11g リリース 1 (10.3.1)
B55561-01
 

目次
目次

戻る
戻る
 
 

D WebLogic JDBC Spy による JDBC 呼び出しのトラッキング

WebLogic JDBC Spy は WebLogic Type 4 JDBC ドライバをラップするラッパーです。アプリケーションによって発行された JDBC 呼び出しに関する詳細情報をログに記録して、その呼び出しをラップされた WebLogic Type 4 JDBC ドライバに渡します。このログの情報は、アプリケーションの問題を解決するために使用できます。WebLogic JDBC Spy を使用する利点は以下のとおりです。

WebLogic JDBC Spy に対応する WebLogic JDBC データ ソースのコンフィグレーション

WebLogic Server で WebLogic JDBC Spy を使用するには、JDBC データ ソース コンフィグレーションの URL の末尾に JDBC Spy 属性を追加します。データ ソースのコンフィグレーションを修正するには、次の手順に従います。

  1. サーバを起動する前に、CLASSPATH に WL_HOME/server/lib/wlspy.jar を追加します。WL_HOME は、WebLogic Server ソフトウェアをインストールしたディレクトリです。

  2. 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>
    
  3. WebLogic Server を停止して再起動します。

WebLogic JDBC Spy の URL 属性

表 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 で指定されるドライバをロードする。weblogic.jdbc.db2.DB2Driver など。

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 のログの各行にタイムスタンプを含めるかどうかを指定する。


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 によってログに記録されたことを表します。
脚注 2 : JDBC ドライバ マネージャは JDBC ドライバが登録されるたびにメッセージをログに記録します。
脚注 3 : これは JDBC ドライバ マネージャのログです。JDBC アプリケーションが接続するたびにメッセージをログに記録します。
脚注 4 : アプリケーションは指定された URL で接続しています。プロパティを使用してユーザ名とパスワードが指定されます。
脚注 5 : これは JDBC ドライバ マネージャのログです。正常な接続が行われるたびにメッセージをログに記録します。
脚注 6 : アプリケーションは警告があるかどうかを確認します。 この例では、警告はありません。
脚注 7 : 「select empno,ename,job from emp where empno=7369」という文が作成されています。
脚注 8 : 「select empno,ename,job from emp where empno=7369」 という文が作成されています。
脚注 9 : メタデータが要求されています。
脚注 10 : メタデータが要求されています。
脚注 11 : メタデータが要求されています。
脚注 12 : メタデータが要求されています。
脚注 13 : メタデータが要求されています。
脚注 14 : 最初の行とそのデータが取得されています。
脚注 15 : 最初の行とそのデータが取得されています。
脚注 16 : 最初の行とそのデータが取得されています。
脚注 17 : 最初の行とそのデータが取得されています。
脚注 18 : アプリケーションは 2 番目の行を取得しようとしていますが、データベースはこのクエリに対して 1 行しか返しませんでした。
脚注 19 : すべての結果を取得した後、結果セットが閉じられます。
脚注 20 : アプリケーションが終了して接続が解除されます。