Interface ClusteredLockManager


public interface ClusteredLockManager
Provides the API to define, create and remove ClusteredLocks.
Since:
9.2
Author:
Katia Aresti, karesti@redhat.com
  • Method Details

    • defineLock

      boolean defineLock(String name)
      Defines a lock with the specific name and the default ClusteredLockConfiguration. It does not overwrite existing configurations. Returns true if successfully defined or false if the lock is already defined or any other failure.
      Parameters:
      name - , the name of the lock
      Returns:
      true if the lock was successfully defined
    • defineLock

      boolean defineLock(String name, ClusteredLockConfiguration configuration)
      Defines a lock with the specific name and ClusteredLockConfiguration. It does not overwrite existing configurations. Returns true if successfully defined or false if the lock is already defined or any other failure.
      Parameters:
      name - , the name of the lock
      configuration - , a ClusteredLockConfiguration object with the configuration of the lock
      Returns:
      true if the lock was successfully defined
    • get

      ClusteredLock get(String name)
      Get’s a ClusteredLock by it’s name. This method throws ClusteredLockException if the lock is not not defined. A call of defineLock(String) must be done at least once in the cluster. This method will return the same lock object depending on the OwnershipLevel. If the OwnershipLevel is OwnershipLevel.NODE, it wll return the same instance per ClusteredLockManager If the OwnershipLevel is OwnershipLevel.INSTANCE, it wll return a new instance per call.
      Parameters:
      name - , the name of the lock
      Returns:
      ClusteredLock instance
    • getConfiguration

      ClusteredLockConfiguration getConfiguration(String name)
      Returns the configuration of a ClusteredLock, if such exists.This method throws ClusteredLockException if the lock is not not defined. A call of defineLock(String) must be done at least once in the cluster.
      Parameters:
      name - , the name of the lock
      Returns:
      ClusteredLockConfiguration for this lock
    • isDefined

      boolean isDefined(String name)
      Checks if a lock is already defined.
      Parameters:
      name - , the lock name
      Returns:
      true if this lock is defined
    • remove

      Removes a ClusteredLock if such exists.
      Parameters:
      name - , the name of the lock
      Returns:
      true if the lock is removed
    • forceRelease

      CompletableFuture<Boolean> forceRelease(String name)
      Releases - or unlocks - a ClusteredLock if such exists. This method is used when we just want to force the release the lock no matter who is holding it at a given time. Calling this method may cause concurrency issues and has to be used in exceptional situations.
      Parameters:
      name - , the name of the lock
      Returns:
      true if the lock has been released