org.jgroups.blocks

## Interface LockManager

- All Known Implementing Classes:
    DistributedLockManager

  Deprecated.

      @Deprecated
      public interface LockManager

  `LockManager` represents generic lock manager that allows obtaining and releasing locks on objects.
  Author:
    Roman Rokytskyy (rrokytskyy@acm.org), Robert Schaffar-Taurok (robert@fusion.at)

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `lock(java.lang.Object obj, java.lang.Object owner, int timeout)` Deprecated. Obtain lock on `obj` for specified `owner`.
    `void` | `unlock(java.lang.Object obj, java.lang.Object owner)` Deprecated. Release lock on `obj` owned by specified `owner`.
    `void` | `unlock(java.lang.Object obj, java.lang.Object owner, boolean releaseMultiLocked)` Deprecated. Release lock on `obj` owned by specified `owner`.

- - ### Method Detail

    - #### lock

          void lock(java.lang.Object obj,
                  java.lang.Object owner,
                  int timeout)
                    throws LockNotGrantedException,
                           java.lang.ClassCastException,
                           ChannelException

      Deprecated.
      Obtain lock on `obj` for specified `owner`. Implementation should try to obtain lock few times within the specified timeout.
      Parameters:
        `obj` - obj to lock, usually not full object but object's ID.
        `owner` - object identifying entity that will own the lock.
        `timeout` - maximum time that we grant to obtain a lock.
      Throws:
        `LockNotGrantedException` - if lock is not granted within specified period.
        `java.lang.ClassCastException` - if `obj` and/or `owner` is not of type that implementation expects to get (for example, when distributed lock manager obtains non-serializable `obj` or `owner`).
        `ChannelException` - if something bad happened to communication channel.

    - #### unlock

          void unlock(java.lang.Object obj,
                    java.lang.Object owner)
                      throws LockNotReleasedException,
                             java.lang.ClassCastException,
                             ChannelException

      Deprecated.
      Release lock on `obj` owned by specified `owner`. since 2.2.9 this method is only a wrapper for unlock(Object lockId, Object owner, boolean releaseMultiLocked). Use that with releaseMultiLocked set to true if you want to be able to release multiple locked locks (for example after a merge)
      Parameters:
        `obj` - obj to lock, usually not full object but object's ID.
        `owner` - object identifying entity that will own the lock.
      Throws:
        `LockOwnerMismatchException` - if lock is owned by another object.
        `java.lang.ClassCastException` - if `obj` and/or `owner` is not of type that implementation expects to get (for example, when distributed lock manager obtains non-serializable `obj` or `owner`).
        `ChannelException` - if something bad happened to communication channel.
        `LockNotReleasedException`

    - #### unlock

          void unlock(java.lang.Object obj,
                    java.lang.Object owner,
                    boolean releaseMultiLocked)
                      throws LockNotReleasedException,
                             java.lang.ClassCastException,
                             ChannelException,
                             LockMultiLockedException

      Deprecated.
      Release lock on `obj` owned by specified `owner`.
      Parameters:
        `obj` - obj to lock, usually not full object but object's ID.
        `owner` - object identifying entity that will own the lock.
        `releaseMultiLocked` - force unlocking of the lock if the local lockManager owns the lock even if another lockManager owns the same lock
      Throws:
        `LockOwnerMismatchException` - if lock is owned by another object.
        `java.lang.ClassCastException` - if `obj` and/or `owner` is not of type that implementation expects to get (for example, when distributed lock manager obtains non-serializable `obj` or `owner`).
        `ChannelException` - if something bad happened to communication channel.
        `LockMultiLockedException` - if the lock was unlocked, but another node already held the lock
        `LockNotReleasedException`

Copyright © 1998-2009 Bela Ban / Red Hat. All Rights Reserved.