WebLogic Type 4 JDBC ドライバ ガイド

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

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

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

注意 : WebLogic JDBC Spy は標準の JDBC API のみを実装します。他の WebLogic Type 4 JDBC ドライバで実装される JDBC 拡張機能は実装していません。アプリケーションで 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 ソフトウェアをインストールしたディレクトリ (通常は C:\bea\weblogic81) です。
  2. WebLogic ドメインの WebLogic Server Administration Console または config.xml ファイルで、データ ソースの URL に WebLogic JDBC Spy のオプションを付加します。JDBC Spy オプションをセミコロンで区切って、1 組の括弧内にすべてのオプションを含めます。
  3. Administration Console の [JDBC 接続プールArrow symbolコンフィグレーションArrow symbol全般] タブで、既存の URL の最後に spyAttributes を追加します。次に例を示します。

    jdbc:bea:DB2://db2host:50000;user=john;spyAttributes=(log=(file)d:\spy.log;timestamp=yes)

    または、config.xml ファイルで、JDBC データ ソースのエントリの URL を更新します。次に例を示します。

    <JDBCConnectionPool Name="datasource"
    Password="{3DES}0zvizFP1" Targets="myserver"
    InitialCapacity="10" MaxCapacity="10"
    DriverName="weblogic.jdbcx.db2.DB2DataSource"
    Properties="user=john;DatabaseName=wls;PortNumber=50000;
    ServerName=db2host;batchPerformanceWorkaround=true"
    URL="jdbc:bea:DB2://db2host:50000;user=john;
    spyAttributes=(log=(file)d:\spy.log;timestamp=yes)"
    KeepXAConnTillTxComplete="true"
    />
  4. WebLogic Server を停止して再起動します。

 


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

 


BEA 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:bea: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:bea: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>> OK6
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>> OK19
spy>> Connection[1].close()
spy>> OK20

注意 :

1 BEA WebLogic JDBC Spy は登録されています。spy>> プレフィックスは、この行が BEA WebLogic JDBC Spy によってログに記録されたことを表します。

2 JDBC ドライバ マネージャは JDBC ドライバが登録されるたびにメッセージをログに記録します。

3 これは JDBC ドライバ マネージャのログです。JDBC アプリケーションが接続するたびにメッセージをログに記録します。

4 アプリケーションは指定された URL で接続しています。プロパティを使用してユーザ名とパスワードが指定されます。

5 これは JDBC ドライバ マネージャのログです。正常な接続が行われるたびにメッセージをログに記録します。

6 アプリケーションは警告があるかどうかを確認します。この例では、警告はありません。

7、8 「select empno,ename,job from emp where empno=7369」という文が作成されています。

9、10、11、12、13 メタデータが要求されています。

14、15、16、17 最初の行とそのデータが取得されています。

18 アプリケーションは 2 番目の行を取得しようとしていますが、データベースはこのクエリに対して 1 行しか返しませんでした。

19 すべての結果を取得した後、結果セットが閉じられます。

20 アプリケーションが終了して接続が解除されます。


  ページの先頭       前  次