栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

PostgreSQL错误:由于用户请求而取消语句

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PostgreSQL错误:由于用户请求而取消语句

我们已经找到了造成此问题的原因。最新的JDBC驱动程序9.2-100x中setQueryTimeout()的错误实现解释了这一点。如果您手动打开/关闭连接,则可能不会发生这种情况,但通常是在适当位置建立连接池并将
autocommit 设置为 false的情况下发生的
。在这种情况下,应使用非零值调用setQueryTimeout()(例如,使用Spring框架@Transactional(timeout =
xxx)批注)。


事实证明,只要在语句执行过程中引发SQL异常,取消计时器就不会被取消并保持活动状态(这就是实现方式)。由于存在池,后面的连接不会关闭,而是返回到池中。稍后,当取消计时器触发时,它会随机取消当前与此计时器创建时所使用的连接相关的查询。目前,这是一个完全不同的查询,它解释了随机性的影响。

建议的解决方法是放弃setQueryTimeout(),改用PostgreSQL配置(statement_timeout)。它没有提供相同级别的灵活性,但至少始终有效。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/595974.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号