Servicemix中的骆驼路线不使用IBM MQ队列中的消息

时间:2019-05-31 21:18:03

标签: apache-camel ibm-mq apache-servicemix

我正在尝试编写一个简单的骆驼路线,以使用Apache Service Mix将IBM MQ与Active MQ集成在一起。成功安装捆绑软件后,由于某些原因,骆驼路由仍然无法使用来自IBM MQ的消息。

我已经在ServiceMix中部署了IBM MQ提供的OSGI捆绑软件。最初,JMS版本存在一些问题,因为开箱即用的服务组合提供的捆绑使用JMS 1.1,而IBM OSGI捆绑使用JMS 2.0。由于JMS 2.0向后兼容1.1版本,因此能够通过更新已部署捆绑软件中的导出和导入包来解决冲突。成功完成定制捆绑软件安装后,由于某种原因,骆驼路由仍然无法使用来自IBM MQ的消息。我在服务组合和IBM MQ端均未看到任何与连接相关的异常。使用类似的代码,我成功地能够在2个不同的Active MQ代理之间读取和写入消息。

<bean id="activemqjms"
    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="${broker.url}" />
                            <property name="userName"
                                value="${broker.username}" />
                            <property name="password"
                                value="${broker.password}" />
                            <property name="redeliveryPolicy">
                                <bean class="org.apache.activemq.RedeliveryPolicy">
                                    <property name="maximumRedeliveries" value="-1" />
                                </bean>
                            </property>
                        </bean>
                    </property>
                </bean>
            </property>
        </bean>
    </property>
</bean>


<bean id="ibmmqjms"
    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="CHANNELTEST" />
                    <property name="hostName" value="VALID HOSTNAME" />
                    <property name="port" value="1414" />
                    <property name="queueManager" value="TESTQUEUEMGR" />
                </bean>
            </constructor-arg>
        </bean>
    </property>
</bean>

<bean id="inMessageProcessor"
    class="com.test.component.InMessageProcessor" />

<bean id="incomingRoute"
    class="com.test.route.IncomingRoute">
    <property name="externalInQueueName"
        value="${external.queue.in.name}" />
    <property name="internalInQueueName"
        value="${internal.queue.in.name}" />
</bean>

<bean id="ougoingRoute"
    class="com.test.route.OutgoingRoute">
    <property name="externalOutQueueName"
        value="${external.queue.out.name}" />
    <property name="internalOutQueueName"
        value="${internal.queue.out.name}" />
</bean>

<camel:camelContext id="queueConnector">
    <camel:routeBuilder ref="incomingRoute" />
    <camel:routeBuilder ref="ougoingRoute" />
</camel:camelContext>

我现在没有看到任何错误消息。

0 个答案:

没有答案