アプリケーションがいくつかのOracle固有の機能を使用しているため、プロジェクトではOracle接続プールメカニズムを使用しています。
jetty.xmlでのデータソースの構成は次のとおりです。
<Call name="addService">
<Arg>
<New class="org.mortbay.jetty.plus.DefaultDataSourceService">
<Set name="Name">DataSourceService</Set>
<Call name="addDataSource">
<Arg>app_ds</Arg><!--java:comp/env-->
<Arg>
<New class="oracle.jdbc.pool.OracleConnectionPoolDataSource">
<Set name="description">xxxx</Set>
<Set name="user">xxx</Set>
<Set name="password">xxxx</Set>
<Set name="loginTimeout">xxx</Set>
<Set name="URL">jdbc:oracle:thin:@localhost:1521:xxx</Set>
</New>
</Arg>
</Call>
<Call name="start"/>
</New>
では、このデータソースをP6Spyと統合して、P6SpyがすべてのSQLステートメントをコンソールに出力できるようにするにはどうすればよいでしょうか...?
私は以前、SpringのDriverManagerDataSourceなどの他のデータソースでP6spyを使用しました。
(Tomcatの場合)
Resource name="jdbc/test" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@xxx"
username="xxx" password="xxx" maxActive="65" maxIdle="10"
maxWait="-1" removeAbandoned="true"/>
..等。
これらのデータソースはすべて、引数としてdriverClassNameを取り、「oracle.jdbc.driver.OracleDriver」の代わりに「com.p6spyengine.spy.P6SpyDriver」を指定し、spy.propertiesで実際のドライバー名を指定できます。すべてうまくいきました。
ただし、oracle.jdbc.pool.OracleConnectionPoolDataSourceには、プロキシドライバを提供するdriverClassNameというプロパティはありません。
この場合、どうすればP6Spyを統合できますか?
助けてください...
よろしくお願いします、クリシュナV