JpaTransactionManager
(myJpaTm
)とJmsTransactionManager
(myJmsTm
)の2つのトランザクションマネージャがあります。JPAトランザクション後のSpringコミット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
を呼び出すことができる別のクラスを作成することができますが、両方のトランザクションを一緒に接続して解決したいと思います。