Informix Error -959: The current transaction has been rolled back due to an internal error.
Cause and resolution
The current transaction has been rolled back due to an internal error.
A server thread associated with your session has been suspended, most likely because of a serious internal error. Evidence about the problem has been gathered and written to an Assertion Failure file, and your online log should contain more information. Contact IBM Informix Technical Support and provide them with your Assertion Failure file.
Before suspending the session thread, the server attempted to roll back all work performed by the current transaction. Your connection to the server may also have been broken, depending on the type of thread that was suspended. At a minimum you will have to begin a new transaction.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-959 fires when a server thread associated with the session is suspended, most likely due to a serious internal error — per the official guidance, the server captures diagnostic evidence to an Assertion Failure file and its online log, and rolls back the current transaction before suspending the thread.
- A serious internal server condition (an assertion failure) affecting the thread handling the session, per the official guidance — the direct, named cause.
- The connection possibly broken entirely, per the official guidance, depending on which type of thread was suspended.
Solutions / Resolution
- Contact IBM Informix Technical Support and provide them with your Assertion Failure file, per the official guidance — this is the documented, primary resolution path.
- Check the online log for more information, per the official guidance, alongside the Assertion Failure file.
- Begin a new transaction, per the official guidance — at minimum, this is required, since the current one was already rolled back and the session thread suspended.
- Reconnect if necessary, per the official guidance's note that the connection itself may have broken.
Examples
Locating the Assertion Failure file
$ grep -i MSGPATH "$ONCONFIG"
MSGPATH /informix/tmp/online.log
$ tail -100 /informix/tmp/online.log
The Assertion Failure file itself is typically written alongside the online log (commonly under
$INFORMIXDIR/tmp or a configured alarm directory) with a name that includes the date and time
of the failure; the online log entry for the incident will reference it.
Locate both the online log (per MSGPATH in $ONCONFIG) and the Assertion Failure file for the
incident.
Diagnostic Checks
- Locate the Assertion Failure file and the online log (via
MSGPATHin$ONCONFIG) for the incident. - Check whether the connection itself broke, and reconnect if so.
- Begin a new transaction for any work that needs to continue.
Related Errors / Related Topics
No closely related error codes are cross-referenced for -959 in this set yet.
A serious internal server error — locate the Assertion Failure file and online log, and provide them to IBM Informix Technical Support; begin a new transaction (and reconnect if needed).