本文介紹了如果使用消息后出現(xiàn)錯誤,如何將消息保存在JMS消息隊列中?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我的場景是-我將消息發(fā)布到隊列中,一旦消息被使用,我就將其發(fā)送到第三方中間件應(yīng)用程序。如果中間件應(yīng)用程序關(guān)閉,那么我發(fā)布的消息就會被丟棄。如果中間件應(yīng)用程序關(guān)閉,我不想丟失該消息,相反,我希望它處于等待狀態(tài)或在隊列中等待。請建議如何處理此場景?
推薦答案
您應(yīng)該這樣創(chuàng)建會話:
Session session = connection.createSession(false,
Session.CLIENT_ACKNOWLEDGE);
當您嘗試將郵件傳遞到第三方應(yīng)用時:
如果它工作正常,您應(yīng)該刪除該郵件。
如果它已關(guān)閉,您不應(yīng)該對其進行備份,這樣JMS提供程序?qū)⒛軌驅(qū)ζ溥M行重新編輯,并且消息不會丟失。message.acknowledge();
另外,您還可以查看以下內(nèi)容:JMS AUTO_ACKNOWLEDGE when is it acknowledged?
這篇關(guān)于如果使用消息后出現(xiàn)錯誤,如何將消息保存在JMS消息隊列中?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,