zoukankan      html  css  js  c++  java
  • 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>

  • 相关阅读:
    PHP fread() 函数
    PHP fputs() 函数
    PHP fputcsv() 函数
    PHP fpassthru() 函数
    分区表基本类型
    C# const 和 readonly 有什么区别
    win2d 画出好看的图形
    win2d 画出好看的图形
    win2d 渐变颜色
    win2d 渐变颜色
  • 原文地址:https://www.cnblogs.com/yanduanduan/p/4530568.html
Copyright © 2011-2022 走看看