2012-03-21 98 views
1

我需要批量處理消息,可以說是10.在10個事務(或者一些超時已過)之後,將對所有10個事務進行單次提交,並且如果有發生了異常,所有十條消息將被回滾並重新發送。使用MDP在單個事務中接收多個JMS消息

我們的應用程序運行在Weblogic 11g上,我知道這個功能使用weblogic MDBs(批量jms消息http://docs.oracle.com/cd/E13222_01/wls/docs90/bridge/tuning.html)。

我們在應用程序中嚴重依賴spring,並且由於各種原因寧願不使用任何EJB。有沒有一種方法可以使用彈簧MDP來實現這一點?或者那裏有一個工具呢?

回答

0

這不是一個巨大的事情來實現自己。我其實昨天做到了(雖然在C#中它仍然是對JMS)

因此,雖然我不能爲您提供一個直接的答案,我可以告訴你我已經實現了同樣的要求

的有一個問題我的經驗碰到的是,我在一個隊列中運行多個消費者(每個隊列都提供了批處理),隊列中的預取意味着我的JMS代理正在向我的消費者傳遞消息的機器人

這是完全可以接受的行爲,反對批量的想法。我最終在消費者身上滾動了我自己的同步機制,以協調誰正在消費,更重要的是將預取權轉移。

+0

我想要做的是擴展DefaultMessageListenerContainer並重寫receiveAndExecute(),這是spring處理事務的地方。我寧願使用內置的spring函數,但它可能不存在。謝謝回覆 – 2012-03-21 15:24:26

相關問題