Topic
2 replies Latest Post - ‏2009-05-05T17:23:23Z by SystemAdmin
SystemAdmin
SystemAdmin
4179 Posts
ACCEPTED ANSWER

Pinned topic [ODBC]String data, right truncated

‏2006-03-22T19:59:03Z |
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.

Thanks,

Jeff
Updated on 2009-05-05T17:23:23Z at 2009-05-05T17:23:23Z by SystemAdmin
  • SystemAdmin
    SystemAdmin
    4179 Posts
    ACCEPTED ANSWER

    Re: [ODBC]String data, right truncated

    ‏2006-03-23T17:00:26Z  in response to SystemAdmin
    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.
  • SystemAdmin
    SystemAdmin
    4179 Posts
    ACCEPTED ANSWER

    Re: [ODBC]String data, right truncated

    ‏2009-05-05T17:23:23Z  in response to SystemAdmin
    I am facing similar issue.
    Did this gets resolved ?