ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Serverタイプ4 JDBCドライバ
11g リリース1(10.3.5)
B61001-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストヘ移動
製品
目次へ移動
目次

前
 
 

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

WebLogic JDBC Spyとは、Oracleタイプ4 JDBCドライバをラッピングするラッパーです。アプリケーションによって発信されたJDBC呼出しの詳細情報をログ記録し、ラッピングしたOracleタイプ4 JDBCドライバへ呼出しを渡します。ログの情報はアプリケーションで問題が発生した際のトラブルシューティングに使用できます。WebLogic JDBC Spyには、次の利点があります。

WebLogic JDBC Spyに対応するWebLogic JDBCデータ・ソースの構成

WebLogic ServerでWebLogic JDBC Spyを使用するには、JDBCデータ・ソース構成のURLの末尾にJDBC Spy属性を追加します。


注意:

wlspy.jarは非推奨です。現在、この機能はドライバjarファイルに組み込まれていて、SpyAttributes接続パラメータを設定して有効化できます。

データ・ソースの構成を修正するには、次の手順に従います。

  1. WebLogicドメインのWebLogic Server管理コンソールまたは構成ファイルで、データ・ソースのURLにWebLogic JDBC Spyのオプションを付加します。JDBC Spyオプションをセミコロンで区切って、1組のカッコ内にすべてのオプションを含めます。

    管理コンソールの「ドメイン構成」>「データ・ソース」で、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>
    
  2. 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.Foot 1 
registerDriver:driver[className=weblogic.jdbcspy.SpyDriver,
context=null,weblogic.jdbcspy.SpyDriver@1ec49f]Foot 2 
*Driver.connect(jdbc:spy:{jdbc:weblogic:sqlserver://QANT:4003;
databaseName=Test;})
trying driver[className=weblogic.jdbcspy.SpyDriver,
context=null,weblogic.jdbcspy.SpyDriver@1ec49f]Foot 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])Foot 4 
getConnection returning driver[className=weblogic.jdbcspy.SpyDriver,
context=null,weblogic.jdbcspy.SpyDriver@1ec49f]Foot 5 
spy>> Connection[1].getWarnings()
spy>> OKFoot 6 
spy>> Connection[1].createStatement
spy>> OK (Statement[1])Foot 7 
spy>> Statement[1].executeQuery(String sql)
spy>> sql = select empno,ename,job from emp where empno=7369
spy>> OK (ResultSet[1])Foot 8 
spy>> ResultSet[1].getMetaData()
spy>> OK (ResultSetMetaData[1])Foot 9 
spy>> ResultSetMetaData[1].getColumnCount()
spy>> OK (3)Foot 10 
spy>> ResultSetMetaData[1].getColumnLabel(int column)
spy>> column = 1
spy>> OK (EMPNO)Foot 11 
spy>> ResultSetMetaData[1].getColumnLabel(int column)
spy>> column = 2
spy>> OK (ENAME)Foot 12 
spy>> ResultSetMetaData[1].getColumnLabel(int column)
spy>> column = 3
spy>> OK (JOB)Foot 13 
spy>> ResultSet[1].next()
spy>> OK (true)Foot 14 
spy>> ResultSet[1].getString(int columnIndex)
spy>> columnIndex = 1
spy>> OK (7369)Foot 15 
spy>> ResultSet[1].getString(int columnIndex)
spy>> columnIndex = 2
spy>> OK (SMITH)Foot 16 
spy>> ResultSet[1].getString(int columnIndex)
spy>> columnIndex = 3
spy>> OK (CLERK)Foot 17 
spy>> ResultSet[1].next()
spy>> OK (false)Foot 18 
spy>> ResultSet[1].close()
spy>> OKFoot 19 
spy>> Connection[1].close()
spy>> OKFoot 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 :アプリケーションが終了して接続が解除されます。