我面临以下问题
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/