java-无法使用p6Spy
作者:互联网
我尝试了两种方法将p6Spy功能添加到我的spring用项目中.
一号路
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文件中.
但是以某种方式在p6spy驱动程序com.ibm.db2.jcc.DB2Driver之前注册了我的realdriver,它是spy.properties中的真实驱动程序,但已在p6spy之前加载. p6spy不会包装这些连接.要么阻止驱动程序加载,要么尝试在spy.properties中将“ deregisterdrivers”设置为true
使用:p6spy:前缀对我不起作用.它说无法与该网址建立连接.
因此,我选择在属性文件中设置此deregisterdrivers = true.
这次我在日志文件中获取了sql,但是无法执行sqls.我可以在另一个sql编辑器中执行sql.似乎真正的联系消失了,一个虚假的联系到了.
二号线
我们用弹簧.所以我尝试了这种方法.明确地将数据源提供给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
<bean id="dataSource" lazy-init="true"
class="com.firm.BasicDataFill">
<property name="driverClassName" value="${database.connection.driver_class}" />
<property name="username" value="${database.connection.username}" />
<property name="password" value="${database.connection.password}" />
<property name="url" value="${database.connection.url}" />
...
<property name="accessToUnderlyingConnectionAllowed" value="true" />
</bean>
<!-- bean id="myDataSource" class="com.p6spy.engine.spy.P6DataSource">
<constructor-arg>
<ref local="dataSource"/>
</constructor-arg>
</bean-->
最后,我发现p6spy v1.3和2.4.1设置有所不同.您对基于Spring的应用程序有什么建议吗?
解决方法:
我建议从最新版本的P6Spy 2.x开始.您还应该用记录为here的2.X的默认版本替换spy.properties文件.根据您的应用程序服务器,可能需要在spy.properties中设置“ realdriver”设置以包括“ com.ibm.db2”. .jcc.DB2Driver”.但是,仅在使用阻止JDBC驱动程序自动注册的应用程序服务器时才需要这样做.
要将P6Spy与Spring一起使用,最简单的方法是使用071000讨论的P6SpyDataSource来包装当前数据源bean.该答案中的示例显示了正在包装的JNDI数据源,但可用于包装任何数据源.注意:如果要包装的数据源是P6SpyDataSource,则不需要修改JDBC URL.
如果您仍然遇到问题,请在问题中添加更多信息.以下信息将有助于故障排除:
>使用的P6Spy版本
> spy.properties的内容
>数据源的定义(如果有,则包括应用服务器配置)
使用JNDI)
>使用的应用服务器类型和版本
> Stacktrace包含您可能收到的任何错误.
标签:java,spring,p6spy 来源: https://codeday.me/bug/20191013/1906486.html