我们使用Java 8,Mule ESB 3.7.2和WMQ Connector。
这是Pub / Sub应用程序,我创建了具有唯一应用程序标识数据的订阅者。这在IBM WMQ中可用作MQMD.ApplIdentityData。
但是,Mule消息不会带来此标头信息。有没有办法在Mule流程中访问此值?
应用程序设计就是这样......
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:
}
答案 0 :(得分:0)
您应该可以通过假装它是属性来访问任何MQMD
字段。所以你可以要求财产Root.MQMD.ApplIdentityData
。
答案 1 :(得分:0)
Mule ESB会在将消息发布到流之前从MQ消息中截断标头值。
Mulesoft正在增强连接器。
在此之前,只有可用选项是带有轮询的Java Listener。如果我听到其他的话,我会发帖。