I get "ORA-02055: distributed update operation failed; rollback required" when using the 64-bit version of DG4ODBC. What can I do?

The full text of the error reported to us was:

ORA-28511: lost RPC connection to
heterogeneous remote agent using SID=ORA-28511: lost RPC connection to
heterogeneous remote agent using
SID=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost)
(PORT=myport))(CONNECT_DATA=(SID=mysid)))

ORA-02055: distributed update operation
failed; rollback required

ORA-02063: preceding lines from
ERP_TO_FLEXNET

ORA-06512: at line 6

The root cause of the error was that the 64-bit version of DG4ODBC was writing to a SQLUINTEGER instead of a SQLULEN (as required by the ODBC specification) in a SQLGetStmtAttr call.

To work around this:

  1. Upgrade your SQL Server ODBC driver to the latest version.
  2. Install this version of the SQL Server ODBC driver on your DG4ODBC machine.
  3. Add the following line to your SQL Server ODBC driver data source:
    OVERRIDE = 8192

    (Or, if you have an existing OVERRIDE setting, add 8192 to your OVERRIDE attribute value.)

  4. Restart your Oracle listener.