Informix Error -29005: Hard DRDA protocol error. ReplyMsg[,sub-code]: ReplyMessage-codepoint[,sub-code].
Cause and resolution
Hard DRDA protocol error. ReplyMsg[,sub-code]: ReplyMessage-codepoint[,sub-code].
A DRDA protocol error caused deallocation of the conversation.
A DRDA internal Distributed Data Management (DDM) reply message (RM) was received from the application server. The message indicates that an error has occurred. The application server or possibly the application requestor (AR) detected an error.
A hexadecimal codepoint and possibly a hexadecimal sub-code are returned as a token in SQLERRM.
To interpret the hexadecimal codepoint and the hexadecimal sub-code requires DDM knowledge.
The hexadecimal codepoint is the 2-byte hexadecimal codepoint for the DDM reply message that represents the error and is one of the following:
* X'220A' -- DSCINVRM
* X'124C' -- SYNTAXRM
* X'1245' -- PRCCNVRM
* X'1218' -- MGRDEPRM
* X'1232' -- AGNPRMRM
* X'1254' -- CMDCHKRM
* X'220E' -- DTAMCHRM
* X'2202' -- QRYNOPRM
* X'220F' -- QRYPOPRM
* X'2207' -- RDBACCRM
* X'2204' -- RDBNACRM
A 2-byte hexadecimal sub-code is accompanied with the first four reason codes (DSCINVRM, SYNTAXRM, PRCCNVRM, and MGRDEPRM). In all other cases, the sub-code is zero.
When nonzero, the high-order byte of the sub-code indicates the site at which the error was detected. If the AR detects the error, it is X'01. If the application server detects the error, it is X'02'. The lower-order byte is as follows:
* Description Error Code (DSCERRCD) if reason code = DSCINVRM
* Syntax Error Code (SYNERRCD) if reason code = SYNTAXRM
* Conversational Protocol Error Code (PRCCVNCD) if reason code = PRCCNVRM
* Manager Dependency Error Code (DEPERRCD) if reason code = MGRDEPRM
Notify the DBA for assistance in analyzing the SQL statement that yielded this SQLCODE. If the error recurs, note all circumstances and contact IBM Informix Technical Support.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-29005 fires when a DRDA protocol error causes the conversation itself to be
deallocated — per the official guidance, a DRDA internal Distributed Data Management
(DDM) reply message reports the error from the application server or application
requestor. A hexadecimal codepoint (and possibly a sub-code) identifying the specific DDM
reply message is returned as a token in SQLERRM.
- A DRDA/DDM-layer error severe enough to deallocate the conversation, per the official guidance — the specific DDM reply message identifies the exact condition.
Solutions / Resolution
- Interpret the hexadecimal codepoint/sub-code using DDM protocol knowledge, per the official guidance, to identify the specific DDM reply message and its meaning.
- Reconnect and retry, per the official guidance's implication, since the conversation itself was deallocated.
Examples
N/A
No specific triggering statement is documented beyond a DDM reply-message codepoint
returned in SQLERRM.
Diagnostic Checks
- Extract the DDM reply-message codepoint/sub-code from
SQLERRM, and interpret it against the DRDA/DDM specification.
Related Errors / Related Topics
- -29004 — "DRDA protocol error. ReplyMsg[,sub-code]: ReplyMessage-codepoint[, sub-code]." A related, non-fatal DRDA/DDM protocol error, that doesn't deallocate the conversation.
A hard DRDA/DDM protocol error deallocated the conversation, identified by a codepoint in
SQLERRM — reconnect and retry after interpreting the codepoint.