Informix Error -199
-199 ISAM error: Dbspace is full.
The dbspace is full. If you are adding a logical log through onparams, there is not enough space in the dbspace for a log of the size specified. This error also occurs if you attempt to create a temporary table with log (the default log setting for temporary tables) when the DBSPACETEMP variable in ONCONFIG is set to TEMP or NOTCRITICAL.
To add the logical log, either add one or more chunks to the dbspace or specify a smaller log size.
To create temporary tables, either set DBSPACETEMP to ALL or create temporary tables with no log.
-199 Smart Disk Error.
An error has occurred with the Smart Disk system. For more information, see the accompanying message.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-199 covers two specific, named scenarios — worth telling apart, since the fix differs between them.
- Adding a logical log via
onparamsto a dbspace without enough space for the specified log size. A genuine capacity issue specific to the target dbspace for logs — the dbspace may be perfectly fine for other purposes but not sized for the log being added. - Creating a temporary table with logging (the default log setting for temporary tables)
when
DBSPACETEMPinONCONFIGis set toTEMPorNOTCRITICAL. These specificDBSPACETEMPsettings restrict how logged temporary tables can be placed, and hitting this configuration state produces "dbspace is full" here, distinct from the logical-log scenario above. - A dbspace originally provisioned without accounting for a planned logical log addition — sized for its existing contents, not for the log size intended later.
DBSPACETEMPconfigured without accounting for a workload that needs logged temporary tables — a setting that made sense for one workload pattern not matching what a different or evolved workload actually needs.
Solutions / Resolution
For the logical log scenario:
- Add one or more chunks to the dbspace to provide enough space for the log, or
- Specify a smaller log size when adding the log via
onparams.
For the temporary table scenario:
- Set
DBSPACETEMPtoALL, allowing logged temporary tables to use all configured temporary dbspaces, or - Create temporary tables with no log instead of relying on the default logged behavior:
CREATE TEMP TABLE tmp_data (id INT) WITH NO LOG;
More generally:
- Plan dbspace capacity in advance of any planned logical log addition, accounting for the specific log size intended.
- Review
DBSPACETEMPconfiguration against actual application needs — confirm whether the workload genuinely requires logged temporary tables, and adjust the setting deliberately rather than hitting this reactively.
Examples
Adding a logical log with insufficient space
onparams -a -d dbspace1 -s 50000
-- -199: dbspace1 doesn't have enough free space for a 50MB log
Fix — either add a chunk:
onspaces -a dbspace1 -p /dev/newchunk -o 0 -s 100000
or specify a smaller log size:
onparams -a -d dbspace1 -s 10000
Temp table logging vs. DBSPACETEMP setting
# ONCONFIG
DBSPACETEMP NOTCRITICAL
CREATE TEMP TABLE tmp_report (id INT, total DECIMAL(10,2));
-- default logging on temp tables; -199 given the DBSPACETEMP mode
Fix — create without logging:
CREATE TEMP TABLE tmp_report (id INT, total DECIMAL(10,2)) WITH NO LOG;
or adjust DBSPACETEMP to ALL if logged temp tables are genuinely needed across the workload.
Diagnostic Checks
- Check dbspace free space for the target dbspace in the
onparamslog-add case:onstat -d - Check the
DBSPACETEMPsetting inONCONFIGfor the temporary-table case. - Confirm which of the two documented scenarios actually applies, based on the operation being attempted — this determines which fix is relevant.
Related Errors / Related Topics
- -131 — "ISAM error: no free disk space." The general dbspace-space-exhaustion sibling.
- -179 — "ISAM error: No free disk space for sort." Another temp-space-related condition, though about sort operations rather than logical logs or temp table logging specifically.
Identify which of the two named scenarios applies first — the fix for a logical-log space
shortfall (add a chunk or reduce log size) is completely different from the fix for a
DBSPACETEMP-related temp table logging conflict (ALL or WITH NO LOG).