public void shutdown() {
// If the data store has been scheduled for deletion, which happens
// when the store detects that the service root has been deleted, then
// delete the whole store to release the memory.
if (dbData.scheduledForDeletion()) {
DataStore store;
synchronized (DATABASES) {
store = (DataStore)DATABASES.remove(canonicalName);
// Must clean up the dummy while holding monitor.
if (store != null && store == dbData) {
dbDropCleanupInDummy(canonicalName);