分布式事务中无法调用Connection.commit

问题描述 投票:0回答:1

我正在使用 Weblogic 12c,在应用程序中提交分布式事务时遇到以下错误。

“java.sql.SQLException:无法在分布式事务中调用Connection.commit。提交分布式事务时事务管理器将提交资源管理器”

抛出异常的代码部分是:

Session sessionNew = HibernateService.getService().getSession();
sessionNew.connection().commit(); 

这个问题已被问过多次,但我寻求的解决方案不同。 最常见的解决方案是禁用 XA 事务来解决该问题。 但我的应用程序包含的不仅仅是数据库、JMS 等资源。 除了上述解决方案之外,任何人都可以提出其他解决方案吗?

另外,我需要了解JTA事务超时值和上述错误之间是否有任何关系。

非常感谢。

java weblogic weblogic12c jta xa
1个回答
0
投票

如果您将 @TransactionManagement (TransactionManagementType.CONTAINER) 切换为 @TransactionManagement (TransactionManagementType.BEAN),则很可能不会再出现此错误。

因此,您定义了提交时定义的内容,而不是服务器。

© www.soinside.com 2019 - 2024. All rights reserved.