| Author | 
		  Message
		 | 
		
		  | samimohd | 
		  
		    
			  
				 Posted: Wed Aug 28, 2002 5:45 am    Post subject: Urgent Help:Removing RFH header | 
				     | 
			   
			 
		   | 
		
		
		   Novice
 
 Joined: 25 Mar 2002 Posts: 21
  
  | 
		  
		    
			  
				I am trying remove JMS header. My header looks like this:
 
 
RFH       à    ¸MQSTR         ¸    <mcd><Msd>jms_text</Msd></mcd>     ”<jms><Dst>queue://GETTYDQM/SHP.SAP.RMT.ORDER.CREATE.OUT</Dst><Rto>queue://GETTYDQM/SAP.JMS.LCL.IN</Rto><Tms>1030542183292</Tms><Dlv>2</Dlv></jms>   
 
This is an XML message coming from Websphere. I tried all the methods described, both on this website, and as well as in the documentation, but still the header shows up. This will cause failure in the R/3 link for SAP. 
 
We use NEON formats. So I tried NEON formats to strip the header. It works fine if I put the message manually, but if it directly comes from Websphere, the above header is carried accross. 
 
Can any one give me some suggestions or sample ESQL. 
 
Thanks.
 
Sami. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | kirani | 
		  
		    
			  
				 Posted: Wed Aug 28, 2002 7:53 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Jedi Knight
 
 Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA 
  | 
		  
		    
			  
				Sami,
 
 
Have you tried this ..
 
SET OutputRoot.MQRFH = NULL; _________________ 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 | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | samimohd | 
		  
		    
			  
				 Posted: Wed Aug 28, 2002 8:34 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Novice
 
 Joined: 25 Mar 2002 Posts: 21
  
  | 
		  
		    
			  
				Hi Kiran, I tried that. It does remove the header but it also remove all the XML elements i.e no XML document. This is how the trace looks like after the compute node which has the code
 
SET OutputRoot.MQRFH = NULL;
 
SET OutputRoot.MQMD.Format = MQSTR;
 
 
(
 
  (0x1000000)Properties = (
 
    (0x3000000)MessageSet      = ''
 
    (0x3000000)MessageType     = ''
 
    (0x3000000)MessageFormat   = ''
 
    (0x3000000)Encoding        = 785
 
    (0x3000000)CodedCharSetId  = 1208
 
    (0x3000000)Transactional   = TRUE
 
    (0x3000000)Persistence     = FALSE
 
    (0x3000000)CreationTime    = GMTTIMESTAMP '2002-08-28 16:52:50.660'
 
    (0x3000000)ExpirationTime  = -1
 
    (0x3000000)Priority        = 0
 
    (0x3000000)ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
 
    (0x3000000)ReplyProtocol   = 'MQ'
 
    (0x3000000)Topic           = NULL
 
  )
 
  (0x1000000)MQMD       = (
 
    (0x3000000)SourceQueue      = 'IN.1'
 
    (0x3000000)Transactional    = TRUE
 
    (0x3000000)Encoding         = 785
 
    (0x3000000)CodedCharSetId   = 437
 
    (0x3000000)Format           = 'MQHRF2  '
 
    (0x3000000)Version          = 2
 
    (0x3000000)Report           = 0
 
    (0x3000000)MsgType          = 8
 
    (0x3000000)Expiry           = -1
 
    (0x3000000)Feedback         = 0
 
    (0x3000000)Priority         = 0
 
    (0x3000000)Persistence      = 0
 
    (0x3000000)MsgId            = X'414d51204d4f48414d4d454420202020f2a16c3d12300300'
 
    (0x3000000)CorrelId         = X'000000000000000000000000000000000000000000000000'
 
    (0x3000000)BackoutCount     = 0
 
    (0x3000000)ReplyToQ         = '                                                '
 
    (0x3000000)ReplyToQMgr      = 'MOHAMMED                                        '
 
    (0x3000000)UserIdentifier   = 'mqsiuid     '
 
    (0x3000000)AccountingToken  = X'1601051500000052437506af1cfa3ee308dd33f703000000000000000000000b'
 
    (0x3000000)ApplIdentityData = '                                '
 
    (0x3000000)PutApplType      = 11
 
    (0x3000000)PutApplName      = '\mqsiuid\Desktop\rfhutil.exe'
 
    (0x3000000)PutDate          = DATE '2002-08-28'
 
    (0x3000000)PutTime          = GMTTIME '16:52:50.660'
 
    (0x3000000)ApplOriginData   = '    '
 
    (0x3000000)GroupId          = X'000000000000000000000000000000000000000000000000'
 
    (0x3000000)MsgSeqNumber     = 1
 
    (0x3000000)Offset           = 0
 
    (0x3000000)MsgFlags         = 0
 
    (0x3000000)OriginalLength   = -1
 
  )
 
  (0x1000000)MQRFH2     = (
 
    (0x3000000)Version        = 2
 
    (0x3000000)Format         = ''
 
    (0x3000000)Encoding       = 785
 
    (0x3000000)CodedCharSetId = 1208
 
    (0x3000000)Flags          = 0
 
    (0x3000000)NameValueCCSID = 1208
 
    (0x1000000)mcd            = (
 
      (0x1000000)Msd  = (
 
        (0x2000000) = 'jms_text'
 
      )
 
      (0x1000000)Set  = 
 
      (0x1000000)Type = 
 
      (0x1000000)Fmt  = 
 
    )
 
  )
 
)
 
(
 
  (0x1000000)Properties = (
 
    (0x3000000)MessageSet      = ''
 
    (0x3000000)MessageType     = ''
 
    (0x3000000)MessageFormat   = ''
 
    (0x3000000)Encoding        = 785
 
    (0x3000000)CodedCharSetId  = 1208
 
    (0x3000000)Transactional   = TRUE
 
    (0x3000000)Persistence     = FALSE
 
    (0x3000000)CreationTime    = GMTTIMESTAMP '2002-08-28 16:54:20.050'
 
    (0x3000000)ExpirationTime  = -1
 
    (0x3000000)Priority        = 0
 
    (0x3000000)ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
 
    (0x3000000)ReplyProtocol   = 'MQ'
 
    (0x3000000)Topic           = NULL
 
  )
 
  (0x1000000)MQMD       = (
 
    (0x3000000)SourceQueue      = 'IN.1'
 
    (0x3000000)Transactional    = TRUE
 
    (0x3000000)Encoding         = 785
 
    (0x3000000)CodedCharSetId   = 437
 
    (0x3000000)Format           = 'MQHRF2'
 
    (0x3000000)Version          = 2
 
    (0x3000000)Report           = 0
 
    (0x3000000)MsgType          = 8
 
    (0x3000000)Expiry           = -1
 
    (0x3000000)Feedback         = 0
 
    (0x3000000)Priority         = 0
 
    (0x3000000)Persistence      = 0
 
    (0x3000000)MsgId            = X'414d51204d4f48414d4d454420202020f2a16c3d12500300'
 
    (0x3000000)CorrelId         = X'000000000000000000000000000000000000000000000000'
 
    (0x3000000)BackoutCount     = 0
 
    (0x3000000)ReplyToQ         = '                                                '
 
    (0x3000000)ReplyToQMgr      = 'MOHAMMED                                        '
 
    (0x3000000)UserIdentifier   = 'mqsiuid     '
 
    (0x3000000)AccountingToken  = X'1601051500000052437506af1cfa3ee308dd33f703000000000000000000000b'
 
    (0x3000000)ApplIdentityData = '                                '
 
    (0x3000000)PutApplType      = 11
 
    (0x3000000)PutApplName      = '\mqsiuid\Desktop\rfhutil.exe'
 
    (0x3000000)PutDate          = DATE '2002-08-28'
 
    (0x3000000)PutTime          = GMTTIME '16:54:20.050'
 
    (0x3000000)ApplOriginData   = '    '
 
    (0x3000000)GroupId          = X'000000000000000000000000000000000000000000000000'
 
    (0x3000000)MsgSeqNumber     = 1
 
    (0x3000000)Offset           = 0
 
    (0x3000000)MsgFlags         = 0
 
    (0x3000000)OriginalLength   = -1
 
  )
 
  (0x1000000)MQRFH2     = (
 
    (0x3000000)Version        = 2
 
    (0x3000000)Format         = ''
 
    (0x3000000)Encoding       = 785
 
    (0x3000000)CodedCharSetId = 1208
 
    (0x3000000)Flags          = 0
 
    (0x3000000)NameValueCCSID = 1208
 
    (0x1000000)mcd            = (
 
      (0x1000000)Msd  = (
 
        (0x2000000) = 'jms_text'
 
      )
 
      (0x1000000)Set  = 
 
      (0x1000000)Type = 
 
      (0x1000000)Fmt  = 
 
    )
 
  )
 
)
 
(
 
  (0x1000000)Properties = (
 
    (0x3000000)MessageSet      = ''
 
    (0x3000000)MessageType     = ''
 
    (0x3000000)MessageFormat   = ''
 
    (0x3000000)Encoding        = 785
 
    (0x3000000)CodedCharSetId  = 1208
 
    (0x3000000)Transactional   = TRUE
 
    (0x3000000)Persistence     = FALSE
 
    (0x3000000)CreationTime    = GMTTIMESTAMP '2002-08-28 16:55:18.850'
 
    (0x3000000)ExpirationTime  = -1
 
    (0x3000000)Priority        = 0
 
    (0x3000000)ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
 
    (0x3000000)ReplyProtocol   = 'MQ'
 
    (0x3000000)Topic           = NULL
 
  )
 
  (0x1000000)MQMD       = (
 
    (0x3000000)SourceQueue      = 'IN.1'
 
    (0x3000000)Transactional    = TRUE
 
    (0x3000000)Encoding         = 785
 
    (0x3000000)CodedCharSetId   = 437
 
    (0x3000000)Format           = 'MQHRF2'
 
    (0x3000000)Version          = 2
 
    (0x3000000)Report           = 0
 
    (0x3000000)MsgType          = 8
 
    (0x3000000)Expiry           = -1
 
    (0x3000000)Feedback         = 0
 
    (0x3000000)Priority         = 0
 
    (0x3000000)Persistence      = 0
 
    (0x3000000)MsgId            = X'414d51204d4f48414d4d454420202020f2a16c3d12600300'
 
    (0x3000000)CorrelId         = X'000000000000000000000000000000000000000000000000'
 
    (0x3000000)BackoutCount     = 0
 
    (0x3000000)ReplyToQ         = '                                                '
 
    (0x3000000)ReplyToQMgr      = 'MOHAMMED                                        '
 
    (0x3000000)UserIdentifier   = 'mqsiuid     '
 
    (0x3000000)AccountingToken  = X'1601051500000052437506af1cfa3ee308dd33f703000000000000000000000b'
 
    (0x3000000)ApplIdentityData = '                                '
 
    (0x3000000)PutApplType      = 11
 
    (0x3000000)PutApplName      = '\mqsiuid\Desktop\rfhutil.exe'
 
    (0x3000000)PutDate          = DATE '2002-08-28'
 
    (0x3000000)PutTime          = GMTTIME '16:55:18.850'
 
    (0x3000000)ApplOriginData   = '    '
 
    (0x3000000)GroupId          = X'000000000000000000000000000000000000000000000000'
 
    (0x3000000)MsgSeqNumber     = 1
 
    (0x3000000)Offset           = 0
 
    (0x3000000)MsgFlags         = 0
 
    (0x3000000)OriginalLength   = -1
 
  )
 
  (0x1000000)MQRFH2     = (
 
    (0x3000000)Version        = 2
 
    (0x3000000)Format         = ''
 
    (0x3000000)Encoding       = 785
 
    (0x3000000)CodedCharSetId = 1208
 
    (0x3000000)Flags          = 0
 
    (0x3000000)NameValueCCSID = 1208
 
    (0x1000000)mcd            = (
 
      (0x1000000)Msd  = (
 
        (0x2000000) = 'jms_text'
 
      )
 
      (0x1000000)Set  = 
 
      (0x1000000)Type = 
 
      (0x1000000)Fmt  = 
 
    )
 
  )
 
)
 
 Below is the XML message I am getting from WCS.
 
RFH       à    ¸MQSTR         ¸    <mcd><Msd>jms_text</Msd></mcd>     ”<jms><Dst>queue://GETTYDQM/SHP.SAP.RMT.ORDER.CREATE.OUT</Dst><Rto>queue://GETTYDQM/SAP.JMS.LCL.IN</Rto><Tms>1030542183292</Tms><Dlv>2</Dlv></jms>   
 
 
 
 
 
 
 
 
 
 
 
 
<?xml version="1.0" encoding="UTF-8"?>
 
<Report_NC_PurchaseOrder version="1.0">
 
	<ControlArea>
 
		<Verb value="Report"/>
 
		<Noun value="NC_PurchaseOrder"/>
 
	</ControlArea>
 
	<DataArea>
 
		<ReportPO>
 
 
 
			<ReportPOHeader>
 
				<SalesOrganization>1304</SalesOrganization>
 
				<DistributionChannel>00</DistributionChannel>
 
				<Division>00</Division>
 
				<PurchaseOrderType>WEB</PurchaseOrderType>
 
				<WCSOrderRefNumber>14201</WCSOrderRefNumber>
 
				<DateTimeReference>
 
					<PlacedDate>20020828</PlacedDate>
 
					<PlacedTime>094303</PlacedTime>
 
				</DateTimeReference>
 
				<RequestedDeliveryDate>20020829</RequestedDeliveryDate>
 
 
 
				<ShipMethod/>
 
 
				<PaymentTerm>C547</PaymentTerm>
 
				<PONumber>PO=::INV=::</PONumber>
 
			</ReportPOHeader>
 
 
			
 
			<ReportPOItem>
 
				<ItemLineNumber>1</ItemLineNumber>
 
				<ItemLineQuantity>1</ItemLineQuantity>
 
				<SalesUOM/>
 
				<ProductNumberByMerchant>70012701 C1</ProductNumberByMerchant>
 
			</ReportPOItem>
 
 
 
 
			<SalesOrderText/>
 
			<RequisitionerInfo>
 
				<ShipToNumberBySAP/>
 
				<ContactPersonName>
 
					<Title/>
 
					<LastName>Masutani</LastName>
 
					<FirstName>Akiko</FirstName>
 
					<MiddleName/>
 
				</ContactPersonName>
 
			</RequisitionerInfo>
 
 
 
			<BillToInfo>
 
				<Address>
 
					<AddressLine1>10 Centre St</AddressLine1>
 
					<AddressLine2/>
 
					<AddressLine3/>
 
					<City>Cambridge</City>
 
					<State>MA</State>
 
					<Zip>02139</Zip>
 
					<Country>US</Country>
 
				</Address>
 
				<ContactPersonName>
 
					<LastName>Masutani</LastName>
 
					<FirstName>Akiko</FirstName>
 
					<MiddleName/>
 
					<AlternateName/>
 
				</ContactPersonName>
 
			</BillToInfo>
 
 
 
 
			<ShipToInfo>
 
				<Address>
 
					<AddressLine1>455 Forest St</AddressLine1>
 
					<AddressLine2/>
 
					<AddressLine3/>
 
					<City>Marlborough</City>
 
					<State>MA</State>
 
					<Zip>01752</Zip>
 
					<Country>US</Country>
 
				</Address>
 
				<ContactPersonName>
 
					<LastName>Masutani</LastName>
 
					<FirstName>Akiko</FirstName>
 
					<MiddleName/>
 
					<AlternateName/>
 
				</ContactPersonName>
 
			</ShipToInfo>
 
 
 
		</ReportPO>
 
	</DataArea>
 
</Report_NC_PurchaseOrder>
 
 
Please suggest what is wrong here.
 
Thanks.
 
Sami. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | kirani | 
		  
		    
			  
				 Posted: Wed Aug 28, 2002 8:46 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Jedi Knight
 
 Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA 
  | 
		  
		    
			  
				Hi Sami,
 
 
I see that you have MQRFH2 header. So the esql statements should be:
 
 
   
	| Code: | 
   
  
	
 
SET OutputRoot.MQRFH2 = NULL; 
 
SET OutputRoot.MQMD.Format = MQFMT_STRING; 
 
 | 
   
 
 
 
Also make sure you have "Copy Entire Message" selected in this compute node. _________________ 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 | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | samimohd | 
		  
		    
			  
				 Posted: Wed Aug 28, 2002 9:25 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Novice
 
 Joined: 25 Mar 2002 Posts: 21
  
  | 
		  
		    
			  
				Hi Kiran, I did what you suggested. But the message fails. Below is last few lines of the trace captured:
 
 
2002-08-28 13:49:40.156734   8242  ParserException  BIP5005E: No valid body of the document could be found. 
 
                                       There should be one, and only one, top level element of type element or EmptyElement and this is not the case for the current message. 
 
                                       Check that the XML message being passed in is a well formed XML message that adheres to the XML specification and that only one of the above exists as a child of the root. 
 
2002-08-28 13:49:40.159309   8242  UserTrace   BIP2638E: MQPUT to queue 'MQSI.SHP.SAP.LCL.ERRORS' on queue manager '': MQCC=0, MQRC=0; node 'SHP.SAP.ORDER.CREATE 1.0 _OLD.Errors'. 
 
                                       The node 'SHP.SAP.ORDER.CREATE 1.0 _OLD.Errors' attempted to write a message to the specified queue 'MQSI.SHP.SAP.LCL.ERRORS' connected to queue manager ''.  The MQCC was 0 and the MQRC was 0. 
 
                                       No user action required. 
 
2002-08-28 13:49:40.159469   8242  UserTrace   BIP2622I: Message successfully output by output node 'SHP.SAP.ORDER.CREATE 1.0 _OLD.Errors' to queue 'MQSI.SHP.SAP.LCL.ERRORS' on queue manager ''. 
 
                                       The MQSeries Integrator output node 'SHP.SAP.ORDER.CREATE 1.0 _OLD.Errors' successfully wrote an output message to the specified queue MQSI.SHP.SAP.LCL.ERRORS connected to queue manager . 
 
                                       No user action required. 
 
 
Threads encountered in this trace:
 
  1  2314  5398  7197  7454  7711  7968  8228  8242
 
 
What might be wrong here.
 
Thanks.
 
Sami. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | kirani | 
		  
		    
			  
				 Posted: Wed Aug 28, 2002 9:49 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Jedi Knight
 
 Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA 
  | 
		  
		    
			  
				Sami,
 
 
Let's take one step back and create a very sample message flow to debug the problem here. 
 
 
MQInput(out)->Trace1->Compute1->Trace2->MQOutput
 
MQInput(catch)->Trace3
 
 
MQInput: Read your input message as XML.
 
Trace1: Print ${Root} in it and write the trace output to some file.
 
Compute1: Select "Copy Entire Message" and have only 2 lines of ESQL code (as posted in my earlier post). Make sure Compute mode is set to "Message" Only.
 
Trace2: Print ${Root} in it and write the trace output to some file.
 
MQOutput: Write message to some queue.
 
Trace3: Print ${ExceptionList} in it.
 
 
now run a message thru this Message flow and see what output do you get in Trace nodes. _________________ 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 | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | samimohd | 
		  
		    
			  
				 Posted: Wed Aug 28, 2002 10:33 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Novice
 
 Joined: 25 Mar 2002 Posts: 21
  
  | 
		  
		    
			  
				Hi Kiran, created and tested the message flow. These are the results:
 
-- No Trace2 file
 
-- No message is lost  beacuse it might have slipped through one of the unconnected nodes
 
--Contents of trace1.
 
(
 
  (0x1000000)Properties = (
 
    (0x3000000)MessageSet      = ''
 
    (0x3000000)MessageType     = ''
 
    (0x3000000)MessageFormat   = ''
 
    (0x3000000)Encoding        = 785
 
    (0x3000000)CodedCharSetId  = 1208
 
    (0x3000000)Transactional   = TRUE
 
    (0x3000000)Persistence     = FALSE
 
    (0x3000000)CreationTime    = GMTTIMESTAMP '2002-08-28 18:59:48.480'
 
    (0x3000000)ExpirationTime  = -1
 
    (0x3000000)Priority        = 0
 
    (0x3000000)ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
 
    (0x3000000)ReplyProtocol   = 'MQ'
 
    (0x3000000)Topic           = NULL
 
  )
 
  (0x1000000)MQMD       = (
 
    (0x3000000)SourceQueue      = 'IN.1'
 
    (0x3000000)Transactional    = TRUE
 
    (0x3000000)Encoding         = 785
 
    (0x3000000)CodedCharSetId   = 437
 
    (0x3000000)Format           = 'MQHRF2  '
 
    (0x3000000)Version          = 2
 
    (0x3000000)Report           = 0
 
    (0x3000000)MsgType          = 8
 
    (0x3000000)Expiry           = -1
 
    (0x3000000)Feedback         = 0
 
    (0x3000000)Priority         = 0
 
    (0x3000000)Persistence      = 0
 
    (0x3000000)MsgId            = X'414d51204d4f48414d4d454420202020f2a16c3d12900400'
 
    (0x3000000)CorrelId         = X'000000000000000000000000000000000000000000000000'
 
    (0x3000000)BackoutCount     = 0
 
    (0x3000000)ReplyToQ         = '                                                '
 
    (0x3000000)ReplyToQMgr      = 'MOHAMMED                                        '
 
    (0x3000000)UserIdentifier   = 'mqsiuid     '
 
    (0x3000000)AccountingToken  = X'1601051500000052437506af1cfa3ee308dd33f703000000000000000000000b'
 
    (0x3000000)ApplIdentityData = '                                '
 
    (0x3000000)PutApplType      = 11
 
    (0x3000000)PutApplName      = '\mqsiuid\Desktop\rfhutil.exe'
 
    (0x3000000)PutDate          = DATE '2002-08-28'
 
    (0x3000000)PutTime          = GMTTIME '18:59:48.480'
 
    (0x3000000)ApplOriginData   = '    '
 
    (0x3000000)GroupId          = X'000000000000000000000000000000000000000000000000'
 
    (0x3000000)MsgSeqNumber     = 1
 
    (0x3000000)Offset           = 0
 
    (0x3000000)MsgFlags         = 0
 
    (0x3000000)OriginalLength   = -1
 
  )
 
  (0x1000000)MQRFH2     = (
 
    (0x3000000)Version        = 2
 
    (0x3000000)Format         = 'MQSTR   '
 
    (0x3000000)Encoding       = 785
 
    (0x3000000)CodedCharSetId = 1208
 
    (0x3000000)Flags          = 0
 
    (0x3000000)NameValueCCSID = 1208
 
    (0x1000000)mcd            = (
 
      (0x1000000)Msd  = (
 
        (0x2000000) = 'jms_text'
 
      )
 
      (0x1000000)Set  = 
 
      (0x1000000)Type = 
 
      (0x1000000)Fmt  = 
 
    )
 
  )
 
  (0x1000010)XML        = 
 
 
--Contents of Trace3:
 
(
 
  (0x1000000)RecoverableException = (
 
    (0x3000000)File                 = 'F:\build\S210_P\src\DataFlowEngine\ImbDataFlowNode.cpp'
 
    (0x3000000)Line                 = 536
 
    (0x3000000)Function             = 'ImbDataFlowNode::createExceptionList'
 
    (0x3000000)Type                 = 'ComIbmMQInputNode'
 
    (0x3000000)Name                 = '497c2af2-ef00-0000-0080-f8c7ad880cd4'
 
    (0x3000000)Label                = 'TEST-KIRAN.MQInput1'
 
    (0x3000000)Text                 = 'Node throwing exception'
 
    (0x3000000)Catalog              = 'WMQIv210'
 
    (0x3000000)Severity             = 3
 
    (0x3000000)Number               = 2230
 
    (0x1000000)RecoverableException = (
 
      (0x3000000)File            = 'F:\build\S210_P\src\DataFlowEngine\ImbTraceNode.cpp'
 
      (0x3000000)Line            = 329
 
      (0x3000000)Function        = 'ImbTraceNode::evaluate'
 
      (0x3000000)Type            = 'ComIbmTraceNode'
 
      (0x3000000)Name            = '2cb12af2-ef00-0000-0080-f8c7ad880cd4'
 
      (0x3000000)Label           = 'TEST-KIRAN.Trace1'
 
      (0x3000000)Text            = 'Caught exception and rethrowing'
 
      (0x3000000)Catalog         = 'WMQIv210'
 
      (0x3000000)Severity        = 3
 
      (0x3000000)Number          = 2230
 
      (0x1000000)ParserException = (
 
        (0x3000000)File            = 'F:\build\S210_P\src\MTI\MTIforBroker\GenXmlParser2\XmlImbParser.cpp'
 
        (0x3000000)Line            = 287
 
        (0x3000000)Function        = 'XmlImbParser::parseFirstChild'
 
        (0x3000000)Type            = ''
 
        (0x3000000)Name            = ''
 
        (0x3000000)Label           = ''
 
        (0x3000000)Text            = 'XML Parsing Errors have occurred'
 
        (0x3000000)Catalog         = 'WMQIv210'
 
        (0x3000000)Severity        = 3
 
        (0x3000000)Number          = 5009
 
        (0x1000000)ParserException = (
 
          (0x3000000)File     = 'F:\build\S210_P\src\MTI\MTIforBroker\GenXmlParser2\XmlBrokerAsgardParser.cpp'
 
          (0x3000000)Line     = 692
 
          (0x3000000)Function = 'XmlBrokerAsgardParser::error'
 
          (0x3000000)Type     = ''
 
          (0x3000000)Name     = ''
 
          (0x3000000)Label    = ''
 
          (0x3000000)Text     = 'An error has been reported by the BIPXML4C component.'
 
          (0x3000000)Catalog  = 'WMQIv210'
 
          (0x3000000)Severity = 3
 
          (0x3000000)Number   = 5004
 
          (0x1000000)Insert   = (
 
            (0x3000000)Type = 2
 
            (0x3000000)Text = '121'
 
          )
 
          (0x1000000)Insert   = (
 
            (0x3000000)Type = 5
 
            (0x3000000)Text = ''
 
          )
 
          (0x1000000)Insert   = (
 
            (0x3000000)Type = 2
 
            (0x3000000)Text = '13'
 
          )
 
          (0x1000000)Insert   = (
 
            (0x3000000)Type = 2
 
            (0x3000000)Text = '7'
 
          )
 
          (0x1000000)Insert   = (
 
            (0x3000000)Type = 5
 
            (0x3000000)Text = 'The XML or Text declaration must start at line/column 1/1'
 
          )
 
          (0x1000000)Insert   = (
 
            (0x3000000)Type = 5
 
            (0x3000000)Text = 'XML'
 
          )
 
        )
 
      )
 
    )
 
  )
 
)
 
 
 
Looks like a proper XML is not coming through the input node;
 
Any suggestions ?
 
Thank You very much
 
Sami. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | kirani | 
		  
		    
			  
				 Posted: Wed Aug 28, 2002 12:12 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Jedi Knight
 
 Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA 
  | 
		  
		    
			  
				Sami,
 
 
I am not very much familiar with JMS. I see that your input message has JMS header in it. Is it possible for JMS Application not to generate this header? 
 
 
WMQI supports only JMSMap and JMSStream type messages. These message types maps to XML domain, and therefore supported in an identical fashion to XML messages. As per XML specification, there should be only one tag at the root level. But, for your input message there are two tags, <jms> and <Report_NC_PurchaseOrder>. 
 
 
If there is MQRFH2 header present in your input message, mcd folder defines the message domain. WMQI will ignore the Message domain set in the MQInput node. Try chaning your MQInput node to have BLANK message domain and see if that makes the difference. _________________ 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 | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | mapa | 
		  
		    
			  
				 Posted: Thu Aug 29, 2002 1:39 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Master
 
 Joined: 09 Aug 2001 Posts: 257 Location: Malmö, Sweden 
  | 
		  
		    
			  
				Hi,
 
 
I haven't worked with MQSI/WMQI since before the summer but I still have an idea that might work. Although I might not get the details right.
 
 
You could try this:
 
1) RCD node right after the MQInput that resets the content to BLOB. ->
 
2) a compute node that removes unwanted headers like you have tried, and copy the BLOB message. SET OutputRoot.NEON.MYMESSAGE = InputRoot.BLOB.BLOB (Should be something like this). ->
 
3) Remove the jms part it in the NEON formatter as you already have done this.
 
 
Your problem is that you try to reset the headers at the same time that the message is parsed. Using BLOB MQSI/WMQI won't parse the message content for you. Note that tracing the message with anything except BLOB as the domain will make MQSI parse the message. 
 
 
You could of course also strip the jms parts in the first compute node by scanning the hexrepresentation of your BLOB message and substringing it abit   
 
To do this get the position of the </jms> and make a substring of that + the steps you need to walk forward to get passed the </jms>. Note however that you have to search for </jms> in hex...
 
 
Best regards Mapa | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | lillo | 
		  
		    
			  
				 Posted: Thu Aug 29, 2002 2:09 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Master
 
 Joined: 11 Sep 2001 Posts: 224
  
  | 
		  
		    
			  
				Hi,
 
 
I have the same problem. To remove the RFH2 header added by JMS I use the following code in a compute node:
 
   
	| Code: | 
   
  
	
 
   SET OutputRoot.MQMD = InputRoot.MQMD;
 
   SET OutputRoot.MQMD.Format = 'MQSTR';
 
   SET OutputRoot.XML = InputRoot.XML;
 
 | 
   
 
 
 
and no selection on "Copy message header" or "Copy entire message"
 
 
I hope this help you.
 
 
Cheers, _________________ Lillo
 
IBM Certified Specialist - WebSphere MQ | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | hdjur | 
		  
		    
			  
				 Posted: Mon Oct 02, 2006 5:36 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Centurion
 
 Joined: 16 Sep 2004 Posts: 116 Location: Zagreb 
  | 
		  
		    
			  
				Hi!
 
 
If I want to remove xmitq header, is it possible to say in a compute node:
 
 
CALL CopyEntireMessage();
 
SET OutputRoot.MQXQH= NULL;
 
 
I'm asking it because:
 
   
	| Quote: | 
   
  
	
 
 
It also provides parsers for the following message headers that your applications can include in input messages:
 
 
MQCFH 
 
MQCIH 
 
MQDLH 
 
MQIIH 
 
MQMD 
 
MQMDE 
 
MQRFH 
 
MQRFH2 
 
MQRFH2C 
 
MQRMH 
 
MQSAPH 
 
MQWIH 
 
SMQ_BMH 
 
 
If you need to process and parse message body data or headers that the supplied parsers do not handle, 
 
create user-defined parsers using the WebSphere Message Broker user-defined parser programming interface.
 
 | 
   
 
 
 
I would say no, because MQXQH is not mentioned?
 
 
Regards | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | Vitor | 
		  
		    
			  
				 Posted: Mon Oct 02, 2006 5:42 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Grand High Poobah
 
 Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA 
  | 
		  
		    
			  
				There are very few circumstances where it's necessary and/or wise to remove the xmitq header, which implies you're reading the message from the transmit queue. IMHO it's much better to let the message get where it's going (even if it's a dead letter queue) and use traditional techniques & provided tools (like the dead letter handler!    ) to deal with it.
 
 
Certainly never heard of a flow that reads transmit queues. Odd & slightly disturbing administration and problem resolving applications yes, but a flow?    What's your requirement? I'm intregued    
 
 
But to return to your question, I don't believe that it's possible. Conflicting opinions welcomed as always   [/i] _________________ Honesty is the best policy.
 
Insanity is the best defence. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | hdjur | 
		  
		    
			  
				 Posted: Mon Oct 02, 2006 6:37 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Centurion
 
 Joined: 16 Sep 2004 Posts: 116 Location: Zagreb 
  | 
		  
		    
			  
				Hi Vitor,
 
 
thank you for your answer. We were faced with a small problem with MQ listener on a destination host, so that channels to this host could not be started. We were just wandering how easy could we reach the solution for this unexpected situation, if we tried with WMQ Broker. Messages were stuck in a xmitq, if we could get messages and somehow extract simply MQXQH header, dump "clean" messages to a file, copy this file to a destination host, and then load the destination queue with this file, we would buy time to solve the problem with a listener, because one portion of messages would be transferred. I know it sounds funny, but that was one idea at that moment. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | Vitor | 
		  
		    
			  
				 Posted: Mon Oct 02, 2006 6:57 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Grand High Poobah
 
 Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA 
  | 
		  
		    
			  
				Like I said, only admin & problem solving programes do this. Your solution doesn't sound that bad, but I stand (rightly or wrongly) by my assertion that you can't do it with a flow. 
 
 
A small application would be fairly simple though....    _________________ Honesty is the best policy.
 
Insanity is the best defence. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | hdjur | 
		  
		    
			  
				 Posted: Mon Oct 02, 2006 7:11 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Centurion
 
 Joined: 16 Sep 2004 Posts: 116 Location: Zagreb 
  | 
		  
		    
			  
				| O.K. I just didn't want to waste too much time, if it can't be obtained with a totaly simple transformation. Anyway, it's much more sensible to "repair" listener (use runmqlsr instead of amqcrsta, or repair/restart inetd). | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | 
		    
		   |