Author |
Message
|
Sam99 |
Posted: Mon Jul 22, 2013 5:02 am Post subject: Unconvertable Character Error |
|
|
Apprentice
Joined: 19 Jul 2012 Posts: 43
|
Hello MB Champs,
I have a MB flow on AIX box which send an xml to a Mainframe system via MQ(Remote queue).
Incoming request message has Encoding as 273 and CCSID as 1208
While sending the message we set the Encoding as 785 and CCSID as 285 and MQMD.Format as MQFMT_STRING;
Code :
SET OutputRoot.MQMD.Version = MQMD_CURRENT_VERSION;
SET OutputRoot.MQMD.Format = MQFMT_STRING;
SET OutputRoot.MQMD.MsgType = MQMT_DATAGRAM;
SET OutputRoot.MQMD.Encoding = 785;
SET OutputRoot.MQMD.CodedCharSetId = 285;
SET OutputRoot.MQMD.Persistence = MQPER_PERSISTENT;
Problem :
In the request message we are getting – (ndash) and while putting the message in the remote queue I am getting below mentioned error,
BIP2136E: Source character '2013' in field
Unconvertable character||2013|
Any suggestions on how to handle this ? |
|
Back to top |
|
 |
marko.pitkanen |
Posted: Mon Jul 22, 2013 5:05 am Post subject: |
|
|
 Chevalier
Joined: 23 Jul 2008 Posts: 440 Location: Jamsa, Finland
|
Hi,
What version AIX, broker and MQ you are using?
--
Marko |
|
Back to top |
|
 |
kimbert |
Posted: Mon Jul 22, 2013 5:17 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
So your input message contains a character that cannot be represented in CCSID 285 ( single-byte EBCDIC).
Quote: |
Any suggestions on how to handle this ? |
Before attempting to send this message, ensure that all characters in the message tree can map to the target CCSID. There are various ways of doing this, but you cannot expect WMB to handle this automatically - it is a decision that you ( the application designer ) must make. _________________ Before you criticize someone, walk a mile in their shoes. That way you're a mile away, and you have their shoes too. |
|
Back to top |
|
 |
marko.pitkanen |
Posted: Mon Jul 22, 2013 5:26 am Post subject: |
|
|
 Chevalier
Joined: 23 Jul 2008 Posts: 440 Location: Jamsa, Finland
|
With quick Google search we can find character table that perhaps shows you all the chars CCSID 285 knows.
--
Marko |
|
Back to top |
|
 |
Sam99 |
Posted: Mon Jul 22, 2013 5:29 am Post subject: |
|
|
Apprentice
Joined: 19 Jul 2012 Posts: 43
|
AIX : 6.1 TL6
MQ : 7.1.0.6
WMB : 6.1.0.9 |
|
Back to top |
|
 |
Sam99 |
Posted: Mon Jul 22, 2013 5:42 am Post subject: |
|
|
Apprentice
Joined: 19 Jul 2012 Posts: 43
|
Thanks a lot for your replies.
Kimbert,
Would you be able to help me on how to identify such characters and how to send them dynamically. |
|
Back to top |
|
 |
smdavies99 |
Posted: Mon Jul 22, 2013 5:55 am Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
Look at the RAW data in a HEX editor. Then compare that with the codepage table from a previous link. _________________ WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995
Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions. |
|
Back to top |
|
 |
Sam99 |
Posted: Mon Jul 22, 2013 6:08 am Post subject: |
|
|
Apprentice
Joined: 19 Jul 2012 Posts: 43
|
Sorry, I was not very clear in my previos post.
I have done that comparison but what I wanted to know is how to handle this in Message Broker. |
|
Back to top |
|
 |
smdavies99 |
Posted: Mon Jul 22, 2013 6:14 am Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
kimbert wrote: |
There are various ways of doing this, but you cannot expect WMB to handle this automatically - it is a decision that you ( the application designer ) must make. |
Why don't you propose some ideas. There are some that I could think of but they may well be irrelevant for your situation
Also, go to the originator of the message and find out why they are sending you rubbish _________________ WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995
Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions. |
|
Back to top |
|
 |
Sam99 |
Posted: Mon Jul 22, 2013 6:27 am Post subject: |
|
|
Apprentice
Joined: 19 Jul 2012 Posts: 43
|
Regarding your second point, are hexcodes not valid way of passing data in UTF 8 format ?
If the answer is no, then how are they suppose to pass this data.
Regarding your first point, I will be back with some options. |
|
Back to top |
|
 |
kimbert |
Posted: Mon Jul 22, 2013 7:20 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
Regarding your second point, are hexcodes not valid way of passing data in UTF 8 format ? |
Define 'hexcodes'. If you mean 'XML character references' then yes, you can pass those in a UTF-8 XML document. But that's not your problem. Your flow is trying to *output* a character in EBCDIC, and EBCDIC simply cannot represent that character. It's not an XML problem, or a UTF-8 problem. It's an application integration problem.
Quote: |
how are they suppose to pass this data. |
You cannot pass that character using CCSID 285. Your options are:
- change the character to some other character that *is* supported by CCSID 285.
- Delete the character from the output message.
- change the output CCSID to UTF-8 ( CCSID 1208 ). But only if the receiving application can handle UTF-8. _________________ Before you criticize someone, walk a mile in their shoes. That way you're a mile away, and you have their shoes too. |
|
Back to top |
|
 |
Sam99 |
Posted: Mon Jul 22, 2013 9:20 am Post subject: |
|
|
Apprentice
Joined: 19 Jul 2012 Posts: 43
|
|
Back to top |
|
 |
Sam99 |
Posted: Mon Jul 22, 2013 9:29 am Post subject: |
|
|
Apprentice
Joined: 19 Jul 2012 Posts: 43
|
One more observation, its failing for this as well.
Description : Close single quote
Character : ’
HTMLEntity : ’
DecimalCode : & #8217;
HexCode : ’ |
|
Back to top |
|
 |
Sam99 |
Posted: Mon Jul 22, 2013 10:04 am Post subject: |
|
|
Apprentice
Joined: 19 Jul 2012 Posts: 43
|
In XML and XHTML, characters can be expressed as hexadecimal numeric character references using the notation ode;, where code is the 1- to 6-digit hex number assigned to the character in the Unicode standard. Thus ’ represents the curled right single quote (Unicode value 2019 in hex, 8217 in decimal). |
|
Back to top |
|
 |
kimbert |
Posted: Mon Jul 22, 2013 1:22 pm Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Right. I now understand what you were trying to say earlier:
Quote: |
are hexcodes not valid way of passing data in UTF 8 format ? |
What you meant to say was this:
Quote: |
Why can't message broker insert an XML character reference for the problem characters? |
I guess the answer is 'it could' but you would have to detect the problem characters yourself and escape them using ESQL or Java. But there is a much simpler solution: change OutputRoot.Properties.Encoding to 1208 ( UTF-8 ). UTF-8 can represent any Unicode character, so your 'unconvertable character exception' will definitely go away. _________________ Before you criticize someone, walk a mile in their shoes. That way you're a mile away, and you have their shoes too. |
|
Back to top |
|
 |
|