私は、メッセージを生成するために、私のサービスの一つにこのBeanを注入していラクダCamel ProducerTemplateは、すべてのメッセージに対して同じJMSCorrelationIDを使用していますが、生成される各メッセージに対して一意のIDを取得する方法はありますか?
<camel:template id="msgProducerTemplate" />
を使用して制作テンプレートを定義しました。すべてのメッセージの
msgProducerTemplate.sendBodyAndHeaders(endpointUri, message, headerMap);
これはCorrelationIDが生成された生成実際のメッセージが同一の場合でも、私はそれがメッセージごとに新しいIDを作成することができますどのように、同じです。
私endpointUriはinboundTopicです:トピック:$ {} topic.nameマイjmscomponentは以下のように定義されて
...
<bean id="inboundTopic" class="org.apache.camel.component.jms.JmsComponent">
<property name="connectionFactory" ref="jmsTopicConnectionFactory" />
<property name="destinationResolver" ref="topicDestinationResolver" />
<property name="transacted" value="true" />
<property name="transactionManager" ref="topicTxManager" />
<property name="cacheLevelName" value="CACHE_CONSUMER" />
</bean>
<bean id="topicConnectionFactory" class="com.ibm.mq.jms.MQTopicConnectionFactory">
<property name="hostName" value="${queuehost}" />
<property name="port" value="${queueport}" />
<property name="queueManager" value="${queuemanager}" />
<property name="channel" value="${channel}" />
<property name="transportType" value="${transportType}" />
</bean>
<bean id="jmsTopicConnectionFactory" class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
<property name="targetConnectionFactory" ref="topicConnectionFactory" />
<property name="username">
<value>${userid}</value>
</property>
</bean>
<bean id="topicDestinationResolver" class="com.abc.jms.JMSTopicDestinationResolver" />
それはあなたがより多くの詳細を提供する必要があり、また、JMSコンポーネントとどのようにリクエスト/リプライ作品についての詳細を読んで、あなたがなどに送信しますが、JMSコンポーネントと、JMSエンドポイントの構成方法によって異なります。 –
@ClausIbsenが質問を更新しました。 – Sri
プロデューサテンプレートに渡すヘッダーに既存のJMSCorrelationIDを指定しないでください。例えば、DEBUG/TRACEロギングをデバッグしたり有効にしたり、何が起きているかを見ることができます。 –