我使用camel定义了生产者模板
<camel:template id="msgProducerTemplate" />
我正在将此bean注入我的一个服务中以生成消息。
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" />
答案 0 :(得分:0)
只需添加JMSCorrelationID
标题。
例如
headerMap.put("JMSCorrelationID", UUID.randomUUID().toString());