Informix Error -229
-229 Could not open or create a temporary file.
The database server cannot create a temporary disk file. The file should be created in the directory that the DBTEMP environment variable specifies (or /tmp by default on UNIX systems). Check the accompanying ISAM error code and look for operating-system error messages that might give more information. Possibly your account does not have write permission in that directory, or the disk is full. Since Version 5.01, the IBM Informix SE database server uses the DBTEMP environment variable, but IBM Informix Dynamic Server and IBM Informix OnLine Dynamic Server do not.
On a UNIX system, try increasing the maximum number of open files (NFILES parameter on some systems) to approximately 400.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-229 is the more general version of -221 — not scoped to creating a new table specifically, but any failure to open or create a temporary file. Same underlying causes apply, plus one additional, specific one the official text calls out: an OS-level open-file limit.
- Disk space or permission issues in the
DBTEMP-specified (or default/tmp) directory — the same causes as -221. - Product-specific configuration confusion —
DBTEMPapplies to IBM Informix SE (since Version 5.01); Dynamic Server and OnLine Dynamic Server don't use it at all, usingDBSPACETEMPinstead (see -179/-199). - An OS-level open-file-descriptor limit set too low. The official text specifically
recommends increasing the maximum number of open files (the
NFILESparameter on some systems) to approximately 400 — a distinct cause from disk space or permissions, and one worth checking explicitly rather than assuming it's always a space issue.
Solutions / Resolution
- Check the accompanying ISAM error code and OS-level error messages, per the official guidance.
- Check disk space and permissions in the relevant temp directory, the same as -221.
- On UNIX systems, try increasing the maximum number of open files (
NFILESor the equivalent OS-level limit) to approximately 400, per the official guidance — this is a distinct fix worth trying when space and permissions both check out. - Confirm which product is in use (
DBTEMPfor SE,DBSPACETEMPfor Dynamic Server/OnLine Dynamic Server) before assuming the wrong configuration mechanism applies.
Examples
Checking the open-file limit
ulimit -n
-- if this is set low (e.g. 64 or 256), raise it toward 400 or higher
ulimit -n 1024
The usual space/permissions check
df -h /tmp
ls -ld /tmp
Diagnostic Checks
- Check the accompanying ISAM error code.
- Check disk space and permissions in the relevant temp directory.
- Check the OS-level open-file limit (
ulimit -nor the equivalent) if space and permissions both look fine. - Confirm which product is in use to know which configuration variable actually applies.
Related Errors / Related Topics
- -221 — "Cannot build temporary file for new table table-name." The closest sibling — the same underlying condition, scoped specifically to new-table creation rather than temp files in general.
- -179 — "ISAM error: No free disk space for sort." Related
DBSPACETEMPconfiguration topic for Dynamic Server products.
If disk space and permissions both check out, check the OS-level open-file limit next — that's the specific additional cause this error's own guidance calls out.