# Runtime Options

> The function ``mco_runtime_setoption()`` allows applications to control certain characteristics of the eXtremeDB runtime. The following possible values for runtime options are defined in the header file `mco.h`:

> MCO_RT_OPTION_EXTHEAPS | Enable use of custom heap management. This option has been deprecated in version 7.1. If specified, `mco_runtime_setoption( MCO_RT_OPTION_EXTHEAPS, 1)` will return the `MCO_E_UNSUPPORTED` error code.
> MCO_RT_OPTION_DB_SAVE_CRC | Enable CRC32 coverage of stream consistency. This option has been deprecated in version 7.1. See mco_db_load(). The CRC is always kept with a saved database image since version 7.1. Note that to preserve backward compatibility the `mco_db_load()` function is able to load a snapshot saved without CRC. This ability will be removed from future releases.
> MCO_RT_OPTION_MARK_LAST_OBJ | Use to specify that notification of ”end-of-transaction” is required. (See Transaction Logging.)
> MCO_RT_CRC_ALGORITHM | Specifies the CRC32 algorithm used to verify persistent database consistency.
> MCO_RT_MAX_PATRICIA_DEPTH | Specifies the maximum depth of a Patricia trie index before the error `MCO_E_PATRICIA_TOO_DEEP` is thrown. (Default value is 256.)
> MCO_RT_MAX_DYNAMIC_PIPES | Defines the maximum number of the PIPE_BUF type devices that can be added through mco_db_extend_dev(). (See Transaction Logging.)
> MCO_RT_OPTION_CLASS_LOAD_MERGE | Defines the policy when function `mco_class_load()` needs to merge (append) loaded objects with objects already existing in the database. The default value is 0 (delete all of objects of specified class before loading).
> MCO_RT_OPTION_DATETIME_PRECISION | Time resolution (precision) for `datetime` values: `1` - seconds, `1000` - milliseconds, `1000000` - microseconds, `1000000000` (nanoseconds).
> MCO_RT_OPTION_LAST | This is not an option but simply a marker to facilitate obtaining the total count of runtime options.
> Unix shared memory options.
> MCO_RT_OPTION_UNIX_SHM_MASK | Set Unix shared memory access mode. (See “Shared Memory Runtime Options”.)
> Posix shared memory options.
> MCO_RT_POSIX_SHM_OPT | Enable setting a combination of the following POSIX shared memory options.
> MCO_RT_POSIX_SHM_ANONYMOUS | Enables option MAP_ANONYMOUS of the POSIX function 'mmap' that provides mapping of virtual shared memory to a current process.
> MCO_RT_POSIX_SHM_SHARED | Specifies that option MAP_SHARED of the POSIX function 'mmap' will be used. Otherwise option MAP_PRIVATE is used.
> Windows shared memory and synchronization primitives naming and security descriptor options.
> MCO_RT_WINDOWS_SHM_OPT | Enable setting a combination of the following Windows shared memory options.
> MCO_RT_WINDOWS_SHM_PREFIX_GLOBAL | Use global prefix. Shared objects are visible in all sessions
> MCO_RT_WINDOWS_SHM_PREFIX_LOCAL | Use Local prefix, Shared object are visible in current session only
> MCO_RT_WINDOWS_SHM_PREFIX_SESSIONS | Vista sessions fix
> MCO_RT_WINDOWS_SHM_PREFIX_NONE | No prefix (Default)
> MCO_RT_WINDOWS_SHM_PREFIX_MASK | Every one can access
> MCO_RT_WINDOWS_SHM_SEC_DESCR_EMPTY | Use windows default policy (Default)
> MCO_RT_WINDOWS_SHM_SEC_DESCR_SAMEUSER | Only the same user can access
> The default Windows shared memory options combination is: MCO_RT_WINDOWS_SHM_PREFIX_NONE|MCO_RT_WINDOWS_SHM_SEC_DESCR_NULL which makes the database visible and accessible from the local session only.
> MCO_RT_CRC32_NONE | Do not calculate CRC
> MCO_RT_CRC32 | The implementation of CRC used prior to release 15523 2014-07-17
> MCO_RT_CRC32_FAST | Calculate the CRC only for the first and last 8-byte word of data
> MCO_RT_CRC32_OLD | The implementation of CRC used prior to release 12823 2013-01-28
> MCO_RT_CRC32C | CRC32C hardware & software implementations used after release 15523 2014-07-17