If file system write-caching is enabled and the machine crashes, Derby conglomerates can be corrupted. By default, write-caching is usually enabled. For performance reasons, applications often leave it on despite our warning that this can lead to data corruption. Even if an application vendor recommends the disabling of the write-cache, the end user may still choose to leave it on. To reduce the tech-support burden for these applications, we could do the following:
o Improve Store error messages for errors caused by corrupt conglomerates. If the Store knows that a conglomerate is corrupt, the error message ought to be able to indicate which conglomerate needs repair. XBM0U is an example of an error message which could carry this extra information.
o We could provide a system procedure which takes an index conglomerate number as an argument and then drops and re-creates that conglomerate. This may result in a cascading series of conglomerate recreations if foreign keys are involved. This could be cheaper than compressing all of the tables in a big database after one conglomerate becomes corrupt.
This enhancement request was suggested by a discussion on DERBY-5221.