|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Urgent!!! NEONMSG parser failed to process 'ü' character |
« View previous topic :: View next topic » |
Author |
Message
|
Yang Yu |
Posted: Mon Mar 29, 2004 11:09 pm Post subject: Urgent!!! NEONMSG parser failed to process 'ü' character |
|
|
Novice
Joined: 04 Nov 2002 Posts: 12
|
NEONMSG parser failed to process character 'ü'.
Next is our message flow design:
Mainflow
InputNode1 (BLOB domain) -> ComputeNode1 -> Trace1 -> OutputNode1 (To subflow)
Subflow
InputNode2 (NEONMSG domain) -> Trace2 -> ComputeNode2 -> OutputNode2
We have a message flow which start with a NEON formatted IDOC message from our Sybase SAP R/3 Adapter. When the IDOC (Including a 'ü' character) arrives in the mainflow input queue, the flow processing will begin. For mainflow input queue, the message domain is set as a BLOB format to enhance performance and routing. After the IDOC has been routed to a subflow flow, input queue message domain is changed to 'NEONMSG' which parses the IDOC messages and gives us a tree similar to an XML message and subflow compute node will get the Parsed NEONMSG tree. Everything works fine for english character.
When our IDOC includes a German character 'ü', it failed to parsing that and OutputNode2 is changed to 'n'. (In Trace1, it is 'ü', in Trace2, it is changed to 'n')
Our purpose is that character 'ü' appears in InputNode1 and 'ü' also appears in OutputNode2, but it is changed to 'n' on OutputNode2
Next is our ComputeNode ESQL
ComputeNode1:
SET "OutputRoot"."MQRFH2"."CodedCharSetId"=437;
SET "OutputRoot"."Properties"."Encoding"=785;
SET "OutputRoot"."MQMD"."Encoding"=785;
SET "OutputRoot"."MQMD"."CodedCharSetId"=437;
etc ...
ComputeNode2:
SET OutputRoot.Properties = InputRoot.Properties;
SET OutputRoot.MQMD = InputRoot.MQMD;
SET OutputRoot.MQMD.Format = 'MQSTR';
SET OutputRoot.Properties.MessageFormat = 'XML' ;
SET "OutputRoot"."MQMD"."Encoding"= 273;
SET "OutputRoot"."MQMD"."CodedCharSetId"= 1208;
etc ...
Also, it failed when we change as
ComputeNode1:
SET "OutputRoot"."MQRFH2"."CodedCharSetId"=1208;
It also failed when we change as
ComputeNode1:
SET "OutputRoot"."MQRFH2"."CodedCharSetId"=437;
SET "OutputRoot"."Properties"."Encoding"=273;
SET "OutputRoot"."MQMD"."Encoding"=273;
SET "OutputRoot"."MQMD"."CodedCharSetId"=1208;
etc ...
Any help would be appreciated!!! |
|
Back to top |
|
 |
wooda |
Posted: Tue Mar 30, 2004 4:24 am Post subject: |
|
|
 Master
Joined: 21 Nov 2003 Posts: 265 Location: UK
|
I'm not sure about the NEON domain but MRM and XML parsers will convert the input bitstream into UTF-8 when parsing and then it will be convert again to the output CCSID when the output message is written.
From the description you have given it seems it is the conversion from Input CCSID to UTF-8 which has caused the problem.
At trace1 no conversion will have happened as no parsing has been done. (the message is still in BLOB domain).
At trace2 the message has been parsed (and converted to UTF- .
What was you input CCSID as defined in the input MQMD (or MQRFH2 if you have one). ?
Check there is a a valid conversion from InputCCSID to UTF-8 for this character.
Is this character used in a string or a binary field in NEON format ? |
|
Back to top |
|
 |
Yang Yu |
Posted: Wed Mar 31, 2004 5:43 am Post subject: |
|
|
Novice
Joined: 04 Nov 2002 Posts: 12
|
Appreciate your help and thank you for your reply. Actually, we just resolve this issue 'temporarily'. I want to clarify something in my previous description
First, my wording "failed" should be "failed" by translating the German character 'ü' incorrectly as 'n'.
The second, 'ü' is not in Trace1, it should be on InputNode1 queue. We just stopped mainflow and original message stored on the first input queue, then we saw the 'ü' character. Trace1 is BLOB message. The mainflow send BLOB message to mainflow output queue and the second message flow received it and translate BLOB message to NEONMSG message.
The third, Our environment is WMQI 2.1, Sybase SAP R/3 adapter 3.9 and MQ 5.3 on Sun Solaris
We fix this issue as follows:
On mainflow (BLOB domain) ComputeNode1, we changed as next, then it works.
SET "OutputRoot"."MQRFH2"."CodedCharSetId"=923;
SET "OutputRoot"."Properties"."Encoding"=273;
SET "OutputRoot"."MQMD"."CodedCharSetId"=923;
SET "OutputRoot"."MQMD"."Encoding"=273;
We tried to change MQMD and MQRFH2's CCSID to 819, it failed. We do not know why it works only for 923. Right now, we tested the message flow for German, French, Spanish and English Languages, it works OK. But it does not work for Japanese Language (although we try to use CodedCharSetId=943).
Our purpose is that this message flow will support multiple languagues. Does some one know if it's possible to do it? |
|
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
|
|
|
|