|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.lang.Throwable
java.lang.Exception
java.lang.RuntimeException
com.sleepycat.je.DatabaseException
com.sleepycat.je.OperationFailureException
com.sleepycat.je.rep.DatabasePreemptedException
public class DatabasePreemptedException
Thrown when attempting to use a Database handle that was forcibly closed by replication. This exception only occurs in a replicated environment and normally only occurs on a Replica node. In the case of a DPL schema upgrade where an entity class or secondary key is renamed, it may also occur on a Master node, as described below.
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:
truncateDatabase
,
removeDatabase
and
renameDatabase
.
When using the DPL
, this occurs only in two
circumstances:
truncateClass
method has
been called on the Master node.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 Transaction
handle is not
invalidated as a result of this exception.
Constructor Summary | |
---|---|
DatabasePreemptedException(String message,
String dbName,
Database dbHandle)
For internal use only. |
Method Summary | |
---|---|
Database |
getDatabase()
Returns the database handle that was forcibly closed. |
String |
getDatabaseName()
Returns the name of the database that was forcibly closed. |
OperationFailureException |
wrapSelf(String msg)
For internal use only. |
Methods inherited from class com.sleepycat.je.DatabaseException |
---|
addErrorMessage, getMessage, getVersionHeader |
Methods inherited from class java.lang.Throwable |
---|
fillInStackTrace, getCause, getLocalizedMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public DatabasePreemptedException(String message, String dbName, Database dbHandle)
Method Detail |
---|
public Database getDatabase()
public String getDatabaseName()
public OperationFailureException wrapSelf(String msg)
wrapSelf
in class OperationFailureException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |