|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
MQMD Header issue after a compute node |
« View previous topic :: View next topic » |
Author |
Message
|
nelson |
Posted: Sun Feb 01, 2015 12:19 pm Post subject: MQMD Header issue after a compute node |
|
|
 Partisan
Joined: 02 Oct 2012 Posts: 313
|
Hi All,
I'm not able to set manually the CorrelId within a compute node. In the debugging the property seems be set OK, just befere the RETURN statement (within ESQL breakpoint):
Code: |
MQMD
SourceQueue YYY
Transactional true
Encoding 546
CodedCharSetId 1208
Format MQSTR
Version 2
Report 0
MsgType 8
Expiry -1
Feedback 0
Priority 0
Persistence 0
MsgId 414d5120514d42524b39202020202020cd3ace5420074202
CorrelId 414d5120514d42524b39202020202020cd3ace5420074202
BackoutCount 0
ReplyToQ
ReplyToQMgr QMBRK9
UserIdentifier brkadm
AccountingToken 160105150000000fe4bbe04591cc5ccffb1170fb03000000000000000000000b
ApplIdentityData
PutApplType 11
PutApplName Sphere MQ\\bin\\MQExplorer.exe
PutDate 2015-02-01
PutTime 19:51:13.020
ApplOriginData
GroupId 000000000000000000000000000000000000000000000000
MsgSeqNumber 1
Offset 0
MsgFlags 0
OriginalLength -1 |
But, in the next breakpoint (just after the compute node) the value is unset!:
Code: |
MQMD
SourceQueue YYY
Transactional false
Encoding 546
CodedCharSetId 850
Format MQSTR
Version 2
Report 0
MsgType 8
Expiry -1
Feedback 0
Priority 0
Persistence 0
MsgId 414d5120514d42524b39202020202020cd3ace5420074202
CorrelId 000000000000000000000000000000000000000000000000
BackoutCount 0
ReplyToQ
ReplyToQMgr QMBRK9
UserIdentifier brkadm
AccountingToken 160105150000000fe4bbe04591cc5ccffb1170fb03000000000000000000000b
ApplIdentityData
PutApplType 11
PutApplName Sphere MQ\\bin\\MQExplorer.exe
PutDate 2015-02-01
PutTime 19:51:13.003
ApplOriginData
GroupId 000000000000000000000000000000000000000000000000
MsgSeqNumber 1
Offset 0
MsgFlags 0
OriginalLength -1 |
It's very weird, because just before the compute node the MQMD is not present. I'm just retrieving it from the Environment:
Code: |
SET OutputRoot.MQMD = Environment.Variables.MQMD;
SET OutputRoot.MQMD.CorrelId = Environment.Variables.MQMD.MsgId; |
I just wanted to avoid the use of a MQHeader (which works fine, using the Environment.Variables.MQMD.MsgId value) node and add this step to the compute node.
This is very strange.... Any idea on this behavior? |
|
Back to top |
|
 |
fjb_saper |
Posted: Sun Feb 01, 2015 4:02 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
You parked it under Environment.MQMD... Did you also assign it an MQMD parser?
What is the type of Environment.MQMD.MsgId? BLOB or CHARACTER?
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
nelson |
Posted: Sun Feb 01, 2015 7:18 pm Post subject: |
|
|
 Partisan
Joined: 02 Oct 2012 Posts: 313
|
fjb_saper wrote: |
You parked it under Environment.MQMD... Did you also assign it an MQMD parser? |
I don´t remember it being necessary to assing of a parser to store the MQMD. isn't it done automatically? as when we assign the complete body to a variable, or the complete root.
fjb_saper wrote: |
What is the type of Environment.MQMD.MsgId? BLOB or CHARACTER? |
Just did this:
Code: |
SET Environment.Variables.MQMD = InputRoot.MQMD; |
|
|
Back to top |
|
 |
Simbu |
Posted: Sun Feb 01, 2015 10:44 pm Post subject: |
|
|
 Master
Joined: 17 Jun 2011 Posts: 289 Location: Tamil Nadu, India
|
Hi nelson, What is you flow design?. The issue might be due to the below reason.
Quote: |
When the message flow is sourced from an input node that is not the MQInput node (such as the HTTPInput node or a user-defined input node), no MQMD is parsed. In this scenario, the Properties folder is not sourced from an input MQMD; it is created and populated with transport values that come from other transport specific headers. When you create an MQMD folder in a message flow that was not sourced from the WebSphere MQ transport, the MQMD header does not take precedence over the Properties folder because the WebSphere MQ transport did not populate the Properties folder. Therefore, in this case, the Properties folder overwrites any values in MQMD |
|
|
Back to top |
|
 |
Vitor |
Posted: Mon Feb 02, 2015 5:13 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
nelson wrote: |
I don´t remember it being necessary to assing of a parser to store the MQMD. isn't it done automatically? |
No it isn't, and it is necessary.
nelson wrote: |
as when we assign the complete body to a variable, or the complete root. |
There are specific rules for when a parser gets assigned. A lot of people are fooled because they see it "working" when they assign an XML document to Environment, and see it assigned back, but then find that all the attributes and non-character data wasn't preserved because the XMLNSC parser wasn't assigned.
Clearly it can be a while before this becomes apparent if your XML documents are all character data with no attributes.
nelson wrote: |
fjb_saper wrote: |
What is the type of Environment.MQMD.MsgId? BLOB or CHARACTER? |
Just did this:
Code: |
SET Environment.Variables.MQMD = InputRoot.MQMD; |
|
[/quote]
Try assigning an MQMD parser and see if that helps. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|