Recovering from a Full Tablespace

By default, when the Oracle cache administration user's tablespace is full, an error is returned to the application when it attempts a DML operation, such as an UPDATE, INSERT or DELETE statement, on a particular cached Oracle Database table.

Rather than TimesTen returning an error to the Oracle Database application when the Oracle cache administration user's tablespace is full, you can configure TimesTen to delete existing rows from the change log tables to make space for new rows when an update operation is issued on a particular cached Oracle Database table. If some of the deleted change log table rows have not been applied to the cache tables, a full autorefresh operation is performed on those cache tables in each TimesTen database that contains the tables upon the next autorefresh cycle.

Call the ttCacheConfig built-in procedure as the TimesTen cache administration user from any of the TimesTen databases that cache tables from the Oracle database. Pass the TblSpaceFullRecovery string to the Param parameter, the owner and name of the cached Oracle Database table to the tblOwner and tblName parameters, respectively, on which you want to configure an action to take if the Oracle cache administration user's tablespace becomes full, and the action itself as a string to the Value parameter.

The following are the valid actions:

  • None: Return an Oracle Database error to the application when an update operation is issued on the cached Oracle Database table. This is the default action.

  • Reload: Delete rows from the change log table and perform a full autorefresh operation on the cache table upon the next autorefresh cycle when an update operation is issued on the cached Oracle Database table.

The following example configures an action when the Oracle cache administration user's tablespace becomes full. In this example, rows are deleted from the change log table and a full autorefresh operation is performed on the cache table upon the next autorefresh cycle when an update operation is issued on the sales.customer cached Oracle Database table while the Oracle cache administration user's tablespace is full:

% ttIsql "DSN=cache1;UID=cacheadmin;PwdWallet=/wallets/cacheadminwallet"
Command> CALL ttCacheConfig('TblSpaceFullRecovery','sales','customer','Reload');

To determine the current action to take when an update operation is issued on a particular cached Oracle Database table if the Oracle cache administration user's tablespace is full, call ttCacheConfig passing only the TblSpaceFullRecovery string to the Param parameter, and the owner and name of the cached Oracle Database table to the tblOwner and tblName parameters, respectively:

Command> CALL ttCacheConfig('TblSpaceFullRecovery','sales','customer');
< TblSpaceFullRecovery, SALES, CUSTOMER, reload >

The action to take when update operations are issued on a cached Oracle Database table while the Oracle cache administration user's tablespace is full applies to all TimesTen databases that cache tables from the same Oracle database and have the same Oracle cache administration user name setting.

See ttCacheConfig in the Oracle TimesTen In-Memory Database Reference.