Running MQ Broker 5.x, ORACLE 9.2.x.x
A message flow produces an error "ODBCString data, right truncated" SOMETIMES when calling a stored procedure. The procedure returns a cursor to result set with a single 1004 varchar2 field, usually only a few rows (1 - 4). Repeating the same call, with the same input data, can work REPEATEDLY for several minutes, and then stop working, throwing an exeception which traces to the described error. I've tried breaking up the return field to several separate fields. It didn't improve at all. Stopping the MQBroker service and then restarting seems to alleviate the problem for a little while (I'm assuming the existing connections to the database are terminated, and then reinitialized, clearing up any problem). The problem can persist for a while, and then stop occurring and the working.
This method of calling stored procedures (in the same database no less!) is used in several different flows without a single occurrence of this problem. The only "difference" is the size of the result field that is passed back.
I don't necessarily think this is a problem directly related to Broker, but I'm wondering if anybody has encountered it before, and how it was resolved.
Any input is appreciated.
Pinned topic [ODBC]String data, right truncated
Answered question This question has been answered.
Unanswered question This question has not been answered yet.
Updated on 2009-05-05T17:23:23Z at 2009-05-05T17:23:23Z by SystemAdmin
Re: [ODBC]String data, right truncated2006-03-23T17:00:26ZThis is the accepted answer. This is the accepted answer.Hi Jeff,
There is no one definitive answer to this question.
Typically, the Oracle error message "String data, right truncated" tells us that the length of
the data passed from the Message Broker application to the database is greater than the length
of the column that has been returned by the SQLDescribeParam ODBC API call.
However, in practise there are several possible causes, including (but not limited to) :
1. Data being inserted into a column is larger than the column definition.
2. Data contains wide characters
3. Oracle TO_DATE() function, but which is not the last parameter
4. Oracle 8 Client connecting to an Oracle 9 Server
>> The only "difference" is the size of the result field that is passed back.
This could be the cause, but we would need to investigate this further.
>> A message flow produces an error "ODBCString data, right truncated"
This is not the full error message. I would have expected something along the lines of :
Error Text 'DataDirectODBC Oracle driver String data, right truncated. Error in parameter ?.'
This error message suggests you have not configured Message Broker to use the correct driver, namely
MQSeries DataDirect Technologies 4.10 32-BIT Oracle Driver
The best way to resolve this would be to open a PMR with the IBM Support team as there are too many
possibilities here. We would need more details about your system, stored procedure, data and ODBC traces.
Let me know what the PMR number is, if you open one.