永洪社区

标题: PostgreSQL数据库报current transaction is aborted, commands ignored until ... [打印本页]

作者: yanieye    时间: 2022-8-16 19:30
标题: PostgreSQL数据库报current transaction is aborted, commands ignored until ...
PostgreSQL、华为Gauss200/DWS,在没有选中“Auto Commit”时,一些情况下会出现
current transaction is aborted, commands ignored until end of transaction block的报错。

详细的报错信息如下:

Caused by: org.postgresql.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2101) ~[postgresql-9.1-902.jdbc4.jar:?]
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1834) ~[postgresql-9.1-902.jdbc4.jar:?]
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255) ~[postgresql-9.1-902.jdbc4.jar:?]
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:510) ~[postgresql-9.1-902.jdbc4.jar:?]
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:372) ~[postgresql-9.1-902.jdbc4.jar:?]
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:252) ~[postgresql-9.1-902.jdbc4.jar:?]





作者: Fiona    时间: 2022-8-16 19:30
已确认这个问题是由于postgreSQL数据库的驱动导致的。
部分版本的驱动不能正常处理Cancel事务,导致它认为这些事务还是处于可用状态并尝试使用这些事务去执行查询,并最终导致这个错误。
解决方案:升级驱动到postgresql-42.2.14.jar或以上版本可以解决这个问题。

另外,勾选"AutoCommit"会导致驱动一次性加载全部的数据结果,并且脱离内存管控,如果有大数据量的结果集会导致系统内存短时间极速耗尽,不建议勾选。
作者: yanieye    时间: 2022-8-16 19:34
已确认这个问题是由于postgreSQL数据库的驱动导致的。
部分版本的驱动不能正常处理Cancel事务,导致它认为这些事务还是处于可用状态并尝试使用这些事务去执行查询,并最终导致这个错误。
解决方案:升级驱动到postgresql-42.2.14.jar或以上版本可以解决这个问题。

另外,勾选"AutoCommit"会导致驱动一次性加载全部的数据结果,并且脱离内存管控,如果有大数据量的结果集会导致系统内存短时间极速耗尽,不建议勾选。




欢迎光临 永洪社区 (https://club.yonghongtech.com/) Powered by Discuz! X3.4