throws DatabaseException {
info = new RecoveryInfo();
try {
FileManager fileManager = env.getFileManager();
DbConfigManager configManager = env.getConfigManager();
boolean forceCheckpoint =
configManager.getBoolean
(EnvironmentParams.ENV_RECOVERY_FORCE_CHECKPOINT);
if (fileManager.filesExist()) {
/*
* Establish the location of the end of the log. After this, we
* can write to the log. No Tracer calls are allowed until
* after this point is established in the log.
*/
findEndOfLog(readOnly);
Tracer.trace(Level.CONFIG, env,
"Recovery underway, found end of log");
/*
* Establish the location of the root, the last checkpoint, and
* the first active LSN by finding the last checkpoint.
*/
findLastCheckpoint();
env.getLogManager().setLastLsnAtRecovery
(fileManager.getLastUsedLsn());
Tracer.trace(Level.CONFIG, env,
"Recovery checkpoint search, " +
info);
/* Read in the root. */