db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From wegor...@interia.pl
Subject Derby db files get corrupted
Date Thu, 16 Feb 2006 07:44:17 GMT
Hi,

I use Derby in my product which is personal finance manager written in Java. The app is standalone
and has derby as embedded 

database which of course starts together with an app.

The version of derby.jar (from manifest) is:
Bundle-Name: Apache Derby 10.1
Bundle-Version: 10.1.1000000.208786

and I use embedded driver from the same jar:
org.apache.derby.jdbc.EmbeddedDriver

Now. I have a serious problem. The application is used by many users, and from time to time
the database gets corrupted. I do 

not know what way. I have never such a corrupt on my desktop (I use my app as a user as well).
I can maybe suppose that users 

are doing something wrong, or the other way that I do.
Anyway, after db files are corrupted, the data is lost. I don't know how to get them back.
Are there any diagnostic tools for 

Derby? I don't see any.
Well this is sample fragment from stacktrace from JDBC trying to open corrupted db:

(...)
Page Page(3,Container(0, 976)) is at version 755, the log file contains change version 5 564,
either there are log records of 

this page missing, or this page did not get written out to disk properly.
ERROR XSDB4: Page Page(3,Container(0, 976)) is at 

version 755, the log file contains change version 5 564, either there are log records of this
page missing, or this page did 

not get written out to disk properly.
	at org.apache.derby.iapi.error.StandardException.newException(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(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.impl.services.monitor.BaseMonitor.startPersistentService(Unknown Source)
	at org.apache.derby.iapi.services.monitor.Monitor.startPersistentService(Unknown 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.jdbc.Driver30.getNewEmbedConnection(Unknown Source)
	at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
(...)

Now I have the questions:
1. How can I diagnose the bug? Do you have any idea what way can I reproduce it or something?
2. Is it possible to restore lost data from such corrupted file?
3. Is there possibility that db gets corrupted for example where app is closed wrong way (for
example there is power off) - 

it should not I suppose?
4. Are there any tools that could help me to look at the problem closely?

Thanks.

Maciek


-------------------------------------------------------------------
Fotoerotica! >>> http://link.interia.pl/f1904


Mime
View raw message