Java 如何绕过JTA事务中的某些代码

Java 如何绕过JTA事务中的某些代码,java,jakarta-ee,transactions,jms,jta,Java,Jakarta Ee,Transactions,Jms,Jta,我正在使用JTA UserTransaction执行一些数据库和JMS相关的活动 问题如下 1.启动UsertTransaction 2.执行数据库搜索操作 3.执行数据库更新操作 4.执行JMS发送和接收操作-->有问题的工作流程 5.执行数据库更新操作 6.提交事务 第四步是产生问题,因为在提交事务之前,发送的消息不会持久保存在队列中,并且由于此JMS接收功能被破坏 在声明JTA事务之前不能执行步骤4,因为对其他步骤有很多依赖关系 我有没有办法处理这种情况。有没有办法绕过第四步的交易?谢谢你

我正在使用JTA UserTransaction执行一些数据库和JMS相关的活动

问题如下

1.启动UsertTransaction

2.执行数据库搜索操作

3.执行数据库更新操作

4.执行JMS发送和接收操作-->有问题的工作流程

5.执行数据库更新操作

6.提交事务

第四步是产生问题,因为在提交事务之前,发送的消息不会持久保存在队列中,并且由于此JMS接收功能被破坏

在声明JTA事务之前不能执行步骤4,因为对其他步骤有很多依赖关系

我有没有办法处理这种情况。有没有办法绕过第四步的交易?谢谢你的帮助


谢谢

在另一个事务中执行步骤4…我想不支持嵌套事务。否。如果您从step4抛出一个异常并让它冒泡,那么step4事务和“main”事务都将回滚。但是如果第5步或第6步使主事务回滚,那么它不会影响已经提交的第4步事务。