2
<!--Copyright 1997-2002 by Sleepycat Software, Inc.-->
3
<!--All rights reserved.-->
4
<!--See the file LICENSE for redistribution information.-->
7
<title>Berkeley DB: Db.upgrade</title>
8
<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
9
<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
12
<a name="2"><!--meow--></a>
13
<table width="100%"><tr valign=top>
18
<a href="../api_java/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a>
23
import com.sleepycat.db.*;
25
public void upgrade(String file, int flags)
29
<p>The Db.upgrade method upgrades all of the databases included in the
30
file <b>file</b>, if necessary. If no upgrade is necessary,
31
Db.upgrade always returns success.
32
<p><b>Database upgrades are done in place and are destructive. For example,
33
if pages need to be allocated and no disk space is available, the
34
database may be left corrupted. Backups should be made before databases
35
are upgraded. See <a href="../ref/am/upgrade.html">Upgrading databases</a>
36
for more information.</b>
37
<p>Unlike all other database operations, Db.upgrade may only be done
38
on a system with the same byte-order as the database.
39
<p>The <b>flags</b> value must be set to 0 or
42
<p><dt><a name="Db.DB_DUPSORT">Db.DB_DUPSORT</a><dd><b>This flag is only meaningful when upgrading databases from
43
releases before the Berkeley DB 3.1 release.</b>
44
<p>As part of the upgrade from the Berkeley DB 3.0 release to the 3.1 release,
45
the on-disk format of duplicate data items changed. To correctly
46
upgrade the format requires applications to specify whether duplicate
47
data items in the database are sorted or not. Specifying the
48
Db.DB_DUPSORT flag informs Db.upgrade that the duplicates
49
are sorted; otherwise they are assumed to be unsorted. Incorrectly
50
specifying the value of this flag may lead to database corruption.
51
<p>Further, because the Db.upgrade method upgrades a physical file
52
(including all the databases it contains), it is not possible to use
53
Db.upgrade to upgrade files in which some of the databases it
54
includes have sorted duplicate data items, and some of the databases it
55
includes have unsorted duplicate data items. If the file does not have
56
more than a single database, if the databases do not support duplicate
57
data items, or if all of the databases that support duplicate data items
58
support the same style of duplicates (either sorted or unsorted),
59
Db.upgrade will work correctly as long as the
60
Db.DB_DUPSORT flag is correctly specified. Otherwise, the file
61
cannot be upgraded using Db.upgrade; it must be upgraded
62
manually by dumping and reloading the databases.
64
<p>The Db.upgrade method throws an exception that encapsulates a non-zero error value on
66
<h1>Environment Variables</h1>
68
<p><dt>DB_HOME<dd>If a <b>dbenv</b> argument to <a href="../api_c/db_create.html">db_create</a> was specified, the
69
environment variable <b>DB_HOME</b> may be used as the path of the
70
database environment home.
71
<p>Db.upgrade is affected by any database directory specified using the
72
<a href="../api_java/env_set_data_dir.html">DbEnv.set_data_dir</a> method, or by setting the "set_data_dir" string
73
in the environment's <b>DB_CONFIG</b> file.
76
<p>The Db.upgrade method may fail and throw an exception encapsulating a non-zero error for the following conditions:
78
<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
79
<p>The database is not in the same byte-order as the system.
82
<p><dt><a name="Db.DB_OLD_VERSION">Db.DB_OLD_VERSION</a><dd>The database cannot be upgraded by this version of the Berkeley DB software.
84
<p>The Db.upgrade method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
85
If a catastrophic error has occurred, the Db.upgrade method may fail and
86
throw a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>,
87
in which case all subsequent Berkeley DB calls will fail in the same way.
89
<a href="../api_java/db_class.html">Db</a>
91
<a href="../api_java/db_list.html">Databases and Related Methods</a>
93
<table width="100%"><tr><td><br></td><td align=right>
94
<a href="../api_java/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a>
96
<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>