【发布时间】:2016-10-23 10:52:30
【问题描述】:
我有两个事务管理器:JpaTransactionManager (myJpaTm) 和 JmsTransactionManager (myJmsTm)。
考虑以下代码:
@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 的类,但我想通过将两个事务连接在一起来解决它。
【问题讨论】: