# DbEnv::set_region_init

`

###

    #include <db_cxx.h>

    static int
    DbEnv::set_region_init(int region_init);

# Description

Page-fault shared regions into memory when initially creating or joining a Berkeley DB environment. In some applications, the expense of page-faulting the shared memory regions can affect performance. For example, if the page-fault occurs while holding a lock, other lock requests can convoy, and overall throughput may decrease. Setting region_init to a non-zero value specifies that shared regions be read or written, as appropriate, when the region is joined by the application. This forces the underlying virtual memory and filesystems to instantiate both the necessary memory and the necessary disk space. This can also avoid out-of-disk space failures later on.

The DbEnv::set_region_init interface affects the entire application, not a single database or database environment.

Although the DbEnv::set_region_init interface may be used to configure Berkeley DB at any time during the life of the application, it should normally be called before making any calls to the db_env_create or db_create methods.

The DbEnv::set_region_init method either returns a non-zero error value or throws an exception that encapsulates a non-zero error value on failure, and returns 0 on success.

The database environment's initial behavior with respect to shared memory regions may also be set using the environment's DB_CONFIG file. The syntax of the entry in that file is a single line with the string "set_region_init", one or more whitespace characters, and the string "1". Because the DB_CONFIG file is read when the database environment is opened, it will silently overrule configuration done before that time.

# Errors

The DbEnv::set_region_init method may fail and throw an exception or return a non-zero error for the following conditions:

EINVAL
  An invalid flag value or parameter was specified.

The DbEnv::set_region_init method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods. If a catastrophic error has occurred, the DbEnv::set_region_init method may fail and either return DB_RUNRECOVERY or throw an exception encapsulating DB_RUNRECOVERY, in which case all subsequent Berkeley DB calls will fail in the same way.

# Class

DbEnv

# See Also

DbEnv::close, DbEnv::err, DbEnv::errx DbEnv::open, DbEnv::remove, DbEnv::set_alloc, DbEnv::set_cachesize, DbEnv::set_data_dir, DbEnv::set_errcall, DbEnv::set_errfile, DbEnv::set_error_stream, DbEnv::set_errpfx, DbEnv::set_feedback, DbEnv::set_flags, DbEnv::set_mutexlocks, DbEnv::set_pageyield, DbEnv::set_paniccall, DbEnv::set_panicstate, DbEnv::set_recovery_init, DbEnv::set_rpc_server, DbEnv::set_region_init, DbEnv::set_shm_key, DbEnv::set_tas_spins, DbEnv::set_tmp_dir, DbEnv::set_verbose, DbEnv::strerror and DbEnv::version.`

Copyright Sleepycat Software