postgresql - 在 JBoss 中使用连接池时 postgres 查询超时问题

标签 postgresql jboss timeout datasource connection-pooling

我面临以下问题

ERROR: canceling statement due to user request 

在我的 xxx-ds.xml 中为 xa 数据源启用查询超时后不一致。我在我的 ds xml 文件中添加了以下内容。

 <query-timeout>180</query-timeout>
  • 查询超时设置为180秒,即任意sql查询 超过 180 秒的申请将从申请中取消 服务器端。

    但我面临的问题是不一致的,查询有时会超时,而不会正好花费 180 秒。 我们也在使用连接池。

在搜索 stackoverflow 时发现 this问题,其中讨论了使用连接池时出现此问题的可能原因。

建议的解决方案是在 postgresql.conf 文件中设置 statement_timeout 设置。但是我很难在我的数据库环境中启用 statement_timeout 设置,因为数据库服务器由多个应用程序共享。 我希望有一个解决方案可以在使用连接池时有效且一致地终止来自客户端的超时查询。我正在使用

  • JBoss 4.2.2-GA
  • postgresql 9.2(64 位)
  • Java 1.7
  • postgresql-9.2-1002.jdbc4.jar

最佳答案

看起来问题出在 postgresql 驱动程序 9.2 上。当我升级到 9.3 时,问题已解决。

关于postgresql - 在 JBoss 中使用连接池时 postgres 查询超时问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44242542/

相关文章:

ruby-on-rails - 事件记录 : Remove element from PostgreSQL array

sql - PLpgSQL(或 ANSI SQL?)列上的条件计算

java - EJB 升级到 JBoss AS 7 时出错

java - 第一次运行 MyBatis 报错信息

javascript - 一个接一个地执行函数

ruby-on-rails - 验证 rails 3 中 postgres 整数字段的数值

php - 无法将空白发布到数据库 : postgreSQL and Codeigniter

windows - 如何使用JBoss 5和Oracle在每台机器上允许多个数据库连接

networking - TCP Socket 无连接超时

java - HTTP FAILED : java.net.SocketTimeoutException:新 Android gradle 超时