Red Hat Bugzilla – Bug 450707
Upgrades involving old BDB database files
Last modified: 2013-10-23 19:08:13 EDT
When the broker is started with the store module loaded, the store module will
open the BDB database in the data directory (which is by default whatever the
broker has selected for --data-dir). The BDB files are located under rhm/dat/
within this directory.
In recent testing, it has been observed that if BDB is upgraded, or the store
directory from one version of BDB is used by another version, then the broker
will fail to start. One of the most commonly observed error messages is the
Database handles still open at environment close
Error opening environment (BdbMessageStore.cpp:144): DbEnv::open: Invalid argument
If this should occur, then the following is suggested:
If recovery is not important (i.e. there are no messages or queues that need to
be restored on startup), then simply delete the database and journal (if it
exists) in the store directory. The broker will create a new one when it starts.
This is most easily done with a command such as "rm -rf /var/lib/qpidd/rhm",
where /var/lib/qpidd is the data directory; adjust if you are using a different
path for the data directory.
If recovery is important, then it will be necessary to run the db_recover
utility against the database. This requires that the db4-utils package is
installed; as root, run "yum install db4-utils" to do this.