Hi Daniel -
You are correct that the error means the database is corrupt.
Recovering from back-up is the only option at this point.
If by SMB you mean a Samba mounted disk then this is the source of your
problem. Only disks local to the machine hosting the Derby engine can
be used without risking corruption. Network mounted disks cannot be
relied upon.
Daniel Noll wrote:
Hi.
I have a situation where a database was working before shutdown, shutdown
completed successfully but then opening the database the next time there is
an error preventing it being opened.
Here's the relevant fragments from the log. Apologies for the massive amount
of text, but the stack traces were simply long. ;-)
------------ BEGIN SHUTDOWN ERROR STACK -------------
ERROR XSLA7: Cannot redo operation null in the log.
at org.apache.derby.iapi.error.StandardException.newException(Unknown
Source) at org.apache.derby.impl.store.raw.log.FileLogger.redo(Unknown
Source) at org.apache.derby.impl.store.raw.log.LogToFile.recover(Unknown
Source) at org.apache.derby.impl.store.raw.RawStore.boot(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown
Source)
at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
Source) at
org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown
Source) at
org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown
Source) at org.apache.derby.impl.store.access.RAMAccessManager.boot(Unknown
Source) at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown
Source) at
org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
Source) at
org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown
Source) at
org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown
Source) at org.apache.derby.impl.db.BasicDatabase.bootStore(Unknown Source)
at org.apache.derby.impl.db.BasicDatabase.boot(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown
Source)
at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
Source) at
org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown
Source) at
org.apache.derby.impl.services.monitor.BaseMonitor.startProviderService(Unk
nown Source) at
org.apache.derby.impl.services.monitor.BaseMonitor.findProviderAndStartServ
ice(Unknown Source) at
org.apache.derby.impl.services.monitor.BaseMonitor.startPersistentService(U
nknown Source) at
org.apache.derby.iapi.services.monitor.Monitor.startPersistentService(Unkno
wn Source) at
org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(Unknown Source) at
org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source) at
org.apache.derby.impl.jdbc.EmbedConnection30.<init>(Unknown Source) at
org.apache.derby.impl.jdbc.EmbedConnection40.<init>(Unknown Source) at
org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Unknown Source) at
org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source)
ERROR XSDB1: Unknown page format at page Page(2519565,Container(0, 1120))
at org.apache.derby.iapi.error.StandardException.newException(Unknown
Source) at
org.apache.derby.impl.store.raw.data.CachedPage.changeInstanceTo(Unknown
Source) at
org.apache.derby.impl.store.raw.data.CachedPage.setIdentity(Unknown Source)
at org.apache.derby.impl.services.cache.CachedItem.takeOnIdentity(Unknown
Source) at org.apache.derby.impl.services.cache.Clock.addEntry(Unknown
Source) at org.apache.derby.impl.services.cache.Clock.find(Unknown Source)
at org.apache.derby.impl.store.raw.data.FileContainer.getAnyPage(Unknown
Source) at
org.apache.derby.impl.store.raw.data.BaseContainer.getAnyPage(Unknown
Source) at
org.apache.derby.impl.store.raw.data.BaseContainerHandle.getAnyPage(Unknown
Source) at
org.apache.derby.impl.store.raw.data.PageBasicOperation.findpage(Unknown
Source) at
org.apache.derby.impl.store.raw.data.PageBasicOperation.needsRedo(Unknown
Source) at org.apache.derby.impl.store.raw.log.FileLogger.redo(Unknown
Source) at org.apache.derby.impl.store.raw.log.LogToFile.recover(Unknown
Source) at org.apache.derby.impl.store.raw.RawStore.boot(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown
Source)
at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
Source) at
org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown
Source) at
org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown
Source) at org.apache.derby.impl.store.access.RAMAccessManager.boot(Unknown
Source) at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown
Source) at
org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
Source) at
org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown
Source) at
org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown
Source) at org.apache.derby.impl.db.BasicDatabase.bootStore(Unknown Source)
at org.apache.derby.impl.db.BasicDatabase.boot(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown
Source)
at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
Source) at
org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown
Source) at
org.apache.derby.impl.services.monitor.BaseMonitor.startProviderService(Unk
nown Source) at
org.apache.derby.impl.services.monitor.BaseMonitor.findProviderAndStartServ
ice(Unknown Source) at
org.apache.derby.impl.services.monitor.BaseMonitor.startPersistentService(U
nknown Source) at
org.apache.derby.iapi.services.monitor.Monitor.startPersistentService(Unkno
wn Source) at
org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(Unknown Source) at
org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source) at
org.apache.derby.impl.jdbc.EmbedConnection30.<init>(Unknown Source) at
org.apache.derby.impl.jdbc.EmbedConnection40.<init>(Unknown Source) at
org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Unknown Source) at
org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source)
ERROR XBM0U: No class was registered for identifier 0.
at org.apache.derby.iapi.error.StandardException.newException(Unknown
Source) at
org.apache.derby.impl.services.monitor.BaseMonitor.classFromIdentifier(Unkn
own Source) at
org.apache.derby.impl.services.monitor.BaseMonitor.newInstanceFromIdentifie
r(Unknown Source) at
org.apache.derby.iapi.services.monitor.Monitor.newInstanceFromIdentifier(Un
known Source) at
org.apache.derby.impl.store.raw.data.CachedPage.changeInstanceTo(Unknown
Source) at
org.apache.derby.impl.store.raw.data.CachedPage.setIdentity(Unknown Source)
at org.apache.derby.impl.services.cache.CachedItem.takeOnIdentity(Unknown
Source) at org.apache.derby.impl.services.cache.Clock.addEntry(Unknown
Source) at org.apache.derby.impl.services.cache.Clock.find(Unknown Source)
at org.apache.derby.impl.store.raw.data.FileContainer.getAnyPage(Unknown
Source) at
org.apache.derby.impl.store.raw.data.BaseContainer.getAnyPage(Unknown
Source) at
org.apache.derby.impl.store.raw.data.BaseContainerHandle.getAnyPage(Unknown
Source) at
org.apache.derby.impl.store.raw.data.PageBasicOperation.findpage(Unknown
Source) at
org.apache.derby.impl.store.raw.data.PageBasicOperation.needsRedo(Unknown
Source) at org.apache.derby.impl.store.raw.log.FileLogger.redo(Unknown
Source) at org.apache.derby.impl.store.raw.log.LogToFile.recover(Unknown
Source) at org.apache.derby.impl.store.raw.RawStore.boot(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown
Source)
at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
Source) at
org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown
Source) at
org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown
Source) at org.apache.derby.impl.store.access.RAMAccessManager.boot(Unknown
Source) at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown
Source) at
org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
Source) at
org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown
Source) at
org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown
Source) at org.apache.derby.impl.db.BasicDatabase.bootStore(Unknown Source)
at org.apache.derby.impl.db.BasicDatabase.boot(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown
Source)
at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
Source) at
org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown
Source) at
org.apache.derby.impl.services.monitor.BaseMonitor.startProviderService(Unk
nown Source) at
org.apache.derby.impl.services.monitor.BaseMonitor.findProviderAndStartServ
ice(Unknown Source) at
org.apache.derby.impl.services.monitor.BaseMonitor.startPersistentService(U
nknown Source) at
org.apache.derby.iapi.services.monitor.Monitor.startPersistentService(Unkno
wn Source) at
org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(Unknown Source) at
org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source) at
org.apache.derby.impl.jdbc.EmbedConnection30.<init>(Unknown Source) at
org.apache.derby.impl.jdbc.EmbedConnection40.<init>(Unknown Source) at
org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Unknown Source) at
org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source)
The database was supposedly being accessed over SMB, but I have been assured
that there was only one process connected to it the entire time (checked for
stale processes just in case there was one still holding a lock.)
But from web searches I get the feeling that this really is some kind of
corruption so if that's the case I need to know how I can fix it.
Daniel