1

我们尝试编写一个应该支持本地事务的 JCA 适配器。我们想使用最后一个代理优化来将我们的连接器与 XADataSource 放在同一个事务中。

根据规范,在提交期间LocalTransactions.commit应该 throwLocalTransactionException指示错误,并且应该导致回滚 XA 事务。但是,这不会发生。我们只是在 server.log 中看到一些堆栈跟踪,并且事务保持在准备状态(并挂在那里)。我们调试了调用,glassfish 确实执行了最后一个代理优化,但是ConnectorXAResource.commit(调用它)将其LocalTransactionException转换为不会导致回滚的异常。

有什么建议可以解决这个问题吗?

4

0 回答 0