Class DatabaseFactory.EnvironmentHolder.DirectoryLock

java.lang.Object
com.tangosol.io.bdb.DatabaseFactory.EnvironmentHolder.DirectoryLock
Enclosing class:
DatabaseFactory.EnvironmentHolder

protected static class DatabaseFactory.EnvironmentHolder.DirectoryLock extends Object
Directory based lock.

A single instance of the DirectoryLock is not intended for inter thread locking. Multiple instance referring to the same File should be used instead.

  • Field Details

    • LOCK_FILE_NAME

      public static final String LOCK_FILE_NAME
      Name of warning file.
      See Also:
    • m_dir

      protected File m_dir
      Directory to lock.
    • m_fstreamLocked

      protected FileOutputStream m_fstreamLocked
      The FileStream which the actual lock is held on.
    • m_lockDir

      protected FileLock m_lockDir
      The actual FileLock.
    • m_sLockText

      protected String m_sLockText
      Text to include in the lock file.
  • Constructor Details

    • DirectoryLock

      public DirectoryLock(File dir, String sLockText)
      Create a DirectoryLock which can be used to try to lock a directory. The object is created in an unlocked state.
      Parameters:
      dir - the directory to lock
      sLockText - the text to include in the lock file
  • Method Details

    • tryLock

      public boolean tryLock() throws IOException
      Try to lock the directory.
      Returns:
      true if a lock is obtained, false if it is locked by another DirectoryLock
      Throws:
      IOException - if an IO error occurs while creating the lock file
    • tryUnlock

      public boolean tryUnlock() throws IOException
      Try to unlock the directory.
      Returns:
      true if a lock is released, false if the directory was not locked by this DirectoryLock
      Throws:
      IOException - if an IO error occurs while deleting the lock file, the lock may be left in an unlocked state
    • finalize

      protected void finalize() throws Throwable
      Automatically release the lock on finalization.

      The OS will ensure that the lock is released regardless but this allows the lock file to be deleted as well.

      Overrides:
      finalize in class Object
      Throws:
      Throwable - if an error occurs