|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Conversion problem in database select in WMB6 |
« View previous topic :: View next topic » |
Author |
Message
|
Magnus_A |
Posted: Tue Jul 11, 2006 4:48 am Post subject: Conversion problem in database select in WMB6 |
|
|
 Newbie
Joined: 04 Jul 2005 Posts: 3 Location: Lund - Sweden
|
Hi!
I got a problem with conversion when issuing a select statement in my broker.
The broker environment looks like this:
- WMB 6.0.0.1
- WMQ 6.0.0
- DB2 8.2
Running on Win 2003 Server Enterprise Edition
Both WMQ and the DB uses CCSID 1252. A column in the DB contains the value ö (HEX d6). When the broker gets the resultset from the DB it tries to convert it and doesn't succeed. For some reason the broker tries to convert it using CCSID 1208, I do not know where this value is coming from, could it be from the user that runs the broker service?
I'm also attaching some parts of errorlogs and traces that might help in understanding my problem.
ExceptionList:
(
(0x01000000):RecoverableException = (
(0x03000000):File = 'F:\build\S600_P\src\DataFlowEngine\ImbComputeNode.cpp'
(0x03000000):Line = 464
(0x03000000):Function = 'ImbComputeNode::evaluate'
(0x03000000):Type = 'ComIbmComputeNode'
(0x03000000):Name = 'Test#FCMComposite_1_3'
(0x03000000):Label = 'Test.Compute'
(0x03000000):Catalog = 'BIPv600'
(0x03000000):Severity = 3
(0x03000000):Number = 2230
(0x03000000):Text = 'Caught exception and rethrowing'
(0x01000000):RecoverableException = (
(0x03000000):File = 'F:\build\S600_P\src\DataFlowEngine\ImbRdl\ImbRdlStatementGroup.cpp'
(0x03000000):Line = 589
(0x03000000):Function = 'SqlStatementGroup::execute'
(0x03000000):Type = 'ComIbmComputeNode'
(0x03000000):Name = 'Test#FCMComposite_1_3'
(0x03000000):Label = 'Test.Compute'
(0x03000000):Catalog = 'BIPv600'
(0x03000000):Severity = 3
(0x03000000):Number = 2488
(0x03000000):Text = 'Error detected, rethrowing'
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = '.Test_Compute.Main'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = '10.3'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'SET OutputRoot.XML.OUTPUTDATA.SFA0DUAL[ ] = DEFAULTPASSTHRU('SELECT PIN, NUMMER,VLO,INH, INHA, INHP, INHP FROM DUAL WHERE SPIN = ?', SPIN);'
)
(0x01000000):RecoverableException = (
(0x03000000):File = 'F:\build\S600_P\src\CommonServices\ImbConverter.cpp'
(0x03000000):Line = 516
(0x03000000):Function = 'ImbConverterCPP::internalToUnicode'
(0x03000000):Type = ''
(0x03000000):Name = ''
(0x03000000):Label = ''
(0x03000000):Catalog = 'BIPv600'
(0x03000000):Severity = 3
(0x03000000):Number = 2135
(0x03000000):Text = 'Unconvertable character'
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'd6'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = '414c564553204dd6424c455220414b544945424f4c414720202020202020202020202020'
)
(0x01000000):Insert = (
(0x03000000):Type = 2
(0x03000000):Text = '1208'
)
)
)
)
);
2006-07-11 14:31:13.227107 3608 UserTrace BIP2537I: Node 'Test.Compute': Executing statement ''SET OutputRoot.XML.OUTPUTDATA.SFA0DUAL[ ] = DEFAULTPASSTHRU('SELECT PIN, NUMMER,VLO,INH, INHA, INHP, INHP FROM DUAL WHERE SPIN = ?', SPIN);'' at ('.Test_Compute.Main', '10.3').
2006-07-11 14:31:13.227128 3608 UserTrace BIP2538I: Node 'Test.Compute': Evaluating expression ''DEFAULTPASSTHRU('SELECT PIN, NUMMER,VLO,INH, INHA, INHP, INHP FROM DUAL WHERE SPIN = ?', SPIN)'' at ('.Test_Compute.Main', '10.60').
2006-07-11 14:31:15.391616 3608 UserTrace BIP2539I: Node 'Test.Compute': Evaluating expression ''SPIN'' at ('.Test_Compute.Main', '10.235'). This resolved to ''SPIN''. The result was '''5561335984'''.
2006-07-11 14:31:15.391648 3608 UserTrace BIP2544I: Node 'Test.Compute': Executing database SQL statement ''SELECT PIN, NUMMER,VLO,INH, INHA, INHP, INHP FROM DUAL WHERE SPIN = ?'' derived from ('.Test_Compute.Main', '10.60'); expressions ''SPIN''; resulting parameter values '''5561335984'''.
2006-07-11 14:31:15.398173 3608 UserTrace BIP2562I: Node 'Test.Compute': Assigning a list to ''OutputRoot.XML.OUTPUTDATA.SFA0DUAL[]''.
2006-07-11 14:31:15.398595 3608 UserTrace BIP2231E: Error detected whilst processing a message in node 'Test.MQInput'.
The message broker detected an error whilst processing a message in node 'Test.MQInput'. The message has been augmented with an exception list and has been propagated to the node's failure terminal for further processing.
See the following messages for details of the error.
2006-07-11 14:31:15.398607 3608 RecoverableException BIP2230E: Error detected whilst processing a message in node 'Test.Compute'.
The message broker detected an error whilst processing a message in node 'Test.Compute'. An exception has been thrown to cut short the processing of the message.
See the following messages for details of the error.
2006-07-11 14:31:15.398616 3608 RecoverableException BIP2488E: ('.Test_Compute.Main', '10.3') Error detected whilst executing the SQL statement ''SET OutputRoot.XML.OUTPUTDATA.SFA0DUAL[ ] = DEFAULTPASSTHRU('SELECT PIN, NUMMER,VLO,INH, INHA, INHP, INHP FROM DUAL WHERE SPIN = ?', SPIN);''.
The message broker detected an error whilst executing the given statement. An exception has been thrown to cut short the SQL program.
See the following messages for details of the error.
2006-07-11 14:31:15.398631 3608 RecoverableException BIP2135E: Source character ''d6'' in field ''414c564553204dd6424c455220414b544945424f4c414720202020202020202020202020'' 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.
If there's anyone who has the slightest idea what my problem is please say so, I would really appreciate it.
... Magnus_A _________________ To be able to cut corners with a full throttle you have to believe that you're riding a one-way road. |
|
Back to top |
|
 |
elvis_gn |
Posted: Tue Jul 11, 2006 5:18 am Post subject: Re: Conversion problem in database select in WMB6 |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi Magnus_A,
Magnus_A wrote: |
I do not know where this value is coming from, could it be from the user that runs the broker service? |
Check the Input message properties folder...it should be coming from there.
You need to do a cast to the encoding which understands these characters...search the forun or google, you should find some sample.
Regards. |
|
Back to top |
|
 |
Magnus_A |
Posted: Tue Jul 11, 2006 5:35 am Post subject: |
|
|
 Newbie
Joined: 04 Jul 2005 Posts: 3 Location: Lund - Sweden
|
Sorry but I should have put my input data in the first post also.
This is how the inputdata looks:
Root:
(
(0x01000000):Properties = (
(0x03000000):MessageSet = ''
(0x03000000):MessageType = ''
(0x03000000):MessageFormat = ''
(0x03000000):Encoding = 546
(0x03000000):CodedCharSetId = 437
(0x03000000):Transactional = FALSE
(0x03000000):Persistence = FALSE
(0x03000000):CreationTime = GMTTIMESTAMP '2006-07-11 12:31:13.230'
(0x03000000):ExpirationTime = -1
(0x03000000):Priority = 0
(0x03000000):ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
(0x03000000):ReplyProtocol = 'MQ'
(0x03000000):Topic = NULL
(0x03000000):ContentType = ''
)
(0x01000000):MQMD = (
(0x03000000):SourceQueue = 'MAGNUS.TEST.IN'
(0x03000000):Transactional = FALSE
(0x03000000):Encoding = 546
(0x03000000):CodedCharSetId = 437
(0x03000000):Format = ' '
(0x03000000):Version = 2
(0x03000000):Report = 0
(0x03000000):MsgType = 8
(0x03000000):Expiry = -1
(0x03000000):Feedback = 0
(0x03000000):Priority = 0
(0x03000000):Persistence = 0
(0x03000000):MsgId = X'414d51204e4953303031202020202020bf91b34420002605'
(0x03000000):CorrelId = X'000000000000000000000000000000000000000000000000'
(0x03000000):BackoutCount = 0
(0x03000000):ReplyToQ = ' '
(0x03000000):ReplyToQMgr = 'NIS001 '
(0x03000000):UserIdentifier = 'E139_s_nis '
(0x03000000):AccountingToken = X'16010515000000d5cb5c581ae87b5607e53b2b00b80c0000000000000000000b'
(0x03000000):ApplIdentityData = ' '
(0x03000000):PutApplType = 11
(0x03000000):PutApplName = ':\IBM\RFH Util 4\rfhutil.exe'
(0x03000000):PutDate = DATE '2006-07-11'
(0x03000000):PutTime = GMTTIME '12:31:13.230'
(0x03000000):ApplOriginData = ' '
(0x03000000):GroupId = X'000000000000000000000000000000000000000000000000'
(0x03000000):MsgSeqNumber = 1
(0x03000000):Offset = 0
(0x03000000):MsgFlags = 0
(0x03000000):OriginalLength = -1
)
(0x01000000):BLOB = (
(0x03000000):UnknownParserName = ''
(0x03000000):BLOB = X'4c69746520696e64617461206b6f6d6d65722068e472'
)
);
As you see the CCSID is not 1208.
The mb flow and code and the database is a part of a migration project from a WMQI 2.1 environment that I am involved in. In the old environment this is working fine with the same test data as above. I.e. the CCSID in Properties deosn't seem to affect conversion of the database query in that environment nor in the new one.
... Magnus_A _________________ To be able to cut corners with a full throttle you have to believe that you're riding a one-way road. |
|
Back to top |
|
 |
elvis_gn |
Posted: Tue Jul 11, 2006 6:01 am Post subject: |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi Magnus_A,
Magnus_A wrote: |
As you see the CCSID is not 1208. |
Use the debugger and once u come to the Compute where u are doing this select, check the properties folder...Seeing is believing
Magnus_A wrote: |
The mb flow and code and the database is a part of a migration project from a WMQI 2.1 environment that I am involved in. In the old environment this is working fine with the same test data as above. I.e. the CCSID in Properties deosn't seem to affect conversion of the database query in that environment nor in the new one. |
This makes me feel more confidant that the above is the error...why don't you prove me wrong, then we'll think of other ideas thx.
Regards. |
|
Back to top |
|
 |
Magnus_A |
Posted: Tue Jul 11, 2006 10:47 pm Post subject: |
|
|
 Newbie
Joined: 04 Jul 2005 Posts: 3 Location: Lund - Sweden
|
Hi again!
Nope ... when I looked at the Properties folder in the debugger inside the compute node that is executing the select and it has the same values as my trace above.
Don't know where to go from here, I've been struggeling with this for some time now.
Any more ideas?
... Magnus_A _________________ To be able to cut corners with a full throttle you have to believe that you're riding a one-way road. |
|
Back to top |
|
 |
jonasb |
Posted: Wed Dec 20, 2006 7:43 am Post subject: I have the exact same problem |
|
|
Apprentice
Joined: 20 Dec 2006 Posts: 49 Location: Sweden
|
Hi,
Magnus_A or anyone else, did you solve this problem? Does anyone have
any more pointers? I have the same problem, see below.
Kind Regards,
contact admin
When a SELECT is executed to the application db and the result holds a swedish character å,ä or ö, I get the following error:
<RecoverableException>
<File>F:\build\S600_P\src\CommonServices\ImbConverter.cpp</File>
<Line>516</Line>
<Function>ImbConverterCPP::internalToUnicode</Function>
<Type/>
<Name/>
<Label/>
<Catalog>BIPv600</Catalog>
<Severity>3</Severity>
<Number>2135</Number>
<Text>Unconvertable character</Text>
<Insert>
<Type>5</Type>
<Text>e5</Text>
</Insert>
<Insert>
<Type>5</Type>
<Text>5374e5656e6465</Text>
</Insert>
<Insert>
<Type>2</Type>
<Text>1208</Text>
</Insert>
***
What is needed for either the Broker to use another codepage than 1208
OR to convert the data to 1208 before it hits the broker?
***
The environment:
Broker (6.0.0.3) running of Windows and the broker configuration database (db2) running on the same box.
Application database (also db2, codeset ISO8859-1) running on AIX. _________________ contact admin |
|
Back to top |
|
 |
Yaroslav |
Posted: Thu Dec 21, 2006 12:30 am Post subject: |
|
|
Novice
Joined: 28 Sep 2006 Posts: 12 Location: Russia
|
Hi, Magnus_A!
We had similar problem: If result of SELECT contained national character(local RU), then raised same exception.
Configuration:
- WMB 6.0.0.0
- WMQ 5.3
- DB2 for AS400(V5R3)
After upgrate WMB to 6.0.0.1 the problem didn't solve.
Our administrator sent problem to IBM.They create special hot fix for us, that replace MessageServices.dll. This fix solved the problem.
I think, you need to open a PMR. _________________ IBM Certified Solution Designer WebSphere MQ V6.0
IBM Certified Solution Developer WebSphere Message Broker V6.0 |
|
Back to top |
|
 |
j.f.sorge |
Posted: Fri Jan 16, 2009 10:01 am Post subject: |
|
|
Master
Joined: 27 Feb 2008 Posts: 218
|
Yaroslav wrote: |
They create special hot fix for us, that replace MessageServices.dll. |
Do you have to APAR number (or something similar) for this fix? _________________ IBM Certified Solution Designer - WebSphere MQ V6.0
IBM Certified Solution Developer - WebSphere Message Broker V6.0
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0 |
|
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
|
|
|
|