摘要:最近在研究的消息確認機制,在與整合時遇到的了一個問題。這時只需要把的值設置成自定義的類型即可。
最近在研究activemq的ack消息確認機制,在activemq與spring整合時遇到的了一個問題。
JMS規范的ack消息確認機制有一下四種,定于在session對象中:
AUTO_ACKNOWLEDGE = 1 :自動確認
CLIENT_ACKNOWLEDGE = 2:客戶端手動確認
DUPS_OK_ACKNOWLEDGE = 3: 自動批量確認
SESSION_TRANSACTED = 0:事務提交并確認
但是在activemq補充了一個自定義的ACK模式:
INDIVIDUAL_ACKNOWLEDGE = 4:單條消息確認
如果想設置ack消息確認機制為客戶端手動確認,在spring總配置消費者監聽器的時候,設置sessionAcknowledgeMode的值為2,代碼如下:
但這樣設置是無效的,請看spring類org.springframework.jms.listener.AbstractMessageListenerContainer的一段源碼:
protected void commitIfNecessary(Session session, Message message) throws JMSException { // Commit session or acknowledge message. if (session.getTransacted()) { // Commit necessary - but avoid commit call within a JTA transaction. if (isSessionLocallyTransacted(session)) { // Transacted session created by this container -> commit. JmsUtils.commitIfNecessary(session); } } else if (message != null && isClientAcknowledge(session)) { message.acknowledge(); } }
protected boolean isClientAcknowledge(Session session) throws JMSException { return (session.getAcknowledgeMode() == Session.CLIENT_ACKNOWLEDGE); }
就是當設置sessionAcknowledgeMode為2時,雖然是客戶端手動確認,但是卻被spring自動確認了,造成設置無效。這時只需要把sessionAcknowledgeMode的值設置成activemq自定義的類型INDIVIDUAL_ACKNOWLEDGE = 4即可。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/66802.html
摘要:消費者,監聽生產者往指定目的地發送消息后,接下來就是消費者對指定目的地的消息進行消費了。它不會動態的適應運行時需要和參與外部的事務管理。它很好的平衡了對提供者要求低先進功能如事務參與和兼容環境。 深入淺出 JMS(七) - ActiveMQ 與 Spring 整合 一、與spring整合實現ptp的同步接收消息 (1)config.properties ## ActiveMQ Conf...
摘要:安裝到官方網站下載最新的的安裝包,并解壓到本地目錄下,下載鏈接如下。修改消費者使用配置消費者監聽的隊列,其中是接收到的消息收到的報文為接收到的消息重新執行 安裝ActiveMQ 到Apache官方網站下載最新的ActiveMQ的安裝包,并解壓到本地目錄下,下載鏈接如下:http://activemq.apache.org/do...。showImg(https://segmentfau...
摘要:學習消息隊列的使用之前,我們先來搞清。是操作消息的接口。消息生產者由創建,并用于將消息發送到。接收消息打印結果這是接收到的消息消費者啟動。。。。 通過上一篇文章 《消息隊列深入解析》,我們已經消息隊列是什么、使用消息隊列的好處以及常見消息隊列的簡單介紹。 這一篇文章,主要帶大家詳細了解一下消息隊列ActiveMQ的使用。 學習消息隊列ActiveMQ的使用之前,我們先來搞清JMS。 J...
摘要:還自動配置發送和接收消息所需的基礎設施。支持是一個輕量級的可靠的可伸縮的可移植的消息代理,基于協議,使用通過協議進行通信。 32. 消息傳遞 Spring框架為與消息傳遞系統集成提供了廣泛的支持,從使用JmsTemplate簡化的JMS API到使用完整的基礎設施異步接收消息,Spring AMQP為高級消息隊列協議提供了類似的特性集。Spring Boot還為RabbitTempla...
摘要:時間年月日星期六說明本文部分內容均來自慕課網。這個時候,可以啟動多臺積分系統,來同時消費這個消息中間件里面的登錄消息,達到橫向擴展的作用。 時間:2017年07月22日星期六說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com教學源碼:無學習源碼:https://github.com/zccodere/s... 第一章:課程介紹 1-1 課程安排 Java...
閱讀 1917·2021-11-23 09:51
閱讀 1246·2019-08-30 15:55
閱讀 1613·2019-08-30 15:44
閱讀 759·2019-08-30 14:11
閱讀 1146·2019-08-30 14:10
閱讀 916·2019-08-30 13:52
閱讀 2630·2019-08-30 12:50
閱讀 615·2019-08-29 15:04