# ESS_DBSTATE_T

This database state structure gets and sets the state parameters for a specific database. All fields in this structure can be modified using the API. See also the ESS_DBINFO_T and ESS_DBSTATS_T structures, which contain additional database information that cannot be modified.

    typedef struct  ESS_DBSTATE_T
    {
       ESS_DESC_T        Description;
       ESS_BOOL_T        Loadable;
       ESS_BOOL_T        Autoload;
       ESS_ACCESS_T      Access;
       ESS_SHORT_T       IndexType;
       ESS_ULONG_T       MaxMem;
       ESS_ULONG_T       MaxCompMem;
       ESS_BOOL_T        CalcNoAggMissing;
       ESS_BOOL_T        CalcNoAvgMissing;
       ESS_BOOL_T        CalcTwoPass;
       ESS_BOOL_T        CalcCreateBlock;
       ESS_DBNAME_T      CrDbName;
       ESS_MBRNAME_T     CrTypeMember;
       ESS_USHORT_T      CrConvType;
       ESS_ULONG_T       MaxMemIndex;
       ESS_ULONG_T       IndexPageSize;
       ESS_BOOL_T        DataCompress;
       ESS_USHORT_T      DataCompressType;
       ESS_ULONG_T       RetrievalBuffer;
       ESS_ULONG_T       RetrievalSortBuffer;
       ESS_BYTE_T        cIOAccessFlagInUse;      /* new for 6.5
       ESS_BOOL_T        bNoWaitIO;               /* new for 6.5
       ESS_USHORT_T      IsolationLevel;
       ESS_BOOL_T        PreImage;
       ESS_BYTE_T        cIOAccessFlagPending;    /* new for 6.5
       ESS_LONG_T        TimeOut;
       ESS_ULONG_T       CommitBlocks;
       ESS_ULONG_T       CommitRows;
       ESS_ULONG_T       nVolumes;
       ESS_DISKVOLUME_T  DiskVolume[1];
    } ESS_DBSTATE_T, *ESS_PDBSTATE_T, **ESS_PPDBSTATE_T;

The fields are:

Data Type | Field | Description
ESS_DESC_T | Description | The database description (up to 80 characters)
ESS_BOOL_T | Loadable | Flag to indicate whether the database can be loaded (ESS_TRUE if the database is loadable)
ESS_BOOL_T | Autoload | Flag to indicate whether the database will be loaded automatically be loaded when the application is started (ESS_TRUE if the database will be automatically loaded)
ESS_ACCESS_T | Access | The default access level to the database. See Bitmask Data Types for a list of values this field can contain.
ESS_USHORT_T | IndexType | The database index type (array or tree). This field can contain the following values: ESS_INDEXTYPE_ARRAY ESS_INDEXTYPE_AVL For API releases 4 and later, the IndexType field is obsolete.
ESS_ULONG_T | MaxMem | The maximum memory reserved for non-compressed data blocks in the database(in bytes)
ESS_ULONG_T | MaxCompMem | The maximum memory reserved for compressed data blocks in database(in bytes)
ESS_BOOL_T | CalcNoAggMissing | Flag to suppress aggregation of members if all their children are missing (ESS_TRUE if missing values are not aggregated)
ESS_BOOL_T | CalcNoAvg Missing | Flag to suppress inclusion of missing members in calculating averages (ESS_TRUE if missing values are not included)
ESS_BOOL_T | CalcTwoPass | Flag to force two pass calculation when running full calculation of database (ESS_TRUE if two pass calculation is enabled)
ESS_BOOL_T | CalcCreate Block | Flag to force creation of data block on constant assignment calc equation (only valid for sparse dimensions). Set to ESS_TRUE if blocks are forcibly created.
ESS_DBNAME_T | CrDbName | The name of associated currency database (valid in non-currency databases).
ESS_MBRNAME_T | CrTypeMember | The name of currency conversion type member (valid in non-currency databases)
ESS_USHORT_T | CrConvType | Currency conversion type (whether currency conversions are calculated by multiplication or division). Values: ESS_CRCTYPE_DIV ESS_CRCTYPE_MULT
ESS_ULONG_T | MaxMemIndex | Minimum index cache size. Value: 1048576. Set using the constant ESS_INDEXCACHEMIN_SIZE
ESS_ULONG_T | IndexPageSize | Size of index page in which buffer pool is constructed in (in bytes). Minimum index page size. Value: 1024. Set using the constant ESS_INDEXPAGEMIN_SIZE Maximum page size for the IndexPageSize field. Value: 8192. Set using the constant ESS_INDEXPAGEMAX_SIZE
ESS_BOOL_T | DataCompress | Optional Flag to determine whether to compress blocks for this database.
ESS_USHORT_T | DataCompressType | The data compression type used for write operations if the optional compression flag is set. Bitmap - uses a bitmap to represent data cells (the default). Run-Length Encoding - compresses any consecutive repetitive values. No Compression - does not compress the data.
ESS_ULONG_T | RetrievalBuffer | Specifies the size, in bytes, of the server buffer that holds extracted row data cells before they are evaluated by the RESTRICT, TOP, or BOTTOM commands. The default is 10240 bytes. The minimum is 2048 bytes and the maximum is 102400000 bytes.
ESS_ULONG_T | RetrievalSortBuffer | Specifies the size, in bytes, of the server buffer that holds the data to be sorted during a retrieval. The minimum is 2048 bytes and the maximum is 102400000 bytes.
ESS_BYTE_T | cIOAccessFlagInUse | The type of I/O Access in use by the active current database. The two types of access are ESS_IO_ACCESS_BUFFERED and ESS_IO_ACCESS_DIRECT. Even when cIOAccessFlagPending has been set to ESS_IO_ACCESS_DIRECT, some operations might still require buffering. Also direct access may not be supported on a given platform. This field is read only.
ESS_BOOL_T | bNoWaitIO | This controls whether or not Essbase will wait for certain direct I/O operations to finish. This only applies on platforms that support direct I/O and if cIOAccessFlag is ESS_IO_ACCESS_DIRECT. This field is read only. The default is TRUE.
ESS_USHORT_T | IsolationLevel | The isolation level: COMMITTED - write locks on all affected data blocks restrict access until the transaction commits. UNCOMMITTED - (default) write locks are acquired and released as needed during the transaction.
ESS_BOOL_T | PreImage | The flag to read previously committed data during read-only requests. This flag can only be set for COMMITTED access. The default is YES.
ESS_BYTE_T | cIOAccessFlagPending | The type of I/O Access (direct or buffered) that Essbase will use. This setting takes effect after the next DBLoad (open operation).
ESS_LONG_T | TimeOut | The timeout interval in seconds. This can only be set for COMMITTED access. -1 is Indefinite wait. 0 is Immediate access, no wait (the default). n is the specified interval in seconds.
ESS_ULONG_T | CommitBlocks | The number of data blocks modified before performing the explicit commit (only used when isolation level is UNCOMMITTED).
ESS_ULONG_T | CommitRows | The number of rows of the input file to data load before performing the explicit commit (only used when isolation level is UNCOMMITTED).
ESS_ULONG_T | nVolumes | The number of disk volume settings for this database.
ESS_DISKVOLUME_T | DiskVolume[1] | An array of disk volume settings.