2

トランザクションでメッセージを受信し、EJBのthis.sessionContext.setRollbackOnly()のいずれかを呼び出すと複数のEJB呼び出しを行うMDBがあると、JMSメッセージの再配信がトリガーされますか?

すべてのEJBメソッドは、Requires_Newトランザクション属性でマークされています。

4

1 に答える 1

1

いいえ、MDBのトランザクションは、注釈@REQUIRES_NEWが付けられたEJBが処理されている間(それぞれが独自のトランザクション内で)中断されるためです。追加の仮定はsetRollbackOnly()、EJBのトランザクションをロールバックする唯一の効果、つまり、EJBが適切に終了し、例外をスローしなかったことです(ロールバックに投票した後、リソースとさらに対話すると、javax.ejb.EJBExceptionファミリからの例外がスローされる可能性があります)。

于 2011-09-14T21:48:59.197 に答える