Considerations When a Tablespace Is Full
With Oracle database tables that are cached in a TimesTen database, you can configure them to use incremental automatic refresh. For these tables, you can specify which one of the following is to occur when the cache administration user's tablespace is full:
-
The application performing the DML is to fail. This is the default.
The tablespace full recovery is set to none. The application receives an "
Out of Tablespace
" error from Oracle Database when the tablespace is full. At that point, the application will need to rollback the transaction.Setting the tablespace full recovery to none is configured when you set the
Param
parameter toTblSpaceFullRecovery
and theValue
parameter toNone
with thettCacheConfig
built-in procedure. For example, the following configuresParam
toTblSpaceFullRecovery
andValue
toNone
for theemployees
table that is owned byterry
:call ttCacheConfig('TblSpaceFullRecovery','terry', 'employees','None');
-
Truncate the change log table to free up space and cause a full autorefresh.
When the cache administration user's tablespace is full, any application that is executing DML statements on the autorefresh cached Oracle database tables continues to execute. A trigger executes to free up space for new change log records by deleting existing change log records. This can result in a full automatic refresh on cache groups that have the incremental automatic refresh mode configured. However, if the Oracle database table is not configured for incremental automatic refresh, then no trigger executes.
To set the operation to enable the application to continue and cause an autorefresh, set the
Param
parameter toTblSpaceFullRecovery
and theValue
parameter toReload
with thettCacheConfig
procedure. The user will see stale data until the full autorefresh is complete.However, even if the user sets the cache configuration parameter
TblSpaceFullRecovery
with the value ofReload
, the tablespace may not be able to be emptied enough to handle the case of a growing index. Deleting rows from the change log table may not free up enough space for the index that is on the change log table. If the index is growing so fast that it uses all the tablespace to the point where purging the change log tables does not help, then the user's application may receive the following error:ORA-01654: unable to extend index <index> by 128 in tablespace <tblspace>
For full details of the ttCacheConfig
built-in procedure, see the ttCacheConfig in the Oracle TimesTen In-Memory Database
Reference.