2016-07-15 57 views
0

處理I具有從隊列一個jms-message-driven-channel-adapter接收消息。我將消息傳遞給router,它基於某個參數將消息發送到配置爲Service Activators的spring beans。交易在彈簧一體化

我想要的消息,以從彈簧豆已經處理了該消息後,才JMS隊列中刪除。否則不應該刪除隊列中的消息。

我試過把上述所有流程都放在chain內,但是jms-adapterchain不兼容。我是春季融合的新手。請讓我知道如何實現這一點。

回答

0

只要使用(默認)中的所有組件之間的直接信道,則該流程將在事務中運行並且該消息將被刪除(提交)的流動完成時;只需設置acknowledge="transacted"(自4.2版以來的默認值)。

如果流動拋出異常,該消息將被重新排隊(回滾)。

+0

什麼是直接渠道和間接渠道。由於我使用路由器是直接渠道嗎? – zilcuanu

+0

沒有隊列或任務執行程序的簡單''是直接通道。見[消息頻道(http://docs.spring.io/spring-integration/reference/html/messaging-channels-section.html)和[事務​​支持](http://docs.spring.io/spring-集成/參考/ HTML/transactions.html)。 –