| Author | 
		  Message
		 | 
		
		  | krchoy | 
		  
		    
			  
				 Posted: Tue Sep 10, 2002 2:19 pm    Post subject: How do I ignore the <mcd> folder at MQInput? | 
				     | 
			   
			 
		   | 
		
		
		   Novice
 
 Joined: 13 May 2002 Posts: 12
  
  | 
		  
		    
			  
				As per the help text:
 
 
   
	| Quote: | 
   
  
	If the incoming message has an MQRFH2 header, you do not have to enter the details on the Default tab because the values can be derived from the <mcd> folder in the MQRFH2 header. For example: 
 
 
<mcd><Msd>MRM</Msd><Set>DHM4UO906S001</Set><Type>receiptmsg1</Type><Fmt>XML</Fmt></mcd> 
 
 
If the values in the MQRFH2 header are different to any values set on the Default tab, the MQRFH2 header values take precedence.  | 
   
 
 
 
However we have a situation where a package is generating <mcd> information which we don't want. (Don't ask why    ) Our MQInput node is gagging on the message.
 
 
We've tried to override the <Msd> to be XML or BLOB - if we can get past the MQInout node we believe we could use a ResetContentDescriptor. Suggestions? | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | kirani | 
		  
		    
			  
				 Posted: Tue Sep 10, 2002 4:49 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Jedi Knight
 
 Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA 
  | 
		  
		    
			  
				I can think of two options here.
 
1. Write a program, which reads message from queue that was generated by package and removes the MQRFH2 header. The same program then writes new message to another queue , which will be processed by your message flow.
 
2. Write a plug-in Input node, which removes MQRFH2 header. _________________ Kiran
 
 
 
IBM Cert. Solution Designer & System Administrator - WBIMB V5
 
IBM Cert. Solutions Expert - WMQI
 
IBM Cert. Specialist - WMQI, MQSeries
 
IBM Cert. Developer - MQSeries
 
 
 | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | lung | 
		  
		    
			  
				 Posted: Wed Sep 11, 2002 12:42 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Master
 
 Joined: 27 Aug 2002 Posts: 291 Location: Malaysia 
  | 
		  
		    
			  
				I know it's possible to omit the MQRFH2 header in the compute node...
 
 
SET OutputRoot.MQRFH2 = NULL;
 
 
So maybe you can try...
 
 
SET OutputRoot.MQRFH2.mcd = NULL;
 
 
?
 
 
  _________________ lung | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | lbrett | 
		  
		    
			  
				 Posted: Wed Sep 11, 2002 3:52 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Novice
 
 Joined: 24 Jan 2002 Posts: 20
  
  | 
		  
		    
			  
				Agreed.  If you are unable to get past the input node, then check the Properties of the node to ensure that Validate (Advanced tab() is not checked.  MQSI will not parse the body of the message and you will be able to remove the RFH header and switch the message properties in the compute node.  For example, if the message is an XML message, then your compute node would have the follow:
 
 
SET OutputRoot.MQRFH2.mcd = NULL;
 
SET OutputRoot.XML=InputBody;
 
 
or
 
 
SET OutputRoot.MQRFH2.mcd.Msd='XML'; | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | kirani | 
		  
		    
			  
				 Posted: Wed Sep 11, 2002 8:25 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Jedi Knight
 
 Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA 
  | 
		  
		    
			  
				krchoy,
 
 
Just realized that your input message will not be parsed at the MQInput node. As lbrett said, in compute node change/remove your MQRFH2 header. Alternatively you could use RCD node to parse your message. _________________ Kiran
 
 
 
IBM Cert. Solution Designer & System Administrator - WBIMB V5
 
IBM Cert. Solutions Expert - WMQI
 
IBM Cert. Specialist - WMQI, MQSeries
 
IBM Cert. Developer - MQSeries
 
 
 | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | krchoy | 
		  
		    
			  
				 Posted: Wed Sep 11, 2002 12:55 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Novice
 
 Joined: 13 May 2002 Posts: 12
  
  | 
		  
		    
			  
				re Validate advanced option: no, we don't have it turned on.
 
 
re all Compute node and RCD strategies: can't get there if we can't get past the Input node.
 
 
Current plan is to have a program pre-process the message and eliminate the <mcd> folder.
 
 
Interestingly, we thought we had a winner with the RCD at first but that's because we were trying the flow in debug mode. Seems that debug mode lets the "bad" message in so it can be debugged. Once we tried to run it, the message always went to failure. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | philip.baker | 
		  
		    
			  
				 Posted: Wed Sep 11, 2002 2:42 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Voyager
 
 Joined: 21 Mar 2002 Posts: 77 Location: Baker Systems Consulting, Inc. - Tampa 
  | 
		  
		    
			  
				FYI:
 
 
On a Win2k Broker using WMQIV2.1CSD02 and MQSeriesV5.2.1CSD04, I was able to get the following:
 
 
Flow:
 
 
InputNode->Compute Node->OutputNode
 
 
Nothing set within the InputNode (besides the default settings) except the Input Queue Name
 
 
ComputeNode ESQL:
 
 
SET OutputRoot = InputRoot;
 
 
DETACH OutputRoot.MQRFH2.mcd;
 
 
-------------------------------------------------------------
 
Message placed on Input Queue using RFHUTIL with RFH2 header and mcd folder
 
 
52 46 48 20 02 00 00 00  RFH ....
 
70 00 00 00 22 02 00 00  p..."...
 
B5 01 00 00 20 20 20 20  µ...    
 
20 20 20 20 00 00 00 00      ....
 
B8 04 00 00 48 00 00 00  ¸...H...
 
3C 6D 63 64 3E 3C 4D 73  <mcd><Ms
 
64 3E 58 4D 4C 3C 2F 4D  d>XML</M
 
73 64 3E 3C 53 65 74 3E  sd><Set>
 
54 45 73 74 3C 2F 53 65  TEst</Se
 
74 3E 3C 54 79 70 65 3E  t><Type>
 
54 65 73 74 3C 2F 54 79  Test</Ty
 
70 65 3E 3C 46 6D 74 3E  pe><Fmt>
 
54 65 73 74 3C 2F 46 6D  Test</Fm
 
74 3E 3C 2F 6D 63 64 3E  t></mcd>
 
31 30 30 30 34 34 31 32  10004412
 
 
 
Message put on Output Queue by the flow .......
 
 
52 46 48 20 02 00 00 00  RFH ....
 
44 00 00 00 22 02 00 00  D..."...
 
B5 01 00 00 20 20 20 20  µ...    
 
20 20 20 20 00 00 00 00      ....
 
B8 04 00 00 1C 00 00 00  ¸.......
 
3C 6D 63 64 3E 3C 4D 73  <mcd><Ms
 
64 3E 78 6D 6C 3C 2F 4D  d>xml</M
 
73 64 3E 3C 2F 6D 63 64  sd></mcd
 
3E 20 20 20 31 30 30 30  >   1000
 
34 34 31 32 35 31 30 30  4412
 
 
----------------------------------------
 
 
Regards,
 
Phil
 
 
NEVER MIND:
 
THIS was a bad example. I used 'XML' to populate the Msd field. The issue is with the field being populated with the value of 'MRM'. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | 
		    
		   |