Spring 与 IBM MQ 系列集成
Spring Integration with IBM MQ Series
我是 Spring 集成方面的新手,因此对此有一些疑问。
我正在尝试将 Spring 与 MQ 系列集成,并相信我所有的 IBM MQ(Q 连接工厂和队列)条目都应该放在我的 applicationcontext.xml 文件中。
我有 ActiveMQ 实施的应用程序上下文文件,只是想知道 App Contest 文件中特定于 IBM MQ 的条目到底是什么样子。问题是 -
- 我是否需要在我安装的同一台机器上安装 MQ 系列
我是 运行 我的 Spring 申请。
- 我想不是,那么 QueueConnectionFactory 和 Destination 属性的条目应该是什么
在 ApplicationContext 文件中。
提供一些样本 poc 会对我有很大帮助。
提前致谢。
您可以像这样创建 bean
jms.transportType=1
jms.queueManager=YOUR_QUEUE_MANAGER
jms.hostName=YOUR_HOSTNAME
jms.port=1321
jms.channel=YOUR_CHANNEL
jms.receiver.queue.name=YOUR_QUEUE
jms.username=
jms.alias=
jms.mq.connection.factory=jmsConnectionFactory
jms.mq.receiver.queue=receiverQueue
<bean id="jmsConnectionFactory" class="com.ibm.mq.jms.MQQueueConnectionFactory">
<property name="transportType" value="${jms.transportType}"/>
<property name="queueManager" value="${jms.queueManager}"/>
<property name="hostName" value="${jms.hostName}"/>
<property name="port" value="${jms.port}" />
<property name="channel" value="${jms.channel}"/>
</bean>
<bean id="secureJmsConnectionAdapter" class="yourpackages.SecureJMSConnectionAdapter">
<property name="targetConnectionFactory" ref="${jms.mq.connection.factory}" />
<property name="userName" value="${jms.username}"/>
<property name="pwdAlias" value="${jms.alias}"/>
</bean>
<bean id="receiverQueue" class="com.ibm.mq.jms.MQQueue">
<constructor-arg index="0" value="${jms.queueManager}"/>
<constructor-arg index="1" value="${jms.receiver.queue.name}"/>
</bean>
<bean id="receiverJMSTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="secureJmsConnectionAdapter" />
<property name="pubSubDomain" value="false"/>
<property name="defaultDestination" ref="${jms.mq.receiver.queue}"/>
<property name="receiveTimeout" value="30000"/>
</bean>
<bean class="org.springframework.jms.listener.SimpleMessageListenerContainer">
<property name="connectionFactory" ref="secureJmsConnectionAdapter" />
<property name="destinationName" value="${jms.receiver.queue.name}" />
<property name="messageListener" ref="mQListener" />
</bean>
我是 Spring 集成方面的新手,因此对此有一些疑问。 我正在尝试将 Spring 与 MQ 系列集成,并相信我所有的 IBM MQ(Q 连接工厂和队列)条目都应该放在我的 applicationcontext.xml 文件中。 我有 ActiveMQ 实施的应用程序上下文文件,只是想知道 App Contest 文件中特定于 IBM MQ 的条目到底是什么样子。问题是 -
- 我是否需要在我安装的同一台机器上安装 MQ 系列
我是 运行 我的 Spring 申请。
- 我想不是,那么 QueueConnectionFactory 和 Destination 属性的条目应该是什么 在 ApplicationContext 文件中。 提供一些样本 poc 会对我有很大帮助。
提前致谢。
您可以像这样创建 bean
jms.transportType=1 jms.queueManager=YOUR_QUEUE_MANAGER jms.hostName=YOUR_HOSTNAME jms.port=1321 jms.channel=YOUR_CHANNEL jms.receiver.queue.name=YOUR_QUEUE jms.username= jms.alias= jms.mq.connection.factory=jmsConnectionFactory jms.mq.receiver.queue=receiverQueue
<bean id="jmsConnectionFactory" class="com.ibm.mq.jms.MQQueueConnectionFactory">
<property name="transportType" value="${jms.transportType}"/>
<property name="queueManager" value="${jms.queueManager}"/>
<property name="hostName" value="${jms.hostName}"/>
<property name="port" value="${jms.port}" />
<property name="channel" value="${jms.channel}"/>
</bean>
<bean id="secureJmsConnectionAdapter" class="yourpackages.SecureJMSConnectionAdapter">
<property name="targetConnectionFactory" ref="${jms.mq.connection.factory}" />
<property name="userName" value="${jms.username}"/>
<property name="pwdAlias" value="${jms.alias}"/>
</bean>
<bean id="receiverQueue" class="com.ibm.mq.jms.MQQueue">
<constructor-arg index="0" value="${jms.queueManager}"/>
<constructor-arg index="1" value="${jms.receiver.queue.name}"/>
</bean>
<bean id="receiverJMSTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="secureJmsConnectionAdapter" />
<property name="pubSubDomain" value="false"/>
<property name="defaultDestination" ref="${jms.mq.receiver.queue}"/>
<property name="receiveTimeout" value="30000"/>
</bean>
<bean class="org.springframework.jms.listener.SimpleMessageListenerContainer">
<property name="connectionFactory" ref="secureJmsConnectionAdapter" />
<property name="destinationName" value="${jms.receiver.queue.name}" />
<property name="messageListener" ref="mQListener" />
</bean>