DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

No Wait on Blocks

Normally when a JE transaction is blocked on a lock request, it must wait until the requested lock becomes available before its thread-of-control can proceed. However, it is possible to configure a transaction handle such that it will report a deadlock rather than wait for the block to clear.

You do this on a transaction by transaction basis by specifying true to the TransactionConfig.setNoWait() method.

For example:

    Transaction txn = null;
    try {
        TransactionConfig tc = new TransactionConfig();
        tc.setNoWait(true);
        txn = myEnv.beginTransaction(null, tc);

        ...
    } catch (DatabaseException de) {
        // Deadlock detection and exception handling omitted
        // for brevity
        ...