`

Active MQ技术文章 -- Active Mq连接池重连

    博客分类:
  • MQ
 
阅读更多

现象

    Active Mq 客户端连接Active Mq服务端时,如果因为服务器重启等原因导致Mq客户端无法发送Mq消息

原因

   Mq客户端的连接和服务端已经断开,但是客户端没有进行重连

解决方法

   Mq断开连接后,可以自动重连

 

 

main.properties

 

main.openmq.sName=330103000000800536
main.openmq.sPwd=123456
main.openmq.sIp=10.30.4.89
main.openmq.sPort=57666
 

spring+Active的配置:

 

 
<beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:aop="http://www.springframework.org/schema/aop"
     xmlns:tx="http://www.springframework.org/schema/tx"
     xmlns:context="http://www.springframework.org/schema/context"
     xsi:schemaLocation="
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
     
 
  	<context:annotation-config />
  	<context:component-scan base-package="
  		com.dahuazwan.ihds.mq.productor
  	" />
  	<!-- enable transaction demarcation with annotations -->
  	<tx:annotation-driven /> 
   
 	<!-- OpenMq -->
    <bean id = "connectionFactory" class = "org.apache.activemq.ActiveMQConnectionFactory">  
    	<property name="brokerURL" value="tcp://${main.openmq.sIp}:${main.openmq.sPort}" />
 		<property name="userName" value="${main.openmq.sName}" />
    	<property name="password" value="${main.openmq.sPwd}" />
	</bean>  
	
	<!-- 采用TCP长连接方式, 避免每次建立短连接需要的额外工作时间 -->
    <bean id="pooledConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
        <constructor-arg ref="connectionFactory"></constructor-arg>
    </bean>

	<!-- jms Template -->
	<bean id="innerJmsTemplate"
        class="org.springframework.jms.core.JmsTemplate" >
        <property name="connectionFactory" >
        	<bean class="org.springframework.jms.connection.SingleConnectionFactory">
                <property name="targetConnectionFactory" ref="pooledConnectionFactory" />
                <property name="reconnectOnException" value="true"/>
            </bean>
        </property>
        <property name="timeToLive" value="1000000"/>
        <property name="receiveTimeout" value="222222" />
    </bean>
 
    <!-- Sms Destination -->
    <bean id="smsDestination" class="org.apache.activemq.command.ActiveMQTopic">       
        <constructor-arg index="0" value="zw.public.all.sms"/>       
    </bean>

</beans> 

 里面的关键代码段是:

 

<property name="connectionFactory" >
        	<bean class="org.springframework.jms.connection.SingleConnectionFactory">
                <property name="targetConnectionFactory" ref="pooledConnectionFactory" />
                <property name="reconnectOnException" value="true"/>
            </bean>
        </property>

 如果设置reconnectOnException=true,则Jms连接发生异常时,重新向服务端发起连接,默认是false

 

 

 

参考文献

Spring JMS (3)

 

 

分享到:
评论

相关推荐

    Apache Active MQ 简单的示例

    首先,我们需要配置JMS连接工厂,创建一个到Active MQ服务器的连接,然后创建会话和目的地(队列或主题),最后创建生产者和消费者。生产者用于发送消息,而消费者用于接收消息。这个示例可能涵盖了Active MQ的基本...

    Active MQ in action 教程

    《Active MQ in action 教程》不仅是一本理论书籍,更是一本实践指南,适合所有对ActiveMQ感兴趣并希望深入了解其技术细节的开发者阅读。通过本书的学习,读者将能够掌握ActiveMQ的核心功能,了解如何在实际项目中...

    ActivePerl-5.14.2-x86

    标题“ActivePerl-5.14.2-x86”指的是一个特定版本的Perl解释器,ActivePerl,针对32位(x86)架构的Windows操作系统。ActivePerl是由ActiveState公司开发的一个流行的Perl发行版,它为Windows、Mac OS X和Linux提供...

    active-mq-5.11.1

    标题"active-mq-5.11.1"指的是该版本的ActiveMQ,这是一个稳定且广泛使用的版本。 ActiveMQ作为中间件,其主要功能是提供消息传递服务,它允许应用程序之间通过发送和接收消息进行通信,而不是直接调用彼此。这种...

    ActivePerl-----Openssl安装所需依赖.rar

    标题中的"ActivePerl-----Openssl安装所需依赖.rar"指出,这个压缩包文件包含了在Windows环境中安装ActivePerl时,OpenSSL库所需的依赖项。这通常意味着,为了在Windows系统上使用带有OpenSSL支持的Perl解释器,你...

    ActivePerl-20716001-5.16.3.1604-MSWin32-x64.msi

    QT开发必不可少,使用GRPC通讯测试时基本都必须的插件,WIN7-X64可用,最新perl,ActivePerl,win7x64可用的,grpc

    NoActive墓碑 v1.7-Alpha-Xposed模块.zip

    "NoActive墓碑 v1.7-Alpha-Xposed模块.zip" 这个标题揭示了我们正在处理一个特定版本的软件模块,名为"NoActive墓碑",其版本号为v1.7-Alpha。这个软件是设计用于Xposed框架的一个插件或模块。Xposed框架是一个在...

    Jfinal -active mq

    Jfinal -active mq: 消费:extends JFinalQueueConsumer 生产:JFinalQueue.sendMessage(queueName, message);

    active4j-active4j-flow-master_sail2y7_分布式_工作流程管理系统_active4j-flow

    Active4j-flow是基于SpingBoot2.0与activiti7.x开发的一套工作流程管理系统。是以active4j-jsp为项目基础架构构建而成。以Spring Framework为核心容器,Spring MVC为模型视图控制器,Mybatis Plus为数据访问层, ...

    active_mq_mvc源码

    在本项目"active_mq_mvc源码"中,我们主要关注的是如何在MVC(Model-View-Controller)架构中有效地集成ActiveMQ,一个流行的Java消息代理和消息中间件。源码分析将揭示设计思想、设计模式以及如何巧妙地运用反射...

    ActivePerl-5.28.1.0000-MSWin32-win10x64-65ffd8c2

    ActivePerl-5.28.1 win10 x64离线安装包(官方),可避免从官网下载速度慢的问题。 ActivePerl-5.28.1 win10 x64离线安装包(官方),可避免从官网下载速度慢的问题。 ActivePerl-5.28.1 win10 x64离线安装包(官方...

    Active-ORB-SLAM2-master.rar

    主动ORB-SLAM2(Active-ORB-SLAM2)是一种增强版的视觉SLAM(Simultaneous Localization and Mapping)系统,它在经典的ORB-SLAM2基础上加入了主动决策策略,旨在提高定位精度和地图构建效率。ORB-SLAM2是由Vidal等...

    使用Druid数据连接池连接PostgreSQL简单例子

    spring.datasource.druid.max-active=20 ``` 3. **编写JDBC测试代码**:在`JDBCTest`类中,我们可以使用Spring Data JPA或者传统的JDBC API来执行数据库操作。例如,使用JdbcTemplate进行查询: ```java import org....

    apache-active-mq-5.6.0

    apache-activemq-5.6.0 绿色版,解压即可启动

    ActivePerl-5.28.1.0000-MSWin32-win10x64-65ffd8c2.rar

    ActivePerl是Perl编程语言在Windows平台上的一个流行版本,它为开发者提供了在Windows系统上编写、运行和管理Perl脚本的便利。标题中的"ActivePerl-5.28.1.0000-MSWin32-win10x64-65ffd8c2.rar"指的是该软件的特定...

    ActivePerl-5.24.3-MSwin32-x64

    官方最新版的perl编译工具,支持windows 64位操作系统。

    Active MQ C++实现通讯 X86 librariy

    Active MQ C++实现通讯 X86 librariy:CMS (stands for C++ Messaging Service)类似于JMS API用于同Message Brokers通讯(例如Active MQ)。 APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如...

    ActivePerl-5.26.1.2601-MSWin32-x64-404865.exe

    标题中的"ActivePerl-5.26.1.2601-MSWin32-x64-404865.exe"是一款专为Windows 64位系统设计的Perl解释器,由ActiveState公司开发。Perl是一种高级的、通用的、解释型、动态的编程语言,具有强大的文本处理能力,广泛...

    Delphi向MQ远程队列发送消息

    本篇文章将深入探讨如何使用古老的编程语言Delphi 7与IBM WebSphere MQ集成,实现向远程消息队列发送消息的功能。 首先,要进行这种开发工作,你需要确保已安装了IBM WebSphere MQ客户端库,因为Delphi程序需要依赖...

    ActivePerl-5.20.2-MVwin32

    标题 "ActivePerl-5.20.2-MVwin32" 指的是一个针对Windows 32位系统的ActivePerl版本,版本号为5.20.2。ActivePerl是Perl编程语言的一个预编译版本,专为提高在Windows环境下的易用性和性能而设计。Perl是一种功能...

Global site tag (gtag.js) - Google Analytics