The derby.system.durability property changes the default durability of Derby to improve performance at the expense of consistency and durability of the database.
The only valid supported case insensitive value is test. If this property is set to any value other than test, this property setting is ignored. When derby.system.durability is set to test, the store system will not force I/O synchronization calls for:
While performance is improved, note that under these conditions, a commit no longer guarantees that the transaction's modification will survive a system crash or JVM termination, the database may not recover successfully upon restart, a near-full disk at runtime may cause unexpected errors, and the database may be in an inconsistent state.
If you boot the database with this property set to test, the following warning message is logged in the derby.log file:
WARNING: The database is booted with derby.system.durability=test. In this mode, it is possible that database may not be able to recover, committed transactions may be lost, and the database may be in an inconsistent state. Please use this mode only when these consequences are acceptable.
A similar message will appear in the derby.log file if the database was booted with derby.system.durability=test at any time previously.
Once the database is booted with derby.system.durability=test, there are no guarantees that the database is consistent.
This property is ignored by default.
The only supported value is test.
derby.system.durability=test
Since this is a system property, you can set it in the derby.properties file or on the command line of the JVM when starting the application.
You might enable this property when using Derby as a test database where consistency or recoverability is not an issue.
This property is static; if you change it while Derby is running, the change does not take effect until you reboot.