Berkeley DB: Db.put

ee,hash,hashing,transaction,transactions,locking,logging,access method,access me thods,java,C,C++">


import com.sleepycat.db.*;

public void put(DbTxn txnid, Dbt key, Dbt data, int flags) throws DbException;


The Db.put method stores key/data pairs in the database.

If the database supports duplicates, the Db.put method adds the new data value at the end of the duplicate set. If the database supports sorted duplicates, the new data value is inserted at the correct sorted location.

If the file is being accessed under transaction protection, the txnid parameter is a transaction ID returned from DbTxnMgr.begin, otherwise, NULL.

The flags parameter must be set to 0 or one of the following values:

Append the key/data pair to the end of the database. For Db.DB_APPEND to be specified, the underlying database must be of type Db.DB_RECNO. The record number allocated to the record is returned in the specified key.

Enter the new key/data pair only if the key does not already appear in the database.

The default behavior of the Db.put function is to enter the new key/data pair, replacing any previously existing key if duplicates are disallowed, or to add a duplicate entry if duplicates are allowed. Even if the designated database allows duplicates, a call to Db.put with the DB_NOOVERWRITE flag set will fail if the key already exists in the database.

The Db.put method throws an exception that encapsulates an errno on failure, and DB_KEYEXIST if the DB_NOOVERWRITE flag was set and the key already exists in the file.


If a fatal error occurs in Berkeley DB, the Db.put method may fail and throw a
DbRunRecoveryException, at which point all subsequent database calls will also fail in the same way.

The Db.put method may fail and throw an exception for any of the errors specified for the following Berkeley DB and C library functions: Db.cursor, DBcursor->c_close(3), Dbc.get, DBcursor->c_put(3), __account_page(3), dbenv->db_paniccall(3), fflush(3), fprintf(3), free(3), func(3), DbLockTab.get, DbLock.put, DbLockTab.vec, DbLog.put, malloc(3), memcpy(3), memmove(3), DbMpoolFile.get, DbMpoolFile.put, DbMpoolFile.set, memset(3), realloc(3), strerror(3), vfprintf(3), and vsnprintf(3).

In addition, the Db.put method may fail and throw an exception encapsulating errno for the following conditions:

An attempt was made to modify a read-only database.

A lock was unavailable.

An invalid flag value or parameter was specified.

A record number of 0 was specified.

An attempt was made to add a record to a fixed-length database that was too large to fit.

An attempt was made to do a partial put.

A btree exceeded the maximum btree depth (255).



See Also

Db.close, Db.cursor, Db.del, Db.fd, Db.get, Db.get_byteswapped, Db.get_type, Db.join,, Db.put, Db.stat and Db.sync.