Author |
Message
|
IntODream |
Posted: Mon Apr 24, 2006 7:25 am Post subject: Unconvertable character exception |
|
|
Newbie
Joined: 24 Apr 2006 Posts: 1
|
Hi!
We need help!
Our system:
Windows 2003 Server
MQSeries 5.3
DB2 for ISeries as DB server on AS\400
We have installed Fix Pack 6.0.0.1 for Message Broker 6.0.
When we try to execute SELECT command via ODBC we got the following exception:
RecoverableException
File = F:\\build\\S600_P\\src\\CommonServices\\ImbConverter.cpp
Line = 516
Function = ImbConverterCPP::internalToUnicode
Type =
Name =
Label =
Catalog = BIPv600
Severity = 3
Number = 2135
Text = Unconvertable character
Before installing patch everything was ok. We retrieve data in CCSID 1251. |
|
Back to top |
|
 |
Tarapuz |
Posted: Fri Aug 18, 2006 5:53 am Post subject: |
|
|
Newbie
Joined: 18 Aug 2006 Posts: 8
|
Does anybody know how to solve this? I have almost the same configuration and the same error
Here some information from Windows Application Log:
Source character ''ce'' in field ''cec0ce2022d5e8ece8eaee2df4e0f0ece0f6e5e2f2e8f7e5f1eae8e920eaeeece1e8ed'' cannot be converted to unicode from codepage ''1208''.
The source character is an invalid code point within the given codepage.
Correct the application that generated the message.
The text has CCSID 1251.
SOS |
|
Back to top |
|
 |
jefflowrey |
Posted: Fri Aug 18, 2006 6:13 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
I'm confused.
What codepage is the input data in? 1208? 1251?
Also, you appear to have 70 hex char pairs, which would map to 35 bytes... and Unicode is a double-byte codepage.... _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
Tarapuz |
Posted: Fri Aug 18, 2006 12:32 pm Post subject: |
|
|
Newbie
Joined: 18 Aug 2006 Posts: 8
|
jefflowrey, the data in DB server on AS\400 is in CCSID 1251. When broker recieves this data, it tries to convert it to its internal format - unicode. I suppose the problem is that broker uses wrong conversion table 1208 -> unicode instead of 1251 -> unicode. We use iSeries Access ODBC Driver to connect to db on AS\400.
I also tried to get the same data from MS SQL Server through ODBC SQL Server Driver and everything was ok.
Any ideas? |
|
Back to top |
|
 |
jefflowrey |
Posted: Fri Aug 18, 2006 2:46 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Is the CCSID on the message marked properly as 1251?
Broker normally converts everything to Unicode (I forget if it's 1200 or 1208).
Again, you appear to have an incorrect number of bytes for a double-byte character set. And you may simply have incorrect data in the first place. If you've dropped the first byte of a double-byte character string, then I hope you understand why there could be an issue. Or if you've sent UTF and not indicated to Broker that it's UTF and needs to be aware that there is a length byte at the front... But why would you use UTF in the first place, much less use it without knowing that there is a length byte at the front...? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
Tarapuz |
Posted: Fri Aug 18, 2006 10:11 pm Post subject: |
|
|
Newbie
Joined: 18 Aug 2006 Posts: 8
|
jefflowrey, you probably don't understand the problem. The text - "cec0ce2022...", that I get from db2 through PASSTHROUG(Select ...), has CCSID 1251. But broker (i don't know why) consideres it to be in CCSID 1208.
And again I want to mention, that everything was alright before I have installed FixPack 1 or FixPack2. I got the same data on the first release of broker v.6 and everything was alright. |
|
Back to top |
|
 |
jefflowrey |
Posted: Sat Aug 19, 2006 7:10 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Okay. Codepage 1251 seems to be Cyrillic.
So you're having a language problem. Did you set the appropriate values in the Broker environment to tell it what language/locale the machine is running in? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
Tarapuz |
Posted: Sat Aug 19, 2006 9:55 am Post subject: |
|
|
Newbie
Joined: 18 Aug 2006 Posts: 8
|
Yes. I set environment variable MQSI_LOCAL_CCSID with value 1251 and I also tried to add it to mqsiprofile.cmd but with no effect  |
|
Back to top |
|
 |
jefflowrey |
Posted: Sat Aug 19, 2006 4:30 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
That's not what I meant.
How's about trying NS_LANG or LANG or whatever is appropriate for your OS? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
Tarapuz |
Posted: Mon Aug 21, 2006 2:09 am Post subject: |
|
|
Newbie
Joined: 18 Aug 2006 Posts: 8
|
What do you mean? What is the NS_LANG (LANG) ? My system is Windows 2003 SP1 and i use DB2 for ISeries on AS\400. |
|
Back to top |
|
 |
Tarapuz |
Posted: Tue Aug 22, 2006 4:56 am Post subject: |
|
|
Newbie
Joined: 18 Aug 2006 Posts: 8
|
Does anybody know how to solve this problem? jefflowrey where are you? |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Aug 22, 2006 5:08 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Usually if I don't answer in a day or two, it's because I'm ignoring the question, because it's already been answered, or the answer is easily findable.
The NLS_LANG, or LANG, or etc. are environment variables that instruct your system what national language system or language that you are using. They are mostly platform dependant, and I don't know what the correct one for Windows is.
But if you'd searched Google or here for "LANG", you might have found something that told you that, and told you what to set for your platform.
http://www.microsoft.com/globaldev/DrIntl/faqs/Locales.mspx _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
Tarapuz |
Posted: Tue Aug 22, 2006 5:50 am Post subject: |
|
|
Newbie
Joined: 18 Aug 2006 Posts: 8
|
Thank you for explain:))) But...LANG is to set default locale on UNIX Platforms and NLS_LANG variable specifies locale behavior for Oracle software. On Windows operation systems Default Locale is setting through Regional Settings control on the Windows Control Panel.
I ask you my last question hoping that you will think something new! |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Aug 22, 2006 5:55 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Is the Default Locale set on your machine?
Is the System locale set on your machine?
Is this true for the Broker user? Was it true for the broker user when the broker started up?
The only time I have seen the kinds of problems you're talking about are when either the locale/lang/etc are not in force for broker user, or when the message data is improperly tagged with the wrong CCSIDs.
I can't think of anything new without more information from you. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
Tarapuz |
Posted: Tue Aug 22, 2006 6:16 am Post subject: |
|
|
Newbie
Joined: 18 Aug 2006 Posts: 8
|
Is the Default Locale set on your machine? Yes, with proper setting!
Is the System locale set on your machine? Yes, with proper setting!
Is this true for the Broker user? Yes!
Was it true for the broker user when the broker started up? Yes!
I suppose that this problem is internal soft problem and i must ask about it to IBM Development Team!
P.S. Before Fix Packs everything was alright!!!
[/i] |
|
Back to top |
|
 |
|