Hibernate 错误:postgresql中不存在准备好的事务

Hibernate 错误:postgresql中不存在准备好的事务,hibernate,postgresql,jakarta-ee,jpa,Hibernate,Postgresql,Jakarta Ee,Jpa,在Hibernate上运行带有JPA的Java EE应用程序时,PostgreSQL(9.2)日志中出现以下错误: 错误:标识符为“131077_uaaaaaaaaaaaaap//FWAAAD5TKPBVP1XEAAZFMX0Y2HPZS1UB2RL_uaaaaaaaaaaap//FWAAAD5TKPBVP1XEAAZPWAAaaaaaaaa”的准备交易不存在 声明:回滚准备“131077_uaaaaaaaaaaaaaaaaap//FWAAAD5TKPBVP1XEAAZFMX0Y2HPZS1UB

在Hibernate上运行带有JPA的Java EE应用程序时,PostgreSQL(9.2)日志中出现以下错误:

错误:标识符为“131077_uaaaaaaaaaaaaap//FWAAAD5TKPBVP1XEAAZFMX0Y2HPZS1UB2RL_uaaaaaaaaaaap//FWAAAD5TKPBVP1XEAAZPWAAaaaaaaaa”的准备交易不存在 声明:回滚准备“131077_uaaaaaaaaaaaaaaaaap//FWAAAD5TKPBVP1XEAAZFMX0Y2HPZS1UB2RL_uaaaaaaaaaaaaaaap//FWAAAD5TKPBVP1XEAAZPWAAaaaaaaaa”


如何优化设置以避免此错误?这是间歇性发生的。

原因可能是默认情况下禁用了准备好的事务。 要启用它们,请编辑postgresql.conf并将值设置为大于0

max_prepared_transactions = 64

似乎是JTA/XA处理两阶段事务时的一个错误。您或框架正在尝试回滚从未准备好或已回滚的xact。要确定是哪个,并了解更多正在发生的事情,请在
postgresql.conf
和/或您的应用程序框架中启用更详细的日志记录。您不能。这是尽可能多的信息。该事务不存在,因此要么已经回滚/提交,要么从未创建过。您可以在
postgresql.conf
中配置更多日志记录,以跟踪日志文件中的
PREPARE TRANSACTION
ROLLBACK PREPARED
COMMIT PREPARED
语句。您还可以检查
pg_prepared_xacts
表。当前max_prepared_事务设置为9。可以吗?这取决于您的应用程序和用户数量。如果仍然存在该问题,请尝试增加该值,看看它是否不再发生。