activeMQ 自动重连机制

在使用activeMQ的时候(没有集成spring),发现当broker挂掉或者重启的时候,consumer就会断开,不会在次尝试去接受消息,java

(使用spring集成activeMQ)会解决这个问题.spring

若是说你不想使用spring,那么接下来告诉你该怎么办.apache

在apache官网上有介绍自动重连机制.tcp

connectionFactory = new ActiveMQConnectionFactory(
		ActiveMQConnection.DEFAULT_USER,
		ActiveMQConnection.DEFAULT_USER,
		"failover:(tcp://host:61616)?initialReconnectDelay=1000&maxReconnectDelay=30000");

加入failover参数.(测试

failover:(tcp:url...)url 能够为多个 
)
url

当时我在环境中测试的时候,会出现一个状况,就是当broker挂掉的时候,consumer会断开程序
根据
http://blog.csdn.net/kimmking/article/details/8447517
这篇文章所讲是须要修改activeMQ-core.5.x.jar 中的
FailoverTransport.java
.net

reconnectTaskFactory = new TaskRunnerFactory();
        System.out.println("init-setDaemon-false");
        reconnectTaskFactory.setDaemon(false);/**设置为false*/
        reconnectTaskFactory.init();
######## 修改方法: 把source.jar中的FailoverTransport.java 拉到项目的src下(保证包名一致,引入相关依赖) 修改-编译-启动 这时候程序就会去加载src下面FailoverTransport.java  而不会去jar包中搜索该类