博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JBoss 系列八十七: JBoss 中 JMS 消息设定 TimeToLive 的一个误解
阅读量:6220 次
发布时间:2019-06-21

本文共 1142 字,大约阅读时间需要 3 分钟。

hot3.png

概述

我们在启动JBoss后通常使用如下代码设定消息的TimeToLive

javax.jms.MessageProducer;MessageProducer msgProducer = null;session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);msgProducer = session.createProducer(responseQ);msgProducer.setTimeToLive(Long.valueOf(messageTtl));
但发现消息超过设定的 messageTtl 时间后仍然在消息队列中,所以有人误解为JBoss 中 对 JMS 消息设定 TimeToLive 没有实现。

原因

误解的本身是对JMS标准没有理解准确,TimeToLive意思是当消息队列上有消费者,且消息超过TimeToLive时间没有被消费者消费,则消息被移除,JBoss被异常到ExpirationQueue。如下摘自:

The setTimeToLive() can be used to expire a JMS message. However, the messages would remain on the given destination beyond the time set to expire, if there are no message listeners.  The messages sent to any destination with having setTimeToLive() attribute may not expire unless there's a message listener attached to given destination. The messages marked to expire are validated and sent to the ExpiryQueue, at the time of processing by the attached message listener. IOW the messages which remain on the destination beyond the expiry limit, would expire (moved to the ExpiryQueue) by the time a listener is attached to the given destination.

转载于:https://my.oschina.net/iwuyang/blog/197176

你可能感兴趣的文章
怎样招聘出色的产品经理zz
查看>>
PowerShell应用之-可更新订阅的事务复制
查看>>
让代码飞一会儿:快速编写 HTML 和 CSS 的工具和技术
查看>>
C# 委托系列(二)将方法绑定到委托
查看>>
nfs 网络共享
查看>>
物理地址 虚拟地址 逻辑地址 线性地址
查看>>
《WCF技术剖析(卷2)》目录
查看>>
这就是搜索引擎:核心技术详解
查看>>
第二节 9对像的引用2
查看>>
VBS错误代码释义
查看>>
小故事大道理
查看>>
perl 语言学习——从C/C++到perl
查看>>
Prevent saving changes that require table re-creation
查看>>
利用CSS使footer固定在页面底部
查看>>
Linux scp 两台服务器传输文件
查看>>
js 获取当前月的第一天和最后一天
查看>>
【转】iPhone/Mac Objective-C内存管理教程和原理剖析
查看>>
MySQL入门(三)
查看>>
网页采集中文乱码问题
查看>>
FileObverse文件观察者的Debug报告
查看>>