IBM Mq Spring JMS 的xml配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:jms="http://www.springframework.org/schema/jms"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/jms
http://www.springframework.org/schema/jms/spring-jms-3.2.xsd">
<!-- WebSphere MQ Connection Factory -->
<bean id="targetConnectionFactory" class="com.ibm.mq.jms.MQQueueConnectionFactory">
<property name="hostName">
<value>${esbmon.mq.hostname}</value>
</property>
<property name="port">
<value>${esbmon.mq.port}</value>
</property>
<property name="queueManager">
<value>${esbmon.mq.queueManagerName}</value>
</property>
<property name="channel">
<value>${esbmon.mq.channel}</value>
</property>
<!-- com.ibm.mq.jms.JMSC.MQJMS_TP_CLIENT_MQ_TCPIP=1 -->
<property name="transportType" value="1" />
</bean>
<!-- Spring用于管理真正的ConnectionFactory的ConnectionFactory;
MessageListenerContainer已经建立缓存机制,这里直接使用SingleConnectionFactory而不是
CachingConnectionFactory
-->
<bean id="connectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory">
<!-- 目标ConnectionFactory对应真实的可以产生JMS Connection的ConnectionFactory -->
<property name="targetConnectionFactory" ref="targetConnectionFactory"/>
<!-- 使用SingleConnectionFactory时,开启reconnectOnException很重要 -->
<property name="reconnectOnException" value="true"></property>
</bean>
<!-- JMS Destination Resolver -->
<bean id="jmsDestinationResolver"
class="org.springframework.jms.support.destination.DynamicDestinationResolver">
</bean>
<!-- 事务管理器,将messageListener的onMessage方法作为一个事务 -->
<bean id="jmsTransactionManager"
class="org.springframework.jms.connection.JmsTransactionManager">
<property name="connectionFactory" ref="connectionFactory" />
</bean>
<!-- 配置成 jta事物,是消息接受事物和数据库操作事物失败都能回滚-->
<bean id="jtaTransactionManager"
class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="connectionFactory" ref="connectionFactory" />
<property name="sessionTransacted" value="true" />
</bean>
<!-- 任务处理线程池 -->
<bean id="jmsListenerTaskExecutor"
class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize">
<value>${esbmon.jmsListenerExecutor.corePoolSize}</value>
</property>
<property name="maxPoolSize">
<value>${esbmon.jmsListenerExecutor.maxPoolSize}</value>
</property>
<property name="keepAliveSeconds">
<value>${esbmon.jmsListenerExecutor.keepAliveSeconds}</value>
</property>
<property name="queueCapacity">
<value>${esbmon.jmsListenerExecutor.queueCapacity}</value>
</property>
<property name="rejectedExecutionHandler">
<bean class="${esbmon.jmsListenerExecutor.handler}" />
</property>
<property name="threadNamePrefix" value="jmsListenerTaskExecutor" />
</bean>
<!-- jms listenercontainer用于异步接受消息,JmsTemplate类用来生产消息和同步接收消息 -->
<!-- container-type:容器的类型, default、simple、default102 或者 simple102 -->
<!-- connection-factory:JMS ConnectionFactory Bean的引用 -->
<!-- task-executor:JMS TaskExecutor Bean的引用 -->
<!-- destination-resolver:DestinationResolver 策略的引用 -->
<!-- message-converter:MessageConverter 策略的引用用 -->
<!-- destination-type:目的地类型,queue、topic 或者 durableTopic -->
<!-- client-id:容器在JMS客户端的id -->
<!-- acknowledge: JMS消息的确认模式,auto、client、dups-ok 或者 transacted -->
<!-- transaction-manager:PlatformTransactionManager Bean的引用 -->
<!-- concurrency:可激活的Session最大并发数 -->
<!-- prefetch:加载进每个Session的最大消息数,增加这个值会造成并发空闲 -->
<!-- receive-timeout:每次接收消息的超时时间 -->
<!-- cache:缓存级别 -->
<jms:listener-container container-type="default"
connection-factory="jtaTransactionManager" destination-type="queue"
transaction-manager="jmsTransactionManager" task-executor="jmsListenerTaskExecutor"
destination-resolver="jmsDestinationResolver" concurrency="30" prefetch="100"
receive-timeout="3000" acknowledge="transacted">
<!-- id: 容器的Bean名称 -->
<!-- destination: 目的地的名称,由DestinationResolver的策略决定 -->
<!-- ref: 处理对象的Bean名称 -->
<!-- method: 处理器中被调用的方法名, 如果ref指向 MessageListener或SessionAwareMessageListener,则这个属性可以被忽略 -->
<!-- selector: 可选的消息选择器 -->
<jms:listener id="svcLogListener" destination="${esbmon.mq.queueName.serviceLog}"
ref="svcLogJmsListener" />
<jms:listener id="sysLogListener" destination="${esbmon.mq.queueName.systemLog}"
ref="sysLogJmsListener" />
<jms:listener id="MqLogListener" destination="${esbmon.mq.queueName.mqSvcLog}"
ref="pubSubLogJmsListener" />
</jms:listener-container>
</beans>
IBM Mq Spring JMS 的xml配置的更多相关文章
- Spring 入门 web.xml配置详解
Spring 入门 web.xml配置详解 https://www.cnblogs.com/cczz_11/p/4363314.html https://blog.csdn.net/hellolove ...
- spring之pom.xml配置
spring之pom.xml配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns= ...
- 这一次搞懂Spring Web零xml配置原理以及父子容器关系
前言 在使用Spring和SpringMVC的老版本进行开发时,我们需要配置很多的xml文件,非常的繁琐,总是让用户自行选择配置也是非常不好的.基于约定大于配置的规定,Spring提供了很多注解帮助我 ...
- Spring IOC-基于XML配置的容器
Spring IOC-基于XML配置的容器 我们先分析一下AbstractXmlApplicationContext这个容器的加载过程. AbstractXmlApplicationContext的老 ...
- Spring Ioc容器xml配置
Spring Ioc容器xml配置基本结构: <?xml version="1.0" encoding="UTF-8"?> <beans xm ...
- IBM MQ消息中间件jms消息中RHF2消息头的处理
公司的技术平台在和某券商对接IBM MQ消息中间件时,发送到MQ中的消息多出了消息头信息:RHF2,造成消息的接收处理不正常.在此记录此问题的处理方式. 在IBM MQ中提供了一个参数 targetC ...
- Spring 使用AOP——xml配置
目录 AOP介绍 Spring进行2种实现AOP的方式 导入jar包 基于schema-based方式实现AOP 创建前置通知 创建后置通知 修改Spring配置文件 基于schema-based方式 ...
- Spring RedisTemplate操作-xml配置(1)
网上没能找到全的spring redistemplate操作例子,故特意化了点时间做了接口调用练习,基本包含了所有redistemplate方法. 该操作例子是个系列,该片为spring xml配置, ...
- 关于Spring中applicationContext.xml配置错误“org/springframework/transaction/interceptor/TransactionInterceptor”的问题解决
问题描述: 在配置spring的applicationContext.xml中的默认事务管理器的时候可能会出现这样的错误: Error occured processing XML 'org/spri ...
随机推荐
- 【原创】对Java的synchronized关键字的学习
在Java中,每一个线程都有一个内部锁.当我们使用synchronized关键字时,就是利用这个内部锁来实现线程对某个对象的锁定控制. 那么,如果某个对象中有两个方法,方法一和方法二都使用了synch ...
- 模仿快递路线图的html, css 样式
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- Oracle查询和解锁表
一些ORACLE中的进程被杀掉后,状态被置为"killed",但是锁定的资源很长时间不释放,有时实在没办法,只好重启数据库.现在提供一种方法解决这种问题,那就是在ORACLE中杀不 ...
- CSU 1639 队长,我想进集训队!
水题 #include<cstdio> int main() { int x1, x2, x3, u, h; int n; while (~scanf("%d", &a ...
- Inverse属性和cascade属性以及集合的多对多关系
Inverse属性 Inverse属性,是在维护关联关系的时候起作用的. 表示控制权是否转移.(在一的一方起作用) Inverse = true, 控制反转. Inverse = false 不反转 ...
- RabbitMQ持久化编码注意事项
以Java语言,MQ客户端为amqp-client作为示例 1.基本原则 direct模式,由生产者声明队列名,消费者也声明队列名 topic模式,由生产者声明交换器名,由消费者声明队列名+交换器名+ ...
- 为什么使用 SLF4J 而不是 Log4J 来做 Java 日志
转自:为什么使用 SLF4J 而不是 Log4J 来做 Java 日志 英文原文:Why use SLF4J over Log4J for logging in Java 每个Java开发人员都知道日 ...
- CSS3秘笈复习:第八章
一.背景的所有属性: 属性 作用 可选项 1.background-image 定义一张图片 url(...) 2.background-repeat 控制重复 no-repeat | repeat- ...
- 屏幕居中(DIV/CSS) 的几种方法(转)
1.利用table特性,在width and height all set 100%的时候,可以把容器嵌套在td内形成绝对居中,此时的被嵌套容器可为绝对或者相对大小.(非标准)注意不能加声明! 如是在 ...
- jQuery 属性操作 - attr() 方法
定义和用法 attr() 方法设置或返回被选元素的属性值. 根据该方法不同的参数,其工作方式也有所差异. 实例1 设置被选元素的属性和值. <html><head><sc ...