我正在使用Weblogic 12c,在我的应用程序中提交分布式事务时,我收到以下错误。
“java.sql.SQLException:无法在分布式事务中调用Connection.commit。事务管理器将在提交分布式事务时提交资源管理器”
抛出异常的代码部分是:
Session sessionNew = HibernateService.getService().getSession();
sessionNew.connection().commit();
这个问题已被多次询问,但我所寻求的解决方案却有所不同。 最常见的解决方案是禁用XA事务来解决问题。 但我的应用程序包含的不仅仅是数据库,JMS等资源。 任何人都可以提出除上述解决方案之外的解决方案。
另外,我需要了解JTA事务超时值与上述错误之间是否存在任何关系。
非常感谢。
答案 0 :(得分:0)
如果您将@TransactionManagement(TransactionManagementType.CONTAINER)切换为@TransactionManagement(TransactionManagementType.BEAN),则很可能不再发生此错误。
因此,您定义的是提交时定义的内容,而不是服务器。