実際、JBoss はメッセージを送信しますが、それは EJB によって開始された現在のトランザクションが終了したときだけです。
JBoss 4.0.3 と Spring の JmsTemplate でこの問題が発生します。EJB は、reply_to フィールドとして一時キューを持つキューにメッセージを送信します。次に、同じトランザクション内で、最初の MDB からの応答をリッスンします。問題は、トランザクションが終了した後に JmsTemplate のメソッド「send」が実行されないことです。そのため、メッセージがキューに送信され、MDB によって処理されるまでに、一時キューのリスナーはなくなります。
これを「同期受信」といいます
2 つのことがこの動作を変更しますが、いくつかの懸念が生じます。
EJB のトランザクション タイプを BMT に変更します。(懸念事項:BMTは最悪)
JmsTemplate.send() メソッドを呼び出すだけのスレッドを作成します。
補足として、これは weblogic 環境で正しく動作している EJB であり、メッセージはトランザクションの終了時ではなくトランザクションの途中で、送信されるべきときに送信されます。
助けてくれてありがとう。