IFX_DEF_TABLE_LOCKMODE environment variable
The IFX_DEF_TABLE_LOCKMODE environment variable
can specify the default lock mode for database tables that are subsequently
created without explicitly specifying the LOCKMODE PAGE or LOCKMODE
ROW keywords. This feature is convenient if you must create several
tables of the same lock mode. UNIX™ systems
that use the C shell support the following syntax:
- PAGE
- The default lock mode is page-level granularity. This value disables the LAST COMMITTED feature of COMMITTED READ.
- ROW
- The default lock mode is row-level granularity.
Similar functionality is available by setting the
DEF_TABLE_LOCKMODE parameter of the ONCONFIG file to PAGE or ROW.
When a table is created or modified, any conflicting lock mode specifications
are resolved according to the following descending (highest to lowest)
order of precedence:
- Explicit LOCKMODE specification of CREATE TABLE or ALTER TABLE
- IFX_DEF_TABLE_LOCKMODE environment variable setting
- DEF_TABLE_LOCKMODE parameter setting in the ONCONFIG file
- The system default lock mode (= page mode)
To make the DEF_TABLE_LOCKMODE setting the default mode
(or to restore the system default if DEF_TABLE_LOCKMODE is not set)
use the command:
unsetenv IFX_DEF_TABLE_LOCKMODE
If IFX_DEF_TABLE_LOCKMODE is
set in the environment of the database server before running oninit,
then its scope is all sessions of the database server (just as if
DEF_TABLE_LOCKMODE were set in the ONCONFIG file). If IFX_DEF_TABLE_LOCKMODE is
set in the shell, or in the $HOME/.informix or $INFORMIXDIR/etc/informix.rc files,
then the scope is restricted to the current session (if you set it
in the shell) or to the individual user.
Important: This has no effect on existing tables. If you specify ROW as
the lock mode, the database will use this to restore, recover, or
copy data. For tables that were created in PAGE mode, this
might cause lock-table overflow or performance degradation.