This exception occurs when accessing a database or store and one of the following methods was recently executed on the master node and then replayed on a replica node: {@link com.sleepycat.je.Environment#truncateDatabase truncateDatabase}, {@link com.sleepycat.je.Environment#removeDatabase removeDatabase} and{@link com.sleepycat.je.Environment#renameDatabase renameDatabase}.
When using the {@link com.sleepycat.persist DPL}, this occurs only in two circumstances:
When this exception occurs, the application must close any open cursors and abort any open transactions that are using the database or store, and then close the database or store handle. If the application wishes, it may then reopen the database (if it still exists) or store.
Some applications may wish to coordinate the Master and Replica sites to prevent a Replica from accessing a database that is being truncated, removed or renamed, and thereby prevent this exception. Such coordination is not directly supported by JE. The DatabasePreemptedException is provided to allow an application to handle database truncation, removal and renaming without such coordination between nodes.
The {@link com.sleepycat.je.Transaction} handle is notinvalidated as a result of this exception.
@since 4.0
|
|
|
|