Apache camel 如何使用Camel从远程WMQ获取消息并将消息放置在ActiveMQ中?
我已经看了好几天了,但还没有成功 我已在服务器上安装并运行activeMQ。创建了一个名为“testUpdate”的队列。我在另一台服务器上还有另一个队列,我们称之为“转发”,这是在IBMMQ(WMQ)上 所以我们在ActiveMQ上有testUpdate,在WMQ上有forward。我希望转发队列上的消息被放入testUpdate队列。正在尝试将Camel用于此过程 所以ActiveMQ中的设置有一个XML(ActiveMQ.XML),我可以放置Springbeans并配置它来执行路由。在这个xml中,我向xmlns中添加了 import resource=“camel.xml” 在这个新的xml中,我有以下内容:Apache camel 如何使用Camel从远程WMQ获取消息并将消息放置在ActiveMQ中?,apache-camel,activemq,ibm-mq,Apache Camel,Activemq,Ibm Mq,我已经看了好几天了,但还没有成功 我已在服务器上安装并运行activeMQ。创建了一个名为“testUpdate”的队列。我在另一台服务器上还有另一个队列,我们称之为“转发”,这是在IBMMQ(WMQ)上 所以我们在ActiveMQ上有testUpdate,在WMQ上有forward。我希望转发队列上的消息被放入testUpdate队列。正在尝试将Camel用于此过程 所以ActiveMQ中的设置有一个XML(ActiveMQ.XML),我可以放置Springbeans并配置它来执行路由。在这个
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<route>
<description>Example Camel Route</description>
<from uri="mqseries:forward"/>
<to uri="activemq:testUpdate"/>
</route>
</camelContext>
<bean id="mqseries" class="com.ibm.mq.jms.MQQueueConnectionFactory">
<property name="transportType" value="1"/>
<property name="hostName" value="172.00.12.21/>
<property name="port" value="xyza"/>
<property name="queueManager" value="manager"/>
<property name="channel" value="srvcChannel"/>
</bean>
<!--
Lets configure some Camel endpoints
http://camel.apache.org/components.html
-->
<!-- configure the camel activemq component to use the current broker -->
<bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent" >
<property name="connectionFactory">
<bean class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="vm://amq-broker?create=false"/>
<property name="userName" value="${activemq.username}"/>
<property name="password" value="${activemq.password}"/>
</bean>
</property>
</bean>
</beans>
骆驼路线示例
您可以使用jms组件使用来自IBM MQ的消息,并使用activemq组件将其发布到activemq
看看下面的链接
谢谢,
Gibu您可以使用jms组件来使用来自IBM MQ的消息,并使用activemq组件将其发布到activemq
看看下面的链接
谢谢,
Gibu我定期使用IBM MQ和ActiveMQ。下面的示例将向您展示一些示例配置选项。请确保您将这些配置为您自己的用例
//ActiveMQ connection factory
<bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent" destroy-method="doStop">
<property name="configuration">
<bean class="org.apache.camel.component.jms.JmsConfiguration">
<property name="concurrentConsumers" value="1" />
<property name="maxConcurrentConsumers" value="1" />
<property name="acceptMessagesWhileStopping" value="true" />
<property name="acknowledgementModeName" value="CLIENT_ACKNOWLEDGE" />
<property name="cacheLevelName" value="CACHE_CONSUMER" />
<property name="connectionFactory">
<bean class="org.apache.activemq.pool.PooledConnectionFactory" init-method="start" destroy-method="stop">
<property name="maxConnections" value="1" />
<property name="MaximumActiveSessionPerConnection" value="500" />
<property name="connectionFactory">
<bean class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="${activemq1.brokerUrl}" />
<property name="userName" value="${activemq1.username}" />
<property name="password" value="${activemq1.password}" />
<property name="redeliveryPolicy">
<bean class="org.apache.activemq.RedeliveryPolicy">
<property name="maximumRedeliveries" value="-1" />
</bean>
</property>
</bean>
</property>
</bean>
</property>
</bean>
</property>
</bean>
//IBM MQ connection factory
<bean id="ibmmq" class="org.apache.camel.component.jms.JmsComponent" destroy-method="doStop">
<property name="concurrentConsumers" value="1" />
<property name="maxConcurrentConsumers" value="1" />
<property name="connectionFactory">
<bean class="org.springframework.jms.connection.SingleConnectionFactory" destroy-method="destroy">
<constructor-arg>
<bean class="com.ibm.mq.jms.MQQueueConnectionFactory">
<property name="transportType" value="1" />
<property name="channel" value="${channel}" />
<property name="hostName" value="${hostname}" />
<property name="port" value="${port}" />
<property name="queueManager" value="${queueManager}" />
</bean>
</constructor-arg>
</bean>
</property>
</bean>
//ActiveMQ连接工厂
//IBM MQ连接工厂
我定期使用IBM MQ和ActiveMQ。下面的示例将向您展示一些示例配置选项。请确保您将这些配置为您自己的用例
//ActiveMQ connection factory
<bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent" destroy-method="doStop">
<property name="configuration">
<bean class="org.apache.camel.component.jms.JmsConfiguration">
<property name="concurrentConsumers" value="1" />
<property name="maxConcurrentConsumers" value="1" />
<property name="acceptMessagesWhileStopping" value="true" />
<property name="acknowledgementModeName" value="CLIENT_ACKNOWLEDGE" />
<property name="cacheLevelName" value="CACHE_CONSUMER" />
<property name="connectionFactory">
<bean class="org.apache.activemq.pool.PooledConnectionFactory" init-method="start" destroy-method="stop">
<property name="maxConnections" value="1" />
<property name="MaximumActiveSessionPerConnection" value="500" />
<property name="connectionFactory">
<bean class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="${activemq1.brokerUrl}" />
<property name="userName" value="${activemq1.username}" />
<property name="password" value="${activemq1.password}" />
<property name="redeliveryPolicy">
<bean class="org.apache.activemq.RedeliveryPolicy">
<property name="maximumRedeliveries" value="-1" />
</bean>
</property>
</bean>
</property>
</bean>
</property>
</bean>
</property>
</bean>
//IBM MQ connection factory
<bean id="ibmmq" class="org.apache.camel.component.jms.JmsComponent" destroy-method="doStop">
<property name="concurrentConsumers" value="1" />
<property name="maxConcurrentConsumers" value="1" />
<property name="connectionFactory">
<bean class="org.springframework.jms.connection.SingleConnectionFactory" destroy-method="destroy">
<constructor-arg>
<bean class="com.ibm.mq.jms.MQQueueConnectionFactory">
<property name="transportType" value="1" />
<property name="channel" value="${channel}" />
<property name="hostName" value="${hostname}" />
<property name="port" value="${port}" />
<property name="queueManager" value="${queueManager}" />
</bean>
</constructor-arg>
</bean>
</property>
</bean>
//ActiveMQ连接工厂
//IBM MQ连接工厂
您可以使用用户camel额外组件从wmq获取消息,而无需使用JMS包装,然后使用自定义camel组件将消息发送到ActiveMQ。另请参见类似主题 您可以使用users camel extra组件从wmq获取消息,而无需使用JMS包装,然后使用自定义camel组件将消息发送到ActiveMQ。另请参见类似主题 谢谢你,马修。IBM XML设置的第二部分是我错过的。。。今天早上发现的。正在创建org.apache.camel.component。。。。块我还错过了一个IBMJAR文件。谢谢Matthew。IBM XML设置的第二部分是我错过的。。。今天早上发现的。正在创建org.apache.camel.component。。。。块我还错过了一个IBMJAR文件。谢谢乔治!直到昨天我才明白你的答案。我没有意识到必须用JMS组件包装IBMMQ,这样camel才能使用它。谢谢George!直到昨天我才明白你的答案。我没有意识到必须用JMS组件包装IBMMQ,以便camel可以使用它。