// Add the database properties read from disk (not stored
// in service.properties) into the set seen by booting modules.
Properties allParams =
new DoubleProperties(getAllDatabaseProperties(), startParams);
if (pf != null)
pf.addPropertySetNotification(this);
// Boot the ClassFactory, will be per-database or per-system.
// reget the tc in case someone inadverdently destroyed it
bootClassFactory(create, allParams);
dd = (DataDictionary)
Monitor.bootServiceModule(create, this,
DataDictionary.MODULE, allParams);
lcf = (LanguageConnectionFactory)
Monitor.bootServiceModule(
create, this, LanguageConnectionFactory.MODULE, allParams);
lf = (LanguageFactory)
Monitor.bootServiceModule(
create, this, LanguageFactory.MODULE, allParams);
bootResourceAdapter(create, allParams);
// may also want to set up a check that we are a singleton,
// or that there isn't already a database object in the system
// for the same database?
//
// We boot the authentication service. There should at least be one
// per database (even if authentication is turned off) .
//
authenticationService = bootAuthenticationService(create, allParams);
if (SanityManager.DEBUG) {
SanityManager.ASSERT(
authenticationService != null,
"Failed to set the Authentication service for the database");
}
// Lastly, let store knows that database creation is done and turn
// on logging
if (create && lastToBoot &&
(startParams.getProperty(Property.CREATE_WITH_NO_LOG) != null))
{
createFinished();
}
active = true;
// Create an index statistics update daemon.
if (dd.doCreateIndexStatsRefresher()) {
dd.createIndexStatsRefresher(this, allParams.getProperty(
Property.PROPERTY_RUNTIME_PREFIX + "serviceDirectory"));
}
}