Viewing file: env_close.html (4.97 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
Berkeley DB: DbEnv::close
DbEnv::close
|
 |
#include <db_cxx.h>
DbEnv::close(u_int32_t flags);
Description: DbEnv::close
The DbEnv::close method closes the Berkeley DB environment, freeing any
allocated resources and closing any underlying subsystems.
The DbEnv handle should not be closed while any other handle
that refers to it is not yet closed; for example, database environment
handles must not be closed while database handles remain open, or
transactions in the environment have not yet been committed or aborted.
Specifically, this includes Db, Dbc, DbTxn,
DbLogc and DbMpoolFile handles.
Where the environment was initialized with the DB_INIT_LOCK
flag, calling DbEnv::close does not release any locks still held
by the closing process, providing functionality for long-lived locks.
Processes that want to have all their locks released can do so by
issuing the appropriate DbEnv::lock_vec call.
Where the environment was initialized with the DB_INIT_MPOOL
flag, calling DbEnv::close implies calls to DbMpoolFile::close for
any remaining open files in the memory pool that were returned to this
process by calls to DbMpoolFile::open. It does not imply a call to
DbMpoolFile::sync for those files.
Where the environment was initialized with the DB_INIT_TXN flag,
calling DbEnv::close aborts any unresolved transactions.
Applications should not depend on this behavior for transactions
involving Berkeley DB databases; all such transactions should be explicitly
resolved. The problem with depending on this semantic is that aborting
an unresolved transaction involving database operations requires a
database handle. Because the database handles should have been closed before
calling DbEnv::close, it will not be possible to abort the
transaction, and recovery will have to be run on the Berkeley DB environment
before further operations are done.
Where log cursors were created using the DbEnv::log_cursor method, calling
DbEnv::close does not imply closing those cursors.
In multithreaded applications, only a single thread may call
DbEnv::close.
After DbEnv::close has been called, regardless of its return, the
Berkeley DB environment handle may not be accessed again.
The DbEnv::close 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.
Parameters
- flags
- The flags parameter is currently unused, and must be set to 0.
Class
DbEnv
See Also
Database Environments and Related Methods
Copyright (c) 1996-2004 Sleepycat Software, Inc. - All rights reserved.
|