Db.verify

APIRef

import com.sleepycat.db.*;

public void verify(String file, String database, java.io.OutputStream outfile, int flags) throws DbException;

Description

The Db.verify method verifies the integrity of all databases in the file specified by the file argument, and optionally outputs the databases' key/data pairs to a file stream.

The flags value must be set to 0 or the following value:

Db.DB_SALVAGE
Write the key/data pairs from all databases in the file to the file stream named in the outfile argument. The output format is the same as that specified for the db_dump utility, and can be used as input for the db_load utility.

Because the key/data pairs are output in page order as opposed to the sort order used by db_dump, using Db.verify to dump key/data pairs normally produces less than optimal loads for Btree databases.

In addition, the following flags may be set by bitwise inclusively OR'ing them into the flags parameter:

Db.DB_AGGRESSIVE
Output all the key/data pairs in the file that can be found. By default, Db.verify does not assume corruption. For example, if a key/data pair on a page is marked as deleted, it is not then written to the output file. When Db.DB_AGGRESSIVE is specified, corruption is assumed, and any key/data pair that can be found is written. In this case, key/data pairs that are corrupted or have been deleted may appear in the output (even if the file being salvaged is in no way corrupt), and the output will almost certainly require editing before being loaded into a database.

Db.DB_NOORDERCHK
Skip the database checks for btree and duplicate sort order and for hashing.

The Db.verify method normally verifies that btree keys and duplicate items are correctly sorted, and hash keys are correctly hashed. If the file being verified contains multiple databases using differing sorting or hashing algorithms, some of them must necessarily fail database verification because only one sort order or hash function can be specified before Db.verify is called. To verify files with multiple databases having differing sorting orders or hashing functions, first perform verification of the file as a whole by using the Db.DB_NOORDERCHK flag, and then individually verify the sort order and hashing function for each database in the file using the Db.DB_ORDERCHKONLY flag.

Db.DB_ORDERCHKONLY
Perform the database checks for btree and duplicate sort order and for hashing, skipped by Db.DB_NOORDERCHK.

When this flag is specified, a database argument should also be specified, indicating the database in the physical file which is to be checked. This flag is only safe to use on databases that have already successfully been verified using Db.verify with the Db.DB_NOORDERCHK flag set.

The Db.verify method does not perform any locking, even in Berkeley DB environments that are configured with a locking subsystem. As such, it should only be used on files that are not being modified by another thread of control.

The database argument must be set to null except when the Db.DB_ORDERCHKONLY flag is set.

The Db.verify method throws an exception that encapsulates a non-zero error value on failure, and Db.DB_VERIFY_BAD if a database is corrupted. When the Db.DB_SALVAGE flag is specified, the Db.DB_VERIFY_BAD return means that all key/data pairs in the file may not have been successfully output.

Environment Variables

DB_HOME
If the dbenv argument to db_create was initialized using DbEnv.open, the environment variable DB_HOME may be used as the path of the database environment home. Specifically, Db.verify is affected by the configuration value DB_DATA_DIR.

Errors

The Db.verify method may fail and throw an exception encapsulating a non-zero error for the following conditions:

EINVAL
An invalid flag value or parameter was specified.

The Db.verify method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods. If a catastrophic error has occurred, the Db.verify method may fail and throw a DbRunRecoveryException, in which case all subsequent Berkeley DB calls will fail in the same way.

Class

Db

See Also

Db.associate, Db.close, Db.cursor, Db.del, Db.fd, Db.get, Db.pget, Db.get_byteswapped, Db.get_type, Db.join, Db.key_range, Db.open, Db.put, Db.remove, Db.rename, Db.set_append_recno, Db.set_bt_minkey, Db.set_cachesize, Db.set_errcall, Db.set_errpfx, Db.set_feedback, Db.set_flags, Db.set_h_ffactor, Db.set_h_nelem, Db.set_lorder, Db.set_pagesize, Db.set_q_extentsize, Db.set_re_delim, Db.set_re_len, Db.set_re_pad, Db.set_re_source, Db.stat, Db.sync, Db.truncate, Db.upgrade, and Db.verify.

APIRef

Copyright Sleepycat Software