我们在项目中使用 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 语句打印到控制台...?
我以前曾将 P6spy 与 Spring 的 DriverManagerDataSource 等其他数据源一起使用,其他数据源如
(在 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"/>
..ETC。
所有这些数据源都以 driverClassName 作为参数,我们可以提供“com.p6spyengine.spy.P6SpyDriver”代替“oracle.jdbc.driver.OracleDriver”,并在 spy.properties 中提供真实的驱动程序名称。一切都很好。
但是对于 oracle.jdbc.pool.OracleConnectionPoolDataSource,没有这样的名为 driverClassName 的属性来提供代理驱动程序。
在这种情况下,我如何将 P6Spy 与其集成?
请帮忙...
在此先感谢,克里希纳五世