Informix Error -1355: Cannot build temporary file.
Cause and resolution
Cannot build temporary file.
A TEXT or BYTE variable has been located in a temporary file using the LOCATE statement. The current statement assigns a value into that variable, so 4GL attempted to create the temporary file, but an error occurred. Possibly no disk space is available, or your account does not have permission to create a temporary file. 4GL creates a temporary file in the directory that the DBTEMP environment variable specifies. Look for operating-system error messages that might give more information. Check the value of DBTEMP. 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.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-1355 fires when a TEXT/BYTE variable located in a temporary file (via LOCATE) is being
assigned a value, and 4GL's attempt to create the temporary file fails — per the official
guidance, common causes include insufficient disk space, insufficient permissions, or DBTEMP
pointing to an inaccessible directory. DBTEMP itself is server-specific: per the official
guidance, IBM Informix SE (since Version 5.01) uses DBTEMP for this, but Dynamic Server and
OnLine Dynamic Server do not.
- Insufficient disk space, per the official guidance — the first named cause.
- Insufficient permissions to create temporary files, per the official guidance — the second named cause.
- On IBM Informix SE,
DBTEMPpointing to an inaccessible directory, per the official guidance — the third named cause, specific to SE.
Solutions / Resolution
- On IBM Informix SE, check the
DBTEMPenvironment variable setting, per the official guidance — this doesn't apply on Dynamic Server/OnLine Dynamic Server, which don't useDBTEMPfor this purpose. - Verify available disk space, per the official guidance.
- Ensure proper file creation permissions in the designated temporary directory, per the official guidance.
Examples
Checking DBTEMP and permissions (IBM Informix SE)
$ echo "$DBTEMP"
$ ls -ld "$DBTEMP"
$ df -h "$DBTEMP"
On Dynamic Server/OnLine Dynamic Server, check the server's own temp-space configuration
instead, since DBTEMP doesn't apply there.
Diagnostic Checks
- Confirm which server product is in use — on IBM Informix SE, check
DBTEMP's value and confirm the directory it points to exists, is writable, and has available space; on Dynamic Server/OnLine Dynamic Server, check the server's own temp-space configuration instead.
Related Errors / Related Topics
- -1356 — "Write error on temporary file filename." A related temp-file error, about a file that was created successfully but failed while writing.
Couldn't create the temp file for a LOCATEd TEXT/BYTE variable — check DBTEMP (SE only),
permissions, and disk space.