Informix Error -238
-238 Cannot commit work.
The database server cannot execute a COMMIT WORK statement. Check the accompanying ISAM error code for more information. A problem probably exists in accessing the transaction log.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-238 is the direct sibling of -237, at commit time instead of begin time: a COMMIT WORK
statement failed, most likely due to a problem accessing the transaction log.
- A problem accessing the transaction log — the officially named probable cause, potentially any of the specific conditions covered by -118, -120, -121, or -224.
- The accompanying ISAM error code identifies exactly which specific log-access problem is occurring — this generic wrapper needs that companion code to diagnose properly.
- The log filling or becoming unavailable mid-transaction, between when the transaction began successfully and when it tried to commit.
Solutions / Resolution
- Check the accompanying ISAM error code first, per the official guidance.
- Address whichever specific log-access problem is named, using that code's own guidance elsewhere in this catalogue.
- Treat this with urgency — a transaction that can't commit may need to be rolled back and retried once the underlying log issue is resolved, and leaving it hanging risks holding locks and transaction-table slots (see -134/-190) longer than necessary.
Examples
Checking the accompanying code first
-- The specific ISAM error code accompanying -238 determines the fix:
-- -120/-224: log file can't be opened — check path, permissions, existence
-- -118/-121: log file exists but has a read/write problem — check hardware, space
Diagnostic Checks
- Check the accompanying ISAM error code.
- Check transaction log file status and accessibility, per -120/-224's diagnostic steps.
Related Errors / Related Topics
- -237 — "Cannot begin work." The direct sibling — same log-access family, at the opposite end of a transaction's lifecycle.
- -224 — "Cannot open transaction log file." A likely accompanying cause.
Check the accompanying ISAM error code before anything else — -238 alone only says COMMIT WORK
failed, not why.