0

我有一个简单的 Camel 应用程序,它正在跟踪 JMS 端点。我目前遇到一个问题,似乎没有确认接收到的 JMS 消息(它正在从队列中读取而没有放置任何消息,并且当前队列深度没有减少)。

关于可能导致此问题的任何想法?

追踪路线

    from("jms.tracer")
        .id("openlink-input-trace")
        .process(new Processor()
        {
            @Override
            public void process(Exchange exchange) throws Exception 
            {
                System.out.println("test");
            }
        });

Spring JMS 配置

<bean id="tracerQueueConnFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiTemplate" ref="jndiTemplate" />
    <property name="jndiName" value="${jms.openlink-tracer-queue-qcf.jndiname}" />
</bean>

<bean id="proxyTracerQueueConnFactory" class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
    <property name="targetConnectionFactory" ref="tracerQueueConnFactory" />
    <property name="username" value="${jms.openlink-tracer-queue-qcf.username}" />
    <property name="password" value="${jms.openlink-tracer-queue-qcf.password}" />
</bean>

<bean id="jmsTrace" class="org.apache.camel.component.jms.JmsComponent">
    <property name="connectionFactory" ref="proxyTracerQueueConnFactory" />
    <property name="destinationResolver" ref="jndiResolver" />
</bean>

Spring端点配置

    <endpoint id="jms.tracer"
              uri="jmsTrace:queue:${jms.openlink-tracer-queue.jndiname}" />

编辑:

这是使用 TibcoEMS 作为代理。

我可以在日志中看到以下内容:

[2012 年 7 月 11 日 11:39:46] 调试 [] (AbstractPollingMessageListenerContainer.java:313) - 从消费者 [QueueReceiver[queue=f2b.prototype.tracer.queue] 收到类型为 [class com.tibco.tibjms.TibjmsObjectMessage] 的消息] 会话 [com.tibco.tibjms.TibjmsSession@16c143]

[2012 年 7 月 11 日 11:39:46] 调试 [] (EndpointMessageListener.java:72) - Endpoint[jmsTrace://queue:/user_dev/db/us/GTO/CIFramework/S001DEV/f2b.prototype.tracer.queue: queue] 消费者收到 JMS 消息: ObjectMessage={ Header={ JMSMessageID={ID:db_us_GTO_CIFramework_S001DEV.20D84FDA9F769B1A97:3} JMSDestination={Queue[f2b.prototype.tracer.queue]} JMSReplyTo={null} JMSDeliveryMode={PERSISTENT} JMSRedelivered= {false} JMSCorrelationID={null} JMSType={null} JMSTimestamp={Wed Jul 11​​ 10:53:48 CDT 2012} JMSExpiration={0} JMSPriority={4} } Properties={ } Object={com.db.cif .tracer.jpa.model.JpaTraceEventMessage@1dfe3f} }

[2012 年 7 月 11 日 11:39:46] 调试 [] (JmsTemplate.java:464) - 在 JMS 会话上执行回调:com.tibco.tibjms.TibjmsSession@16c143

[2012 年 7 月 11 日 11:39:46] 调试 [] (JmsConfiguration.java:266) - 将 JMS 消息发送到:Queue[f2b.prototype.tracer.queue] 消息:ObjectMessage={ Header={ JMSMessageID={null} JMSDestination={null} JMSReplyTo={null} JMSDeliveryMode={PERSISTENT} JMSRedelivered={false} JMSCorrelationID={null} JMSType={null} JMSTimestamp={0} JMSExpiration={0} JMSPriority={4} } Properties={ }对象={com.db.cif.tracer.jpa.model.JpaTraceEventMessage@16119a} }

测试

[2012 年 7 月 11 日 11:39:52] 调试 [] (AbstractPollingMessageListenerContainer.java:313) - 从消费者 [QueueReceiver[queue=f2b.prototype.tracer.queue] 收到类型为 [class com.tibco.tibjms.TibjmsObjectMessage] 的消息] 会话 [com.tibco.tibjms.TibjmsSession@16c143]

[2012 年 7 月 11 日 11:39:52] 调试 [] (EndpointMessageListener.java:72) - Endpoint[jmsTrace://queue:/user_dev/db/us/GTO/CIFramework/S001DEV/f2b.prototype.tracer.queue: queue] 消费者收到 JMS 消息: ObjectMessage={ Header={ JMSMessageID={ID:db_us_GTO_CIFramework_S001DEV.20D84FDA9F769B1A97:4} JMSDestination={Queue[f2b.prototype.tracer.queue]} JMSReplyTo={null} JMSDeliveryMode={PERSISTENT} JMSRedelivered= {false} JMSCorrelationID={null} JMSType={null} JMSTimestamp={Wed Jul 11​​ 10:53:50 CDT 2012} JMSExpiration={0} JMSPriority={4} } Properties={ } Object={com.db.cif .tracer.jpa.model.JpaTraceEventMessage@1d81bc5} }

[2012 年 7 月 11 日 11:39:52] 调试 [] (JmsTemplate.java:464) - 在 JMS 会话上执行回调:com.tibco.tibjms.TibjmsSession@16c143

[2012 年 7 月 11 日 11:39:52] 调试 [] (JmsConfiguration.java:266) - 将 JMS 消息发送到:Queue[f2b.prototype.tracer.queue] 消息:ObjectMessage={ Header={ JMSMessageID={null} JMSDestination={null} JMSReplyTo={null} JMSDeliveryMode={PERSISTENT} JMSRedelivered={false} JMSCorrelationID={null} JMSType={null} JMSTimestamp={0} JMSExpiration={0} JMSPriority={4} } Properties={ }对象={com.db.cif.tracer.jpa.model.JpaTraceEventMessage@3b09b4} }

4

1 回答 1

0

我知道我在做一些愚蠢的事情!

我仔细查看了跟踪消息,并意识到在我的上下文中启用了跟踪,导致我的跟踪器路由被跟踪,因此是一个不错的小无限循环。

于 2012-07-11T18:52:04.320 回答