我有兩個事務管理器: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
,但我想通過將兩個事務連接在一起來解決它。