0

JMSエンドポイントにトレースしている単純なCamelアプリケーションがあります。現在、受信したJMSメッセージが確認応答されていないように見える問題が発生しています(メッセージが送信されずにキューから読み取られており、現在のキューの深さが減少していません)。

この問題の原因について何か考えはありますか?

トレースルート

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

SpringJMS構成

<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 EndpointConfig

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

編集:

これは、ブローカーとしてTibcoEMSを使用しています。

ログに表示されるのは次のとおりです。

[2012 Jul 11​​ 11:39:46] DEBUG [](AbstractPollingMessageListenerContainer.java:313)-コンシューマー[QueueReceiver [queue=f2b.prototype.tracer.queue]からタイプ[classcom.tibco.tibjms.TibjmsObjectMessage]のメッセージを受信しました]セッションの[com.tibco.tibjms.TibjmsSession@16c143]

[2012 Jul 11​​ 11:39:46] DEBUG [](EndpointMessageListener.java:72)-Endpoint [jmsTrace:// queue:/user_dev/db/us/GTO/CIFramework/S001DEV/f2b.prototype.tracer.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}}プロパティ={}Object = {com.db.cif .tracer.jpa.model.JpaTraceEventMessage @1dfe3f}}

[2012 Jul 11​​ 11:39:46] DEBUG [](JmsTemplate.java:464)-JMSセッションでコールバックを実行しています:com.tibco.tibjms.TibjmsSession@16c143

[2012 Jul 11​​ 11:39:46] DEBUG [](JmsConfiguration.java:266)-JMSメッセージを次の宛先に送信しています:Queue [f2b.prototype.tracer.queue] with message:ObjectMessage = {Header = {JMSMessageID = {null} JMSDestination = {null} JMSReplyTo = {null} JMSDeliveryMode = {PERSISTENT} JMSRedelivered = {false} JMSCorrelationID = {null} JMSType = {null} JMSTimestamp = {0} JMSExpiration = {0} JMSPriority={4}}プロパティ={} Object ={com.db.cif.tracer.jpa.model.JpaTraceEventMessage@16119a}}

テスト

[2012 Jul 11​​ 11:39:52] DEBUG [](AbstractPollingMessageListenerContainer.java:313)-コンシューマー[QueueReceiver [queue=f2b.prototype.tracer.queue]からタイプ[classcom.tibco.tibjms.TibjmsObjectMessage]のメッセージを受信しました]セッションの[com.tibco.tibjms.TibjmsSession@16c143]

[2012 Jul 11​​ 11:39:52] DEBUG [](EndpointMessageListener.java:72)-Endpoint [jmsTrace:// queue:/user_dev/db/us/GTO/CIFramework/S001DEV/f2b.prototype.tracer.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}}プロパティ={}Object = {com.db.cif .tracer.jpa.model.JpaTraceEventMessage @1d81bc5}}

[2012 Jul 11​​ 11:39:52] DEBUG [](JmsTemplate.java:464)-JMSセッションでコールバックを実行しています:com.tibco.tibjms.TibjmsSession@16c143

[2012 Jul 11​​ 11:39:52] DEBUG [](JmsConfiguration.java:266)-JMSメッセージを次の宛先に送信しています:Queue [f2b.prototype.tracer.queue] with message:ObjectMessage = {Header = {JMSMessageID = {null} JMSDestination = {null} JMSReplyTo = {null} JMSDeliveryMode = {PERSISTENT} JMSRedelivered = {false} JMSCorrelationID = {null} JMSType = {null} JMSTimestamp = {0} JMSExpiration = {0} JMSPriority={4}}プロパティ={} Object ={com.db.cif.tracer.jpa.model.JpaTraceEventMessage@3b09b4}}

4

1 に答える 1

0

私は愚かなことをしていることを知っていました!

トレース メッセージを詳しく調べたところ、コンテキストでトレースが有効になっているため、トレース ルートがトレースされ、小さな無限ループが発生していることに気付きました。

于 2012-07-11T18:52:04.320 に答える