|   | 
	 
  
    | 
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: 20768 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
  | 
  		 
	   
	 | 
   
 
  	 | 
	  |