0

Websphere Scheduler 正在使用调度程序数据源 XA 驱动程序。当调度程序执行任务时,它正在启动一个全局事务,但在我们的应用程序中,我们正在创建一个到另一个数据库的新连接,并显式提交数据并关闭连接。此数据源使用非 XA 驱动程序数据源配置。对于应用程序,我们还启用了接受启发式风险(最后参与者支持扩展)。现在在运行调度程序时,我们得到了异常 DSRA9350E: Operation Connection.commit is not allowed during a global transaction 。

谁能帮我解决这个问题

4

1 回答 1

3

您的任务在事务中运行,并且您可能在该事务中调用 commit。因此,您应该在该事务之外调用您的数据库操作、提交和关闭数据库。创建 bean 管理的事务会话 bean

@TransactionManagement(TransactionManagementType.BEAN)

并将 db 和事务相关代码移动到新 bean 中。

于 2010-04-23T12:10:37.163 回答