Informix Error -29004: DRDA protocol error. ReplyMsg[,sub-code]: ReplyMessage-codepoint[,sub-code].
Cause and resolution
DRDA protocol error. ReplyMsg[,sub-code]: ReplyMessage-codepoint[,sub-code].
A DRDA protocol error prevents the successful execution of the current SQL statement. This error will not affect the successful execution of subsequent SQL statements.
A DRDA internal Distributed Data Management (DDM) reply message (RM) was received from the application server. That 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, you need 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'1254' -- CMDCHKRM
* X'220E' -- DTAMCHRM
* X'2202' -- QRYNOPRM
* X'220F' -- QRYPOPRM
* X'2207' -- RDBACCRM
* X'2204' -- RDBNACRM
The first three reason codes (DSCINVRM, SYNTAXRM, and PRCCNVRM) accompany a 2-byte hexadecimal sub-code. 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
Contact 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
-29004 fires when a DRDA internal Distributed Data Management (DDM) reply message reports
an error from the application server or application requestor — per the official
guidance, this error doesn't prevent subsequent SQL statements from succeeding. A
hexadecimal codepoint (and possibly a sub-code) identifying the specific DDM reply message
(e.g. DSCINVRM, SYNTAXRM, PRCCNVRM, CMDCHKRM, DTAMCHRM, QRYNOPRM, QRYPOPRM,
RDBACCRM, among others) is returned as a token in SQLERRM.
- A DRDA/DDM-layer error reported by the application server or requestor, 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.
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
- -29005 — "Hard DRDA protocol error. ReplyMsg[,sub-code]: ReplyMessage-codepoint[, sub-code]." A related DRDA/DDM protocol error, where the conversation is deallocated rather than merely failing the current statement.
A DRDA/DDM protocol error occurred, identified by a codepoint in SQLERRM — interpret it
against DDM protocol documentation; subsequent statements aren't affected.