|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
'Unconvertable character' |
« View previous topic :: View next topic » |
Author |
Message
|
Jorge |
Posted: Thu Mar 22, 2007 6:29 am Post subject: 'Unconvertable character' |
|
|
Newbie
Joined: 06 Mar 2005 Posts: 7 Location: Johannesburg S.A
|
Hi,
Now that I got your attention, I am converting mqsi from 2.1 to v6 - yes only now!, I am getting the error above, there is a couple of dicussions on the forums on this topic but no solutions?? please find my complete error attached and help me out with a solution?
--------EXCEPTIONLIST-------
(
(0x01000000):RecoverableException = (
(0x03000000):File = '/build/S600_P/src/DataFlowEngine/ImbDataFlowNode.cpp'
(0x03000000):Line = 616
(0x03000000):Function = 'ImbDataFlowNode::createExceptionList'
(0x03000000):Type = 'ComIbmComputeNode'
(0x03000000):Name = 'LPB_CC_CINRLIBGE_REQ_NAT#FCMComposite_1_10.LPB_CC_TABLE_EXT_SUBFLOW_1#FCMComposite_1_5'
(0x03000000):Label = 'LPB_CC_CINRLIBGE_REQ_NAT.EXT_SUB_CINRLIBGE.Table_com_1'
(0x03000000):Catalog = 'BIPv600'
(0x03000000):Severity = 3
(0x03000000):Number = 2230
(0x03000000):Text = 'Node throwing exception'
(0x01000000):RecoverableException = (
(0x03000000):File = '/build/S600_P/src/DataFlowEngine/ImbRdl/ImbRdlStatementGroup.cpp'
(0x03000000):Line = 589
(0x03000000):Function = 'SqlStatementGroup::execute'
(0x03000000):Type = 'ComIbmComputeNode'
(0x03000000):Name = 'LPB_CC_CINRLIBGE_REQ_NAT#FCMComposite_1_10.LPB_CC_TABLE_EXT_SUBFLOW_1#FCMComposite_1_5'
(0x03000000):Label = 'LPB_CC_CINRLIBGE_REQ_NAT.EXT_SUB_CINRLIBGE.Table_com_1'
(0x03000000):Catalog = 'BIPv600'
(0x03000000):Severity = 3
(0x03000000):Number = 2488
(0x03000000):Text = 'Error detected, rethrowing'
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = '.LPB_CC_TABLE_EXT_SUBFLOW_1_Table_com_1.main'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = '23.1'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'SET Environment.Variables.WS_INPUT_DATA[ ] = (SELECT COLUMN(0) AS WS_MSG_ID, COLUMN(1) AS WS_SYSTEM_ID, COLUMN(2) AS WS_USER_ID, COLUMN(3) AS WS_REQ_TYPE, COLUMN(4) AS WS_BUS_REQ_TYPE, COLUMN(5) AS WS_ENV_1, COLUMN(6) AS WS_ENV_2, COLUMN(7) AS WS_ENV_3, COLUMN( AS WS_ENV_4, COLUMN(9) AS WS_ENV_5, COLUMN(10) AS WS_ENV_6, COLUMN(11) AS WS_ENV_7, COLUMN(12) AS WS_ENV_8, COLUMN(13) AS WS_ENV_9, COLUMN(14) AS WS_ENV_10, COLUMN(15) AS WS_REPLY_TO_QUEUE, COLUMN(16) AS WS_REPLY_TO_QMAN, COLUMN(17) AS WS_COMPASS_STATUS, COLUMN(1 AS WS_REQ_DATA, COLUMN(19) AS WS_ENV_ID FROM DATABASE(, SUBSTRING(Environment.Variables.JORGETESTBLOB FROM 1 FOR 24)));'
)
(0x01000000):RecoverableException = (
(0x03000000):File = '/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 = '414d51204c4d44314e574542202020200500d64520178a05'
)
(0x01000000):Insert = (
(0x03000000):Type = 2
(0x03000000):Text = '1208'
)
)
)
)
)
============================ |
|
Back to top |
|
 |
Nigelg |
Posted: Thu Mar 22, 2007 8:14 am Post subject: |
|
|
Grand Master
Joined: 02 Aug 2004 Posts: 1046
|
The erorr must mean what it says, that the source data contains a character which is not convertible to the destination code page (1208, UTF-8, Unicode).
You do not give the source code page, or the platform, but if it is on a platform where the OS provides conversion, e.g. AIX or HPUX, you could try to convert the data byte by byte to see which character it does not like.
However, this is not such a good idea. The source data is not actually string data, but bytes. It is in fact an MQ MsgId, which is not subject to conversion, so whatever the msg flow (or whatever) is doing, it should even be trying to convert it! _________________ MQSeries.net helps those who help themselves.. |
|
Back to top |
|
 |
Jorge |
Posted: Thu Mar 22, 2007 11:13 pm Post subject: reply |
|
|
Newbie
Joined: 06 Mar 2005 Posts: 7 Location: Johannesburg S.A
|
Hi Again,
I agree with you I don't know why it is trying to convert this field, I am using the correl-id as a key with wich to read a record off db2, I am attaching the sql statement(should I send this through as a passthru in v6)
I am also attaching the whole input message so you can have a look at the encoding(is there a fix pack for conversion tables?)
sql statement
SET "Environment".Variables."WS_INPUT_DATA"[] =
(SELECT A1.IN_MSG_ID AS WS_MSG_ID,
A1.IN_SYSTEM_ID AS WS_SYSTEM_ID,
A1.IN_USER_ID AS WS_USER_ID,
A1.IN_REQ_TYPE AS WS_REQ_TYPE,
A1.IN_BUS_REQ_TYPE AS WS_BUS_REQ_TYPE,
A1.IN_ENV_1 AS WS_ENV_1,
A1.IN_ENV_2 AS WS_ENV_2,
A1.IN_ENV_3 AS WS_ENV_3,
A1.IN_ENV_4 AS WS_ENV_4,
A1.IN_ENV_5 AS WS_ENV_5,
A1.IN_ENV_6 AS WS_ENV_6,
A1.IN_ENV_7 AS WS_ENV_7,
A1.IN_ENV_8 AS WS_ENV_8,
A1.IN_ENV_9 AS WS_ENV_9,
A1.IN_ENV_10 AS WS_ENV_10,
A1.IN_REPLY_TO_QUEUE AS WS_REPLY_TO_QUEUE,
A1.IN_REPLY_TO_QMAN AS WS_REPLY_TO_QMAN,
A1.IN_COMPASS_STATUS AS WS_COMPASS_STATUS,
A1.IN_REQ_DATA AS WS_REQ_DATA,
A1.IN_ENV_ID AS WS_ENV_ID
FROM Database.MQADMIN.LPB_CC_INPUT_DATA as A1
WHERE A1.IN_MSG_ID = SUBSTRING("InputRoot"."MQMD"."CorrelId" from 1 for 24));
root details
(
(0x01000000):Properties = (
(0x03000000):MessageSet = ''
(0x03000000):MessageType = ''
(0x03000000):MessageFormat = ''
(0x03000000):Encoding = 273
(0x03000000):CodedCharSetId = 819
(0x03000000):Transactional = TRUE
(0x03000000):Persistence = FALSE
(0x03000000):CreationTime = GMTTIMESTAMP '2007-03-22 13:22:36.460'
(0x03000000):ExpirationTime = GMTTIMESTAMP '2007-03-22 13:27:14.282832'
(0x03000000):Priority = 0
(0x03000000):ReplyIdentifier = X'414d51204c4d44314e574542202020200500d64520178a05'
(0x03000000):ReplyProtocol = 'MQ'
(0x03000000):Topic = NULL
(0x03000000):ContentType = ''
)
(0x01000000):MQMD = (
(0x03000000):SourceQueue = 'AQ.MQSI.GENERALNATFLOW.01'
(0x03000000):Transactional = TRUE
(0x03000000):Encoding = 273
(0x03000000):CodedCharSetId = 819
(0x03000000):Format = 'MQSTR '
(0x03000000):Version = 2
(0x03000000):Report = 0
(0x03000000):MsgType = 8
(0x03000000):Expiry = GMTTIMESTAMP '2007-03-22 13:27:14.282832'
(0x03000000):Feedback = 0
(0x03000000):Priority = 0
(0x03000000):Persistence = 0
(0x03000000):MsgId = X'414d51204c4d44314e574542202020200500d64520178a05'
(0x03000000):CorrelId = X'414d51204c4d44314e574542202020200500d64520178a05'
(0x03000000):BackoutCount = 0
(0x03000000):ReplyToQ = 'AQ.BPO.REPLYTOWEBDEV2.03 '
(0x03000000):ReplyToQMgr = 'LMD1NWEB '
(0x03000000):UserIdentifier = 'JZN1911 '
(0x03000000):AccountingToken = X'0000000000000000000000000000000000000000000000000000000000000000'
(0x03000000):ApplIdentityData = ' '
(0x03000000):PutApplType = 11
(0x03000000):PutApplName = 'WINDOWS\system32\dllhost.exe'
(0x03000000):PutDate = DATE '2007-03-22'
(0x03000000):PutTime = GMTTIME '13:22:36.460'
(0x03000000):ApplOriginData = '0000'
(0x03000000):GroupId = X'000000000000000000000000000000000000000000000000'
(0x03000000):MsgSeqNumber = 1
(0x03000000):Offset = 0
(0x03000000):MsgFlags = 0
(0x03000000):OriginalLength = -1
)
(0x01000000):BLOB = (
(0x03000000):UnknownParserName = 'MQSTR'
(0x03000000):BLOB = X'303030303030303030303032383031' |
|
Back to top |
|
 |
elvis_gn |
Posted: Thu Mar 22, 2007 11:58 pm Post subject: |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi Jorge,
Can you tell me what Fix pack you are running on currently ? Are you using JMS or simple MQInput/Output...
Can you please run the same query through database command line and paste us the output.
What language is set in your system....is the NLS_LANG set ? Are you expecting some other data than english ?
Regards. |
|
Back to top |
|
 |
Jorge |
Posted: Fri Mar 23, 2007 12:58 am Post subject: reply Elvis |
|
|
Newbie
Joined: 06 Mar 2005 Posts: 7 Location: Johannesburg S.A
|
Hi,
I'm running fixpack 3, I'm using simple mqinput and output nodes, I have no idea what language is set to on the system, Is this on the broker or config manager and where do I find it? But seeing that this is a correlation id it contains all funny characters like :
"ÃâØ@ÔØÄñ@@@@@@@@ÀîìfB"
The data is as follows extracted from db2 looks like this
"AMQ LMD1NWEB ÖE ¶","BPO ","JZN1911 ","VALIDPNO ","CINWEB ","08","05"," ","0 ","0 ","0 ","0 ","0 ","0 ","0 ","AQ.BPO.REPLYTOWEBDEV2.03 ","LMD1NWEB ","Y","000000000000001"," " |
|
Back to top |
|
 |
elvis_gn |
Posted: Fri Mar 23, 2007 1:19 am Post subject: |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi Jorge,
I see atleast one umlaut character there, and I think the unrecognizable chars could also be the Hex representation of chars from another language...
open the .profile on the Unix box and look for a LANG and NLS_LANG setting...Try setting the "export NLS_LANG=.UTF8" and see if things get fixed ...(set it or open a new command window for the setting to apply)...restart the broker...
I must say, this is the first time i'm seeing correlationId becoming unrecognizable....does this happen if MQ/MB is installed in another language ? I've never gone that far...
Regards. |
|
Back to top |
|
 |
Vitor |
Posted: Fri Mar 23, 2007 2:01 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
elvis_gn wrote: |
I must say, this is the first time i'm seeing correlationId becoming unrecognizable....does this happen if MQ/MB is installed in another language ? I've never gone that far...
|
It's a new one on me as well. I thought the whole point of msgid / correlid being byte arrays was they didn't get converted across platforms and languages....  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Jorge |
Posted: Fri Mar 23, 2007 2:14 am Post subject: |
|
|
Newbie
Joined: 06 Mar 2005 Posts: 7 Location: Johannesburg S.A
|
Hi Again,
I followed your steps but no luck yet, attached is the profile- did i do it right?, is there another I can try utf16??
$ more .profile
.profile: No such file or directory
$ cd
$ more .profile
#!/usr/bin/ksh
# Licensed Materials - Property of IBM;
# 5724-A82
# (c) Copyright IBM Corp. 2005;
# All Rights Reserved;
# US Government Users Restricted Rights - use,
# duplication or disclosure restricted by GSA
# ADP Schedule Contract with IBM Corp.;
MQSI_FILEPATH=/opt/IBM/mqsi/6.0
export MQSI_FILEPATH
MQSI_WORKPATH=/var/mqsi
export MQSI_WORKPATH
MQSI_VERSION=6.0.0.0
export MQSI_VERSION
MQSI_FAD=3
export MQSI_FAD
#to hopefully fix the encoding problem
export NLS_LANG=.UTF8
# Source the per-FAD profile to pick up any user settings
if [ -r "${MQSI_WORKPATH}/config/mqsiprofile-${MQSI_FAD}" ]; then
. ${MQSI_WORKPATH}/config/mqsiprofile-${MQSI_FAD}
fi
for SCRIPT in ${MQSI_WORKPATH}/common/profiles/*.sh; do
if [ -r "${SCRIPT}" ]; then
. ${SCRIPT}
fi
done
MQSI_REGISTRY=${MQSI_WORKPATH}
export MQSI_REGISTRY
ODBCINI=${MQSI_REGISTRY}/odbc/.odbc.ini
export ODBCINI
#ODBCINI64=${MQSI_REGISTRY}/odbc/odbc64.ini
#export ODBCINI64
PATH=${MQSI_FILEPATH}/bin:/udd001/app/mqmpap/mqsilogs/LPB/CC/DEV/bin:/udd001/app/oracle/product/8.1.7_client/bin:${PATH}:/usr/bin:/u
tl/bin:
export PATH
MQSI_LILPATH=${MQSI_FILEPATH}/lil:${MQSI_FILEPATH}/jplugin${MQSI_LILPATH:+":"${MQSI_LILPATH}}
export MQSI_LILPATH
MQSI_LILPATH64=${MQSI_FILEPATH}/lil64:${MQSI_FILEPATH}/jplugin${MQSI_LILPATH64:+":"${MQSI_LILPATH64}}
export MQSI_LILPATH64
MQSI_EXMLTCONFIGPATH=${MQSI_FILEPATH}/exmltConfig
export MQSI_EXMLTCONFIGPATH
LD_LIBRARY_PATH=${MQSI_FILEPATH}/lib:${MQSI_FILEPATH}/bin:/opt/IBM/AgentController/lib:${MQSI_FILEPATH}/merant/lib:${MQSI_FILEPATH}/
jre/lib/sparc/server:${MQSI_FILEPATH}/jre/lib/sparc:${MQSI_FILEPATH}/xml4c/lib:/udd001/app/oracle/product/8.1.7_client/lib:${LD_LIBR
ARY_PATH}
export LD_LIBRARY_PATH
MQSI_LIBPATH64=/opt/mqm/lib64:${MQSI_FILEPATH}/DD64/lib:${MQSI_FILEPATH}/jre/lib/sparcv9/server:${MQSI_FILEPATH}/jre/lib/sparcv9:${M
QSI_FILEPATH}/xml4c/lib64
export MQSI_LIBPATH64
NLSPATH=${MQSI_FILEPATH}/messages/%L/%N:${MQSI_FILEPATH}/messages/En_US/%N:${NLSPATH}
export NLSPATH
MQSI_JARPATH=${MQSI_FILEPATH}/classes:${MQSI_FILEPATH}/messages${MQSI_JARPATH:+":"${MQSI_JARPATH}}
export MQSI_JARPATH
MQSI_CATALINA_HOME=${MQSI_FILEPATH}/catalina
export MQSI_CATALINA_HOME
DISTHUB_PATH=${MQSI_FILEPATH}
export DISTHUB_PATH
MQSI_DEVELOPMENT=${MQSI_REGISTRY}/registry
export MQSI_DEVELOPMENT
CLASSPATH=${MQSI_FILEPATH}/classes/derby.jar:${MQSI_FILEPATH}/classes/ConfigManagerProxy.jar:${MQSI_FILEPATH}/classes/configutil.jar
:/opt/mqm/java/lib/com.ibm.mq.jar:/opt/mqm/java/lib/connector.jar:${MQSI_FILEPATH}/messages:${CLASSPATH}
export CLASSPATH
LD_LIBRARY_PATH=/opt/mqm/java/lib:${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH
# the below was added as part of the v6 upgrade
#TWO_TASK=PAPDSTG
TWO_TASK=papdev
export TWO_TASK
ORACLE_HOME=/udd001/app/oracle/product/8.1.7_client
export ORACLE_HOME
TNS_ADMIN=/udd001/app/oracle/product/8.1.7_client/network/admin; export TNS_ADMIN
#The following three lines have been added by the UDB DB2.
if [ -f /udd001/app/db2/inst1/sqllib/db2profile ]; then
. /udd001/app/db2/inst1/sqllib/db2profile
fi
echo
echo MQSI $MQSI_VERSION
echo $MQSI_FILEPATH
echo
$
$
$
 |
|
Back to top |
|
 |
fjb_saper |
Posted: Fri Mar 23, 2007 2:52 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Here is your problem:
Quote: |
WHERE A1.IN_MSG_ID = SUBSTRING("InputRoot"."MQMD"."CorrelId" from 1 for 24)) |
CorrelId is a byte[] and NOT A STRING!!!!  _________________ MQ & Broker admin |
|
Back to top |
|
 |
Vitor |
Posted: Fri Mar 23, 2007 3:01 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
I so need to get these glasses checked......  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Jorge |
Posted: Fri Mar 23, 2007 3:06 am Post subject: |
|
|
Newbie
Joined: 06 Mar 2005 Posts: 7 Location: Johannesburg S.A
|
Hi Again,
Okay I got all exited, but to no avail guys thanks for the help here so far but I have tried the solution but still the problem persists, the code was working in version 2.1
This is the exception list with the modified code..(withought the substring)
'SET Environment.Variables.WS_INPUT_DATA[ ] = (SELECT COLUMN(0) AS WS_MSG_ID, COLUMN(1) AS WS_SYSTEM_ID,
COLUMN(2) AS WS_USER_ID, COLUMN(3) AS WS_REQ_TYPE, COLUMN(4) AS WS_BUS_REQ_TYPE, COLUMN(5) AS WS_ENV_1, COLUMN(6) AS WS_ENV_2, COLU
MN(7) AS WS_ENV_3, COLUMN( AS WS_ENV_4, COLUMN(9) AS WS_ENV_5, COLUMN(10) AS WS_ENV_6, COLUMN(11) AS WS_ENV_7, COLUMN(12) AS WS_EN
V_8, COLUMN(13) AS WS_ENV_9, COLUMN(14) AS WS_ENV_10, COLUMN(15) AS WS_REPLY_TO_QUEUE, COLUMN(16) AS WS_REPLY_TO_QMAN, COLUMN(17) AS
WS_COMPASS_STATUS, COLUMN(1 AS WS_REQ_DATA, COLUMN(19) AS WS_ENV_ID FROM DATABASE(, InputRoot.MQMD.CorrelId));'
)
(0x01000000):RecoverableException = (
(0x03000000):File = '/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 = '414d51204c4d44314e574542202020200500d6452017bf03'
)
(0x01000000):Insert = (
(0x03000000):Type = 2
(0x03000000):Text = '1208'
 |
|
Back to top |
|
 |
fjb_saper |
Posted: Fri Mar 23, 2007 3:12 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
AGAIN THIS won't work
you are treating the msgid and correlid as a String where as they are byte[24]. What is displayed is a hex representation of the byte[] on 48 characters. But the broker correctly treats them as byte[]. And as such the values of some of the bytes are outside the allowed values for UTF-8.
YOU HAVE A DESIGN FLAW. Correct it.  _________________ MQ & Broker admin |
|
Back to top |
|
 |
elvis_gn |
Posted: Fri Mar 23, 2007 3:14 am Post subject: |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi Jorge,
Who inserted the value into the table ? I think that is not inserted correctly into the table...
I remember there was a PMR fix for some DB2 conversion problem...
Just to make sure that the problem is the correlId value, could you not pick that value from table and see if things run ok...I still don't believe that correlId could be "Unconvertable"...
Regards. |
|
Back to top |
|
 |
Jorge |
Posted: Fri Mar 23, 2007 3:26 am Post subject: |
|
|
Newbie
Joined: 06 Mar 2005 Posts: 7 Location: Johannesburg S.A
|
Hi,
Who is this fjb_saper??, your not helping, This is a existing system that works well, there is no design flaw. There is a fixpack IC49793, I have asked our IBM rep to provide download details and will let you guys the outcome of this.
Elvis I insert the record, Strange the insert works but later in the retrieval the select fails, once I get the fixpack downloaded I'll give you feedback. |
|
Back to top |
|
 |
Vitor |
Posted: Fri Mar 23, 2007 3:45 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Jorge wrote: |
Who is this fjb_saper??, your not helping |
He's one of the more experienced people on the board and he's right about trying to treat the id byte arrays as character. It tends not to work too well.
Jorge wrote: |
This is a existing system that works well, there is no design flaw. |
You said in your first post you were migrating from v2.1 to v6. Do you not therefore mean "it works well under v2.1"? Is it possible that it's one of those poorly documented (or not documented) little changes where v2.1 allows certain slightly odd things to be done, but v6 has tightened the rules? We encountered a number of such potholes in the road migrating our flows...  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
|
|
 |
Goto page 1, 2 Next |
Page 1 of 2 |
|
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
|
|
|
|