【发布时间】:2016-03-22 22:42:28
【问题描述】:
我们正在使用带有 WMQ 连接器的 Java 8、Mule ESB 3.7.2。
这是 Pub/Sub 应用程序,我创建了具有唯一应用程序身份数据的订阅者。这在 IBM WMQ 中作为 MQMD.ApplIdentityData 可用。
但是,Mule 消息不带此头信息。有没有办法在 Mule 流中访问这个值?
应用程序设计是这样的……
- 2 流。 Flow #1 作为发布流工作,将发布到 WMQ 主题中。
- WMQ 订阅者将被添加到 WMQ - 队列中。
- Flow #2 将拾取每个订阅者消息并处理。
- 每个订阅者都有唯一的应用程序标识数据,我需要在流程 #2(消费者流程)中访问该值。
Mule - WMQ 连接器:
<wmq:xa-connector name="WMQ" hostName="localhost" port="1414" queueManager="MyTestQM" transportType="CLIENT_MQ_TCPIP" validateConnections="true" doc:name="WMQ" numberOfConsumers="10" cacheJmsSessions="true"/>
<wmq:inbound-endpoint queue="PUBLISH_QUEUE" connector-ref="WMQ" doc:name="WMQ"/>
骡子消息:
INFO 2016-03-16 16:44:10,941 [[pubsub].pubsubFlow1.stage1.02] org.mule.api.processor.LoggerMessageProcessor: Consumer -
org.mule.DefaultMuleMessage
{
id=4f16e372-eb96-11e5-8945-ecb020524153
payload=[B
correlationId=ID:414d51204d7954657374514d202020206a5be95620018c3f
correlationGroup=-1
correlationSeq=-1
encoding=UTF-8
exceptionPayload=<not set>
Message properties:
INVOCATION scoped properties:
INBOUND scoped properties:
JMSCorrelationID=ID:414d51204d7954657374514d202020206a5be95620018c3f
JMSDeliveryMode=1
JMSDestination=topic://EIS_Test_Topic
JMSExpiration=0
JMSMessageID=ID:414d51204d7954657374514d202020206a5be9562001ea03
JMSPriority=0
JMSRedelivered=false
JMSTimestamp=1458146650880
JMSXAppID=MyTestQM
JMSXDeliveryCount=1
JMSXUserID=Santhosh-Kum
JMS_IBM_Character_Set=ISO-8859-1
JMS_IBM_Encoding=273
JMS_IBM_Format=
JMS_IBM_MsgType=8
JMS_IBM_PutApplType=26
JMS_IBM_PutDate=20160316
JMS_IBM_PutTime=16441088
MULE_CORRELATION_ID=ID:414d51204d7954657374514d202020206a5be95620018c3f
MULE_MESSAGE_ID=ID:414d51204d7954657374514d202020206a5be9562001ea03
MULE_ORIGINATING_ENDPOINT=endpoint.wmq.PUBLISH.QUEUE
OUTBOUND scoped properties:
SESSION scoped properties:
}
【问题讨论】: