實際上,JBoss確實發送了消息,但是隻有當EJB啓動的當前事務完成時才發送消息。JBoss不會發送JmsTemplate(Spring)消息
我們在JBoss 4.0.3和Spring的JmsTemplate中遇到了這個問題。 EJB將消息發送到具有臨時隊列的隊列作爲reply_to字段。然後,在同一個事務中,我們監聽第一個MDB給出的響應。問題是JmsTemplate的方法「send」在事務完成後不會被執行。所以,當消息被髮送到隊列並由MDB處理時,臨時隊列的偵聽器就消失了。
這就是所謂的「同步接收」
兩件事情改變這種行爲,但確實引起了一些擔憂:
更改EJB的事務類型到骨髓移植。 (關注:BMT糟糕)
創建一個線程,它所做的就是調用JmsTemplate.send()方法。
作爲一個方面說明,這是一個WebLogic環境正常工作的EJB,而當它應該在交易的中間不能當它已經結束了沒有被髮送的消息。
感謝您的任何幫助。
這種行爲在我測試的每個JBoss版本上都是一樣的:4.2,5.0和5.1 – Eldelshell 2009-11-17 11:07:35