我有两个事务管理器:JpaTransactionManager
(myJpaTm
)和JmsTransactionManager
(myJmsTm
)。Spring - 在JPA事务后提交JMS事务
考虑下面的代码:
@Named
public class TestA {
@Inject TestB testB;
@Transactional(transactionManager="myJpaTm")
public void methoda() {
// store stuff in db
testB.methodb();
}
}
@Named
public class TestB {
@Transactional(transactionManager="myJmsTm")
public void methodb() {
// send few JMS messages
}
}
我们有外JPA交易和内部JMS事务,两者都是因为我们没有使用分布式事务分开。
我想在提交JPA事务后立即提交JMS事务。在这种情况下,当前的JMS事务将需要连接到父JPA事务。
我不是在寻找替代分布式事务,我只是想在将数据提交给数据库后发送JMS消息。
我知道我可以创建另一个类,可以调用methoda
和之后的methodb
,但我想通过将两个事务连接在一起来解决它。