因群里的网友发现DurableTopicSubscription的NoLocal问题,具体问题描述请参考https://issues.apache.org/activemq/browse/AMQ-2561。基于我现在时间的原因,我把问题原因和解决方案做一简单方法,希望对碰到同样问题的朋友有所帮助。
原因分析:
activeMQ处理DurableTopicSubscription的过程大致如下:
问题就在当某个DurableTopicSubscription第一次是正常的,但之后再重新启动时,activeMQ找到对应的subscription并激活它,但是忘了刷新它的selectorExpression,这就导致网友提出的那个bug。
解决方法:
1.修改AbstractSubscription类的private static BooleanExpression parseSelector(ConsumerInfo info) throws InvalidSelectorException方法为protected或public
2.AbstractSubscription类新增一个方法public void setSelectorExpression(BooleanExpression selectorExpression)
{
this.selectorExpression = selectorExpression;
}
3.修改DurableTopicSubscription类的public void activate(SystemUsage memoryManager, ConnectionContext context, ConsumerInfo info) throws Exception方法,
新增一行setSelectorExpression(parseSelector(info));
很久没写文章了,希望对大家能有所帮助,欢迎更多的人参与activeMQ的使用和源码分析中来,毕竟activeMQ是值得我们研究的。
- 大小: 41.9 KB
分享到:
相关推荐
在“activemq_activemq_doublezoo_源码”这个主题中,我们主要关注两个关键概念:ActiveMQ的生产者和消费者API,以及ActiveMQ与Spring框架的整合。 1. **ActiveMQ生产者API**: 生产者是向消息队列发布消息的组件...
ActiveMQ是Apache软件基金会的一个开源项目,它是Java消息服务(JMS)的一个实现,广泛应用于企业级应用中。而Spring框架,作为一个Java平台的全功能模块化解决方案,提供了与ActiveMQ集成的能力,让开发者能够轻松...
ActiveMQ是Apache软件基金会旗下的一个开源消息中间件,它实现了Java消息服务(JMS)规范,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。JMS规范定义了一套API,用于在两个应用程序之间或者...
标签:activemq-jmdns_1.0-5.4.0-sources.jar,activemq,jmdns_1.0,5.4.0,sources,jar包下载,依赖包
《ActiveMQ与Spring整合实战教程》 在Java企业级应用中,消息中间件扮演着至关重要的角色,它能够实现应用间的解耦,提高系统的可扩展性和可靠性。ActiveMQ作为Apache基金会的一个开源项目,是Java消息服务(JMS)...
标签:activemq-jmdns_1.0-5.4.0-javadoc.jar,activemq,jmdns_1.0,5.4.0,javadoc,jar包下载,依赖包
标题中的"activemq-jmdns_1.0-4.1.2.jar.zip"是一个压缩文件,其中包含了两个主要元素:activemq-jmdns_1.0-4.1.2.jar 和 license.txt。这个文件主要是针对Apache ActiveMQ项目的一个特定组件,即JMDNS(Java ...
同时,测试报告可能会对比分析不同消息队列在特定场景下的优缺点,为选择适合的队列服务提供参考。 总的来说,了解和掌握这些消息队列的使用和性能测试对于优化分布式系统的架构、提高系统效率和稳定性具有重要意义...
《ActiveMQ-CPP库3.6.0源码解析与C#应用实践》 ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它基于开放标准的JMS(Java消息服务)协议,支持多种语言,包括C++。在本文中,我们将深入探讨ActiveMQ-CPP库...
标签:activemq-jmdns_1.0-4.1.2.jar,activemq,jmdns_1.0,4.1.2,jar包下载,依赖包
标签:activemq-jmdns_1.0-5.5.1.jar,activemq,jmdns_1.0,5.5.1,jar包下载,依赖包
标签:activemq-jmdns_1.0-5.4.0.jar,activemq,jmdns_1.0,5.4.0,jar包下载,依赖包
标签:activemq-jmdns_1.0-5.3.2.jar,activemq,jmdns_1.0,5.3.2,jar包下载,依赖包
标签:activemq-jmdns_1.0-5.4.1.jar,activemq,jmdns_1.0,5.4.1,jar包下载,依赖包
标签:activemq-jmdns_1.0-5.4.3.jar,activemq,jmdns_1.0,5.4.3,jar包下载,依赖包
标签:activemq-jmdns_1.0-5.6.0.jar,activemq,jmdns_1.0,5.6.0,jar包下载,依赖包
标签:activemq-jmdns_1.0-5.4.2.jar,activemq,jmdns_1.0,5.4.2,jar包下载,依赖包
标签:activemq-jmdns_1.0-5.3.1.jar,activemq,jmdns_1.0,5.3.1,jar包下载,依赖包