|   | 
	 
  
    | 
RSS Feed - WebSphere MQ Support
 | 
RSS Feed - Message Broker Support
 |   
 
  
	     | 
	 | 
   
 
  
	|  Codepage error in Broker | 
	« View previous topic :: View next topic »  | 
   
  
  	
	  
		
		
		  | Author | 
		  Message
		 |  
		
		  | superstar | 
		  
		    
			  
				 Posted: Thu Aug 16, 2007 8:01 pm    Post subject: Codepage error in Broker | 
				     | 
			   
			 
		   | 
		 
		
		   Apprentice
 
 Joined: 12 May 2004 Posts: 31
  
  | 
		  
		    
			  
				I am trying to test my error sub-flow. I am forcing validation on my input messages by setting vaalidation properties in Input node. In the validation tab I set Validate = "Content and Value" and Failure Action = "ExceptionList". As I get an Exception, the message along with exception goes through Failure terminal to my error sub-flow where I have a compute node some  ESQL to generate an XML message.  I tried ato play around with the Properties Folder and MQMD a lot. But no help. 
 
 
If I dont save the Exception List into the output XML, it works. As it was not parsed in the InputNode, may be the broker is unable to understand the characters in the input message. No idea whats going on...
 
 
Following is the Exception list and the Code.
 
 Please guide me ...
 
 
 
 
   
	| Code: | 
   
  
	
 
REATE COMPUTE MODULE SUB_ERR_CATCH_CHECK_n_PROCESS
 
   CREATE FUNCTION Main() RETURNS BOOLEAN
 
   BEGIN
 
 
 
            SET OutputRoot.Properties = InputRoot.Properties;
 
            SET OutputRoot.MQMD.StrucId = MQMD_STRUC_ID;
 
            SET OutputRoot.MQMD.MsgId = CAST(x'414141414141414141424242424242424243434343434343' AS BLOB); 
 
            SET OutputRoot.MQMD.CodedCharSetId = InputRoot.MQMD.CodedCharSetId;
 
            SET OutputRoot.MQMD.Encoding = InputRoot.MQMD.Encoding;
 
            
 
            SET OutputRoot.Properties.ReplyIdentifier = MQMI_NONE; 
 
            SET OutputRoot.Properties.ReplyProtocol = 'MQ';
 
            SET OutputRoot.Properties.MessageFormat = '';
 
            SET OutputRoot.Properties.MessageSet = '';
 
            SET OutputRoot.Properties.MessageType = '';
 
            
 
            SET OutputRoot.MQMD.CorrelId = MQMI_NONE; 
 
            SET OutputRoot.MQMD.Format = MQFMT_STRING;
 
            
 
 
            SET OutputRoot.XML.ESBError.MQMD = InputRoot.MQMD;
 
            SET OutputRoot.XML.ESBError.Properties = InputRoot.Properties;
 
            SET OutputRoot.XML.ESBError.Exception = InputExceptionList;
 
            SET OutputRoot.XML.ESBError.Environment = Environment;
 
            SET OutputRoot.XML.ESBError.LocalEnvironment = InputLocalEnvironment;
 
            SET OutputRoot.XML.ESBError.OtherDetails.MsgFlowName = MessageFlowLabel;
 
            SET OutputRoot.XML.ESBError.OtherDetails.BrokerName = BrokerName;
 
            SET OutputRoot.XML.ESBError.OtherDetails.SourceQueue = InputRoot.MQMD.SourceQueue;
 
            
 
         RETURN TRUE;
 
      END IF;
 
   END;
 
 | 
   
 
 
 
 
EXCEPTION LIST
 
 
 
   
	| Code: | 
   
  
	
 
ExceptionList
 
RecoverableException
 
   File = F:\\build\\S600_P\\src\\DataFlowEngine\\ImbDataFlowNode.cpp
 
   Line = 616
 
   Function = ImbDataFlowNode::createExceptionList
 
   Type = ComIbmMQInputNode
 
   Name = PROPAGATE_MF#FCMComposite_1_1
 
   Label = PROPAGATE_MF.MQInput
 
   Catalog = BIPv600
 
   Severity = 3
 
   Number = 2230
 
   Text = Node throwing exception
 
      RecoverableException
 
      File = F:\\build\\S600_P\\src\\DataFlowEngine\\ImbMqOutputNode.cpp
 
      Line = 782
 
      Function = ImbMqOutputNode::evaluate
 
      Type = ComIbmMQOutputNode
 
      Name = PROPAGATE_MF#FCMComposite_1_3
 
      Label = PROPAGATE_MF.TEST.ERR
 
      Catalog = BIPv600
 
      Severity = 3
 
      Number = 2230
 
      Text = Caught exception and rethrowing
 
      ParserException
 
         File = F:\\build\\S600_P\\src\\MTI\\MTIforBroker\\GenXmlParser2\\XmlImbParser.cpp
 
         Line = 380
 
         Function = XmlImbParser::refreshBitStreamFromElements
 
         Type = ComIbmComputeNode
 
         Name = PROPAGATE_MF#FCMComposite_1_6.com/mckesson/common/SUB_ERR_CATCH#FCMComposite_1_2
 
         Label = PROPAGATE_MF.SUB_ERR_CATCH.CHECK_n_PROCESS
 
         Catalog = BIPv600
 
         Severity = 3
 
         Number = 5010
 
         Text = XML Writing Errors have occurred
 
         RecoverableException
 
            File = F:\\build\\S600_P\\src\\CommonServices\\ImbConverter.cpp
 
            Line = 312
 
            Function = ImbConverterCPP::internalFromUnicode
 
            Type = 
 
            Name = 
 
            Label = 
 
            Catalog = BIPv600
 
            Severity = 3
 
            Number = 2136
 
            Text = Unconvertable character
 
            Insert
 
               Type = 5
 
               Text = 9301
 
            Insert
 
               Type = 5
 
               Text = 4e0075006d006200650072003e0035003900300032003c0....
 
            Insert
 
               Type = 2
 
               Text = 437
 
 | 
   
 
 | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | shalabh1976 | 
		  
		    
			  
				 Posted: Thu Aug 16, 2007 9:06 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		 
		
		    Partisan
 
 Joined: 18 Jul 2002 Posts: 381 Location: Gurgaon, India 
  | 
		  
		    
			  
				It seems that you are getting some data that cannot be converted to utf.
 
Can you find out which data that is and then move the same to a CDATA section?
 
You can also change the encoding on your XML message from utf-8 to some ISO xxxx or EBCDIC value in the XML declaration and see. _________________ Shalabh
 
IBM Cert. WMB V6.0
 
IBM Cert. MQ V5.3 App. Prog.
 
IBM Cert. DB2 9 DB Associate | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | elvis_gn | 
		  
		    
			  
				 Posted: Thu Aug 16, 2007 9:28 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		 
		
		    Padawan
 
 Joined: 08 Oct 2004 Posts: 1905 Location: Dubai 
  | 
		  
		    
			  
				Hi superstar,
 
 
Please paste your input message (if it is small, else snippet where you might find a non English char for example)..
 
 
What is the incoming CCSID of the message ?
 
 
Did you try viewing the incoming message in RFHUtil ? what is the representation there ?
 
 
Regards. | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | superstar | 
		  
		    
			  
				 Posted: Thu Aug 16, 2007 11:03 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		 
		
		   Apprentice
 
 Joined: 12 May 2004 Posts: 31
  
  | 
		  
		    
			  
				Here is my incoming message. 
 
 
   
	| Code: | 
   
  
	<hello>
 
 <data>nothing</data>
 
</hello> | 
   
 
 
 
And my incoming code pageis 437. Also, I am doing this on my laptop. | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | elvis_gn | 
		  
		    
			  
				 Posted: Thu Aug 16, 2007 11:15 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		 
		
		    Padawan
 
 Joined: 08 Oct 2004 Posts: 1905 Location: Dubai 
  | 
		  
		    
			  
				Hi superstar,
 
 
Well, from the look of the input message, the problem doesn't seem to be with any special characters    
 
 
A few pointers for the code:
 
 
1. Don't create a MessageId and CorrelId in the code (especially don't hardcode it), instead simply copy the incoming MessageId to correlId, so that you can locate a specific error msg in a queue with 'n' msgs based on input MsgId.
 
 
2. Don't use XML Domain.
 
 
3. Usually exception handling flows don't store the MQMD and properties, mainly the Body, irrespective of whether you need it use ASBITSTREAM with CCSID and make the whole thing a string before mapping to the output field.
 
You will find a lot of good examples on this forum for the same.
 
 
Regards. | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | JYama | 
		  
		    
			  
				 Posted: Fri Aug 17, 2007 12:26 am    Post subject:  | 
				     | 
			   
			 
		   | 
		 
		
		    Master
 
 Joined: 27 Mar 2002 Posts: 281
  
  | 
		  
		    
		   | 
		 
		
		  | 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
  | 
  		 
	   
	 | 
   
 
  	 | 
	  |