DbLockNotGrantedException
Prev | Chapter 6. The DbException Class | Next

## DbLockNotGrantedException

    #include <db_cxx.h>

    class DbLockNotGrantedException : public DbException {
    public:
        db_lockop_t get_op() const;
        db_lockmode_t get_mode() const;
        const Dbt* get_obj() const;
        DbLock *get_lock() const;
        int get_index() const;
    };

This information describes the `DbLockNotGrantedException` class and how it is used by the various Berkeley DB classes.

A `DbLockNotGrantedException` is thrown when lock or transaction timeouts have been configured, a database operation has timed out, and the DB_TIME_NOTGRANTED configuration flag has been specified.

Additionally `DbLockNotGrantedException` is thrown when a Berkeley DB Concurrent Data Store database environment configured for lock timeouts was unable to grant a lock in the allowed time.

Finally, `DbLockNotGrantedException` is thrown when a lock requested using the DbEnv::lock_get() or DbEnv::lock_vec() methods, where the DB_LOCK_NOWAIT flag or lock timers were configured, could not be granted before the wait-time expired.

The DbException errno value is set to `DB_LOCK_NOTGRANTED`.

The following getter methods are available on this class:

- `get_op()`

  Returns `DB_LOCK_GET` when DbEnv::lock_get() was called, and returns the op for the failed `DB_LOCKREQ` when DbEnv::lock_vec() was called. If this exception is raised due to a database operation, `DB_LOCK_GET` is returned.

- `get_mode()`

  Returns the mode parameter when DbEnv::lock_get() was called, and returns the mode for the failed `DB_LOCKREQ` when DbEnv::lock_vec() was called. If this exception is raised due to a database operation, `DB_LOCK_NG` is returned.

- `get_obj()`

  Returns the object parameter when DbEnv::lock_get() was called, and returns the object for the failed `DB_LOCKREQ` when DbEnv::lock_vec() was called. The Dbt pointer may or may not refer valid memory, depending on whether the Dbt used in the call to the failed DbEnv::lock_get() or DbEnv::lock_vec() method is still in scope and has not been deleted.

- `get_lock()`

  Returns NULL when DbEnv::lock_get() was called, and returns the lock in the failed `DB_LOCKREQ` when DbEnv::lock_vec() was called. If this exception is raised due to a database operation, NULL is returned.

- `get_index()`

  Returns `-1` when DbEnv::lock_get() was called, and returns the index of the failed `DB_LOCKREQ` when DbEnv::lock_vec() was called. If this exception is raised due to a database operation, `0` is returned.

Prev | Up | Next
DbDeadlockException | Home | DbMemoryException