互动场景: 外部资源(请求)-> Mule ESB(将jms发布到队列)-> activeMQ队列(rateRequest) 然后在响应队列(rateResponse)中等待答复。
- M子4.1.1
- activeMQ 5.15.9
- mule-jms-connector 1.6.0
在集成项目(m子)中,我使用了“发布消费”组件
<jms:config name="JMS_Config" doc:name="JMS Config" doc:id="0a098f4a-f2c3-4965-95dc-ac4bfec55511" sendCorrelationId="ALWAYS" >
<jms:active-mq-connection >
<jms:factory-configuration brokerUrl="${openBrokerUrl}" />
</jms:active-mq-connection>
</jms:config>
<jms:publish-consume doc:name="Publish consume" doc:id="93227022-80b5-476c-9be7-1571064b3004" config-ref="JMS_Config" destination="rateRequest" sendCorrelationId="ALWAYS" requestReplyPattern="CORRELATION_ID">
<reconnect count="10" />
<jms:message outboundContentType="application/xml" outboundEncoding="UTF-8" >
<jms:reply-to destination="rateResponse"/>
</jms:message>
<jms:publish-configuration persistentDelivery="true" />
<jms:consume-configuration maximumWait="35" maximumWaitUnit="SECONDS" inboundContentType="application/xml" inboundEncoding="UTF-8"/>
</jms:publish-consume>
问题在于,在35秒结束后,有时会发生JMS:TIMEOUT异常(如预期的那样),并且有时返回带有空正文的消息。当然,在响应队列中没有正文为空的消息。这是m子虫还是我错过了什么?