无法实现与p6Spy一起工作
我尝试了两种方法将p6Spyfunction添加到我的弹簧使用项目中。
路线I,
http://templth.blogspot.com.tr/2004/11/integrate-p6spy-with-spring.html我用com.p6spy.engine.spy.P6SpyDriver
更改了我的驱动程序并添加了realdriver realdriver=com.ibm.db2.jcc.DB2Driver
进入spy.properties
文件。
但不知怎的,我的realdriver是在p6spy 驱动程序com.ibm.db2.jcc.DB2Driver是 spy.properties 中的真正驱动程序之前注册的,但是它已经在p6spy之前加载了。 p6spy不会包装这些连接。要么阻止加载驱动程序,要么在spy.properties中尝试将’deregisterdrivers’设置为true
使用:p6spy:
前缀对我不起作用。 它说无法与该url建立连接。
所以,我选择在属性文件中设置这个deregisterdrivers=true
。 这次我在日志文件中获取sql但无法执行sqls。 我能够在另一个sql编辑器中执行sql。 这似乎是真正的联系,一个假的来了。
路线II,我们用spring。 所以我尝试过这种方法。 将数据源显式提供给p6Spy。 但是这次spring抱怨了多个java.sql.DataSource实例。 com.firm.BasicDataFill
和com.p6spy.engine.spy.P6DataSource
实现了DataSource。 spring无法获得单身人士。
http://templth.blogspot.com.tr/2004/11/integrate-p6spy-with-spring.html
...
最后,我发现p6spy v1.3和2.4.1设置有所不同。 您对基于弹簧的应用有任何建议吗?
我建议从最新版本的P6Spy 2.x开始。 您还应该使用此处记录的2.X的默认版本来替换spy.properties文件。 根据您的应用程序服务器,您可能需要在spy.properties中设置’realdriver’设置以包含’com.ibm.db2.jcc.DB2Driver’。 但是,只有在使用阻止JDBC驱动程序自动注册的应用程序服务器时才需要这样做。
要将P6Spy与Spring一起使用,最简单的方法是使用P6SpyDataSource包装当前数据源bean,如此处所述。 该答案中的示例显示了一个被包装的JNDI数据源,但它可以用于包装任何数据源。 注意:如果要包装数据源是P6SpyDataSource,则无需修改JDBC URL。
如果您仍然遇到问题,请在您的问题中添加更多信息。 以下信息有助于排除故障:
- 正在使用的P6Spy版本
- spy.properties的内容
- 数据源的定义(如果使用JNDI,则包括app server config)
- 应用程序服务器的类型和正在使用的版本
- Stacktrace包含您可能收到的任何错误。
看看Log4jdbc它会做的工作https://code.google.com/p/log4jdbc/