�Crash recovery is automatic. The system should automatically recover (when it
is reopened) from all failures except media failures. You can prevent the
automatic recovery by wiring the DataStore.ResponsEvent.
A media failure in the database file itself (*.jds) could be recovered if:
1) you had a backup copy of the .jds file.
2) you archived off all the log files that were created since your backup .jds file.
Since the DataStore.ResponseEvent also sends out notifications when it is about
to drop logfiles that are not needed for active transactions or for system crash
recovery, you could wire this to archive off old log files. In this case you
are implementing a log archive manager for a DataStore.
Since we are a low administration embedable database, we mostly focus on
automatic recovery of the more common failures like: abnormal application
termination, operating system crash and power failure. Recovery from damaged
media can be accomplished, but requires more administration.
If a DataStore is not transactional or some log files are lost, you can:
1) open the DataStore in readOnly mode (this allows even a transactional store to
be opened even though its log files are missing.
2) use the DataStoreConnection.copyStreams() method to copy the contents to a new
DataStore. It has an option to ignore errors encountered reading the source
DataStore. DataStore Explorer will help you in performing all these tasks.
You can dump the contents of a txlog by calling DataStoreConnection.dumpTxLog().
Its mostly for auditing purposes. It was actually added to debug - it is the
whole history with user names and time stamps.