Hello,
We have an embedded derby database, which seems to have been corrupted
in some way after a windows crash. So, the db file structure seems to
be right - one seg0 directory containing alot of *.dat files and a
log directory containg log1.dat, log.ctrl and logmirror.ctrl. No *.lck
files.
When trying to connect to the db via squirrelsql we get this exception:
Caused by: java.sql.SQLException: The conglomerate (16) requested does
not exist.
at
org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown
Source)
at
org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown
Source)
at
org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown
Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown
Source)
... 12 more
Caused by: ERROR XSAI2: The conglomerate (16) requested does not exist.
at org.apache.derby.iapi.error.StandardException.newException(Unknown
Source)
at
org.apache.derby.impl.store.access.heap.HeapConglomerateFactory.readConglomerate(Unknown
Source)
at
org.apache.derby.impl.store.access.RAMAccessManager.conglomCacheFind(Unknown
Source)
at
org.apache.derby.impl.store.access.RAMTransaction.findExistingConglomerate(Unknown
Source)
at org.apache.derby.impl.store.access.RAMTransaction.openScan(Unknown
Source)
at
org.apache.derby.impl.store.access.PropertyConglomerate.openScan(Unknown
Source)
at
org.apache.derby.impl.store.access.PropertyConglomerate.readDbProperties(Unknown
Source)
at
org.apache.derby.impl.store.access.PropertyConglomerate.getCachedDbProperties(Unknown
Source)
at
org.apache.derby.impl.store.access.PropertyConglomerate.getCachedProperty(Unknown
Source)
at
org.apache.derby.impl.store.access.PropertyConglomerate.getProperty(Unknown
Source)
at
org.apache.derby.impl.store.access.PC_XenaVersion.upgradeIfNeeded(Unknown
Source)
at
org.apache.derby.impl.store.access.PropertyConglomerate.<init>(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(Unknown
Source)
at
org.apache.derby.impl.services.monitor.BaseMonitor.findProviderAndStartService(Unknown
Source)
at
org.apache.derby.impl.services.monitor.BaseMonitor.startPersistentService(Unknown
Source)
at
org.apache.derby.iapi.services.monitor.Monitor.startPersistentService(Unknown
I am looking for tools etc about how to repair a corrupt derby
database. I know taking backup often is a good alternative. ;-)
Kind regards,
Rohnny