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