Interface ILockManager

    • Method Summary

      All Methods Instance Methods Abstract Methods Deprecated Methods 
      Modifier and Type Method Description
      java.util.concurrent.locks.Lock getLock​(java.lang.String resourceId)
      Deprecated.
      since 8.0.0 replaced by getWriteLock(String)
      java.util.concurrent.locks.Lock getReadLock​(java.lang.String resourceId)
      Returns a non-exclusive read lock object for the specified resource.
      java.util.concurrent.locks.Lock getWriteLock​(java.lang.String resourceId)
      Returns an exclusive write lock object for the specified resource.
      void unlockExpiredLocks()
      Deletes all the locks that have expired.
    • Method Detail

      • getLock

        @Deprecated
        java.util.concurrent.locks.Lock getLock​(java.lang.String resourceId)
        Deprecated.
        since 8.0.0 replaced by getWriteLock(String)
        Returns a cluster-wide exclusive lock object for the specified resource.

        See lumis.portal.lock for details about the consequences of the lock scope being cluster-wide.

        The lock implementation returned does not support conditions. The Lock.newCondition() method throws UnsupportedOperationException.

        If this method is called multiple times with the same resourceId value, the lock objects returned use a common synchronizing resource. This way, calling Lock.lock() on any of these lock objects will generate a lock in the same resource (and these locks will block each other). But a Lock.unlock() must still be executed in the same Lock instance on which the lock was acquired, since it is considered the owner of that lock.

        Parameters:
        resourceId - the identifier of the resource the lock refers to. It is recommended to name the identifier using Java class name style (e.g. com.company.module.etc.MyResource) to prevent naming conflicts on different implementations.
        Returns:
        the lock object.
        Since:
        4.2.0
        See Also:
        lumis.portal.lock
      • getReadLock

        java.util.concurrent.locks.Lock getReadLock​(java.lang.String resourceId)
        Returns a non-exclusive read lock object for the specified resource.

        See lumis.portal.lock for details about the consequences of the lock scope being cluster-wide.

        The lock implementation returned does not support conditions. The Lock.newCondition() method throws UnsupportedOperationException.

        This kind of lock requires that there's no write lock holding the lock of the same resource. In the other hand, multiple read locks may be holding the lock for the same resource at the same time.

        This lock is indicated when some resource must be read but it will not be changed. This way, multiple processes that must read the same resource will not block each other.

        Parameters:
        resourceId - the identifier of the resource the lock refers to. It is recommended to name the identifier using Java class name style (e.g. com.company.module.etc.MyResource) to prevent naming conflicts on different implementations.
        Returns:
        the lock object.
        Since:
        8.0.0
        See Also:
        lumis.portal.lock
      • getWriteLock

        java.util.concurrent.locks.Lock getWriteLock​(java.lang.String resourceId)
        Returns an exclusive write lock object for the specified resource.

        See lumis.portal.lock for details about the consequences of the lock scope being cluster-wide.

        The lock implementation returned does not support conditions. The Lock.newCondition() method throws UnsupportedOperationException.

        This kind of lock requires that there's no other lock holding the lock of the same resource. Once this lock has been locked, no other lock will be able to access the specified resource until this lock has been unlocked.

        This lock is indicated when some resource must be changed. This way, the owner of this lock can change the resource exclusively, avoiding other processes to read or change the specified resource erroneously.

        Parameters:
        resourceId - the identifier of the resource the lock refers to. It is recommended to name the identifier using Java class name style (e.g. com.company.module.etc.MyResource) to prevent naming conflicts on different implementations.
        Returns:
        the lock object.
        Since:
        8.0.0
        See Also:
        lumis.portal.lock