问题标签 [p6spy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1958 浏览

jpa-2.0 - 尝试使用 Jboss AS 7 和 potgres 使用 xa-datasource 配置 P6Spy 2.0 时,P6SpyDriver 无法转换为 javax.sql.XADataSource 异常

P6spy v2 支持 xa 数据源 - P6spy on github

在我的 jboss AS 7 Standalone-full-ha.xml 中,我有以下数据源配置。

之后,我将 p6spy-2.0.1.jar 放在 jboss\modules\com\p6spy\main 文件夹中,并定义了 module.xml 文件。此外,我将 spy.properties 文件与 P6spy.jar 一起放入,并在其中添加了启用 postgres 驱动程序的行

使用所有这些设置,当我启动我的服务器时,我得到以下异常。

在这一步,我对如何使它工作一无所知。

编辑: 根据 quintonm 的回复,我使用了实现 XADatasource 的 com.p6spy.engine.spy.P6ConnectionPoolDataSource 类。但现在我得到以下异常。

此外,按照 P6spy 文档中所述的通用说明,我在 xa-datasource-properties 中使用了“RealDataSource”属性,但它随后表示不存在此类属性。

0 投票
1 回答
1095 浏览

logging - 从 Hibernate 4.3 记录查询(使用 SLF4J+Logback 或 P6SPY)

我正在使用 Glassfish 4 和 Hibernate 4.3。

如何记录来自 Hibernate 的每个查询?

我的第一次尝试涉及 SLF4J 1.7.7 和 Logback 1.1.2。我尝试了一些使用 SLF4J 和 Logback 的教程,但没有结果。 一个教程说要手动更改一些文件并向 glassfish 添加一些选项,但我不喜欢这种方式。

在我的第二次尝试中,我使用了 P6SPY 2.0.2。为了使这个库工作,我需要更改我的连接以使用 P6SPY 驱动程序并配置 spy.properties 以使用真正的驱动程序。因为我已经在 Glassfish 上配置了我的连接池,所以我尝试了P6SPY 安装教程来在那里配置它,但我还没有设法让我的新 DataSource 工作。在 P6SPY 安装教程中,有一种方法可以使用 java.sqlDriver 和 javax.sql.ConnectionPoolDataSource 进行配置,但我使用的是 javax.sql.DataSource。

那么,这是将 SLF4J 与 Glassfish 一起使用的唯一方法吗?您知道教程或如何配置它吗?

如果 SLF4J 不起作用,我如何配置 P6SPY 以使用 Glassfish 连接池记录我的查询?

有更好的选择吗?

提前致谢。

0 投票
1 回答
1557 浏览

java - 从 Hibernate 生成 SQL 脚本

我将 Hibernate 4.3.5-Final 用于我的 Java Swing 应用程序,并且我做了很多UDPATE,INSERTDELETE使用它(在 HQL 或 with 中Criteria)。

现在,我要做的是导出对我的数据库所做的所有修改的 SQL 脚本,但我不知道该怎么做。这个脚本只需要包含修改(而不是表的创建)并将它们放在一个.sql文件中(导出的文件路径将由用户选择)

你有什么想法可以解决我的问题吗?

先感谢您 !

[编辑]:一些论坛讨论p6spy,它可以回答我的问题吗?

0 投票
1 回答
4028 浏览

java - 尝试记录 sql 请求时 P6Spy 的 ClassNotFoundException

我得到了这个例外:

在尝试通过 P6Spy 代理驱动程序连接到我的数据库时。此异常指向这行代码:

我将 P6Spy.jar 和 spy.properties 添加到构建路径,这里是 spy.properties 配置文件:

这是我的连接类:

有人可以告诉我这里出了什么问题吗?非常感谢任何帮助!

0 投票
0 回答
110 浏览

java - 仅在错误时记录 SQL

我目前正在使用 p6spy 从休眠状态记录 sql,以便获取包含参数的完整 sql,以便可以更轻松地复制和粘贴以进行调试。但是,我只想在数据库出现错误时记录。有没有办法实现这一点,同时仍然使用 p6spy 或其他工具维护 SQL 中的参数。当我说仍然在其中时要清楚,例如,我的意思是,而不是说 SELECT * from employee where employee.id = ? 它会说 SELECT * from employee where employee.id = 28。

0 投票
1 回答
152 浏览

java - 如何实现适配器模式(或以下情况的更雄辩的解决方案)?

问题(简洁的小版本):我有一个可以编辑的 jar 文件,但我想在该 jar 中的特定类中创建一个方法来调用另一个 jar 下的另一个类。这个想法是existing.jar 将只有调用external.jar 的方法,而external.jar 将返回一个值给existing.jar 以继续其处理。

问题(详细的版本):我使用 p6spy 来捕获我的应用程序生成的 sql,但我需要将该 sql 过滤到一个非常特定的级别,不仅 p6spy 的函数“sqlExpression”不起作用,即使它会还不够。我目前已经反编译(我没有找到项目的源代码,是的,它是一个开源项目)p6spy 并编辑了 formattedlogger.class 以满足我的需要。我的问题是,这是许多人必须使用的“解决方案”,而我应用的过滤器对某些人来说是不够的,而对其他人来说根本不起作用,因为他们需要我需要排除的东西。我做了一些研究并决定我应该采用适配器路线,我决定 p6spy.jar 将保持不变,

但我不知道该怎么做。:(

场景:操作系统:CentOS release 6.4 (Final) 其中最有可能是虚拟机。应用服务器:jboss-4.3.0.GA 其中包含多个服务器文件夹下的实例。我在 app_server/server/instance/lib 下有 p6spy.jar 我知道我必须将适配器放在同一个文件夹下。

有谁知道这应该如何完成,我可以在哪里阅读这些事情或我应该如何进行,也许是不同的解决方案或另一个想法。我愿意接受建议。

*编辑 1:我有一个 p6spy.jar 文件,其中包含我编辑以满足我的需要的类。(FormattedLogger.class)

课程如下:

我需要它看起来像这样:

顾名思义,这个“method_in_another_class_and_in_other_jar_file(sql)”将在这个 jar 之外,以便于编辑等。

0 投票
1 回答
557 浏览

hibernate - 根据 P6SPY 配置休眠日志以查看日志中的实际参数值

我在我的java项目中使用hibernate,但我使用的hibernate是一个遗留版本意味着我使用的版本是hibernate 3,而不是我使用spring的hibernate,它是spring专用的hibernate,

我正在通过网络发现有关 p6SPY 的信息。jar,其中由 hibernate 生成的查询而不是问号,而是反映了实际的参数值,这从开发人员的角度来看非常有帮助,这是我通过的链接

现在我也想为我的应用程序提供相同的功能,但正如我之前所说,我使用的是面向弹簧的休眠,而且我们的休眠配置是在单个 xml 本身中完成的,如下所示,但请告知我如何配置这样的功能我的应用程序中的 P6SPY 我的休眠 xml 如下所示..

0 投票
1 回答
250 浏览

java - 将 sql 查询与绑定参数一起捕获到日志文件中

我使用 p6spy/log4jdbc 来捕获 sql 查询以及绑定参数,连接到 Oracle 数据库(使用 hibernate 4.3.5 和 oracle 10g)并将其推送到使用 logback 配置的日志文件。

通过提供 p6spy/log4jdbc 所需的代理详细信息来创建数据源。

但是,有没有办法启用/禁用此功能并在运行时切换回 oracle 数据源?

我想它需要在运行时对数据源进行运行时切换..?

是否有任何其他方法可以在不使用任何外部库(如 p6spy/log4jdbc ..)的情况下捕获 sql 查询以及绑定参数?

0 投票
2 回答
1613 浏览

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.DB2Driverspy.properties文件中。

但不知何故,我的 realdriver 是在 p6spy 驱动程序 com.ibm.db2.jcc.DB2Driver 之前注册的,它是 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

最后,我发现 p6spy v1.3 和 2.4.1 的设置有所不同。您对基于弹簧的应用程序有什么建议吗?

0 投票
1 回答
65 浏览

tomcat - p6spy 使Tomcat8在使用时不再重新部署

当我在我的 Postgres 数据库驱动程序之上使用 p6spy 时,无法重新部署 tomcat。

在重新部署之前它工作得很好。当我进行重新部署时,我收到此错误:

有没有解决的办法?