在几乎每次调用之前,我们都会收到一个非常无用的调用,它作为单独的事务进入 SELECT CURRENT SQL ID FROM SYSIBM.SYSDUMMY1
Preceeding almost every call, we get a pretty useless call that comes in as a separate transaction SELECT CURRENT SQLID FROM SYSIBM.SYSDUMMY1
我们有一个 JAVA 应用程序,它通过 openJPA 连接到 DB2 以获取数据。在几乎每个 SQL 调用之前,我们都会收到一个非常无用的调用,它作为单独的事务传入:
“SELECT 当前 SQLID 来自 SYSIBM.SYSDUMMY1”
DBA 说他不知道为什么几乎每次调用之前都会调用上述无用的 SQL 语句。
知道为什么调用此查询吗?我可以做些什么来跳过这个吗?
这个问题困扰我已经有一段时间了,DBA 抱怨 DB2 的事务数量急剧增加。
如有任何帮助,我们将不胜感激。谢谢
查询来自连接池管理器,在将其移交给应用程序之前对其进行验证。我认为您的连接池实现在最坏的情况下被破坏,充其量配置错误。
首先,
The query submitted by the driver to validate the connection shall be executed in the context of the current transaction.
http://docs.oracle.com/javase/7/docs/api/java/sql/Connection.html#isValid(int)
因此,如果验证查询来自您的交易之外,则它是不合规的。
其次,从 JDBC4 开始,连接池实现不需要 运行 验证查询,它可以使用其他方法验证连接未关闭或失效。检查 HikariCP 配置以了解有关此主题的讨论。我不能向您保证您正在使用的池管理器能够进行不同的配置,但一定要检查它,并可能与其他池管理器一起检查它。
如果您在 WAS 中配置了数据源,请确保在 Data sources > YOUR_DATASOURCE > WebSphere Application Server data source properties
页面上您有 UNCHECKED 两个 Validate connections..
选项。
我们有一个 JAVA 应用程序,它通过 openJPA 连接到 DB2 以获取数据。在几乎每个 SQL 调用之前,我们都会收到一个非常无用的调用,它作为单独的事务传入: “SELECT 当前 SQLID 来自 SYSIBM.SYSDUMMY1”
DBA 说他不知道为什么几乎每次调用之前都会调用上述无用的 SQL 语句。
知道为什么调用此查询吗?我可以做些什么来跳过这个吗?
这个问题困扰我已经有一段时间了,DBA 抱怨 DB2 的事务数量急剧增加。
如有任何帮助,我们将不胜感激。谢谢
查询来自连接池管理器,在将其移交给应用程序之前对其进行验证。我认为您的连接池实现在最坏的情况下被破坏,充其量配置错误。
首先,
The query submitted by the driver to validate the connection shall be executed in the context of the current transaction.
http://docs.oracle.com/javase/7/docs/api/java/sql/Connection.html#isValid(int)
因此,如果验证查询来自您的交易之外,则它是不合规的。
其次,从 JDBC4 开始,连接池实现不需要 运行 验证查询,它可以使用其他方法验证连接未关闭或失效。检查 HikariCP 配置以了解有关此主题的讨论。我不能向您保证您正在使用的池管理器能够进行不同的配置,但一定要检查它,并可能与其他池管理器一起检查它。
如果您在 WAS 中配置了数据源,请确保在 Data sources > YOUR_DATASOURCE > WebSphere Application Server data source properties
页面上您有 UNCHECKED 两个 Validate connections..
选项。