Package liquibase.ext

Class TimeoutLockService

java.lang.Object
liquibase.lockservice.StandardLockService
liquibase.ext.TimeoutLockService
All Implemented Interfaces:
liquibase.lockservice.LockService, liquibase.servicelocator.PrioritizedService

public class TimeoutLockService extends liquibase.lockservice.StandardLockService
Will force release any locks older than the configured changeLogLockWaitTimeInMinutes to avoid crash loops due to unclean shutdowns.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
     

    Fields inherited from class liquibase.lockservice.StandardLockService

    changeLogLockPollRate, changeLogLockRecheckTime, coreBundle, database, hasChangeLogLock, hasDatabaseChangeLogLockTable, isDatabaseChangeLogLockTableInitialized, quotingStrategy, random

    Fields inherited from interface liquibase.servicelocator.PrioritizedService

    COMPARATOR, PRIORITY_DATABASE, PRIORITY_DEFAULT
  • Constructor Summary

    Constructors
    Constructor
    Description
     
    TimeoutLockService(long lockRenewalInterval)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
     
    int
     
    void
     
    static void
    setRenewalConnectionCreator(rx.functions.Func0<liquibase.database.Database> createRenewalConnectionCreator)
     
    void
     

    Methods inherited from class liquibase.lockservice.StandardLockService

    destroy, forceReleaseLock, getChangeLogLockRecheckTime, getChangeLogLockWaitTime, hasChangeLogLock, hasDatabaseChangeLogLockTable, hasDatabaseChangeLogLockTable, init, isDatabaseChangeLogLockTableInitialized, isDatabaseChangeLogLockTableInitialized, listLocks, reset, setChangeLogLockRecheckTime, setChangeLogLockWaitTime, setDatabase, supports

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • DEFAULT_LOCK_RENEWAL_INTERVAL

      public static final int DEFAULT_LOCK_RENEWAL_INTERVAL
      See Also:
  • Constructor Details

    • TimeoutLockService

      public TimeoutLockService()
    • TimeoutLockService

      public TimeoutLockService(long lockRenewalInterval)
  • Method Details

    • waitForLock

      public void waitForLock() throws liquibase.exception.LockException
      Specified by:
      waitForLock in interface liquibase.lockservice.LockService
      Overrides:
      waitForLock in class liquibase.lockservice.StandardLockService
      Throws:
      liquibase.exception.LockException
    • getPriority

      public int getPriority()
      Specified by:
      getPriority in interface liquibase.servicelocator.PrioritizedService
      Overrides:
      getPriority in class liquibase.lockservice.StandardLockService
    • acquireLock

      public boolean acquireLock() throws liquibase.exception.LockException
      Specified by:
      acquireLock in interface liquibase.lockservice.LockService
      Overrides:
      acquireLock in class liquibase.lockservice.StandardLockService
      Throws:
      liquibase.exception.LockException
    • releaseLock

      public void releaseLock() throws liquibase.exception.LockException
      Specified by:
      releaseLock in interface liquibase.lockservice.LockService
      Overrides:
      releaseLock in class liquibase.lockservice.StandardLockService
      Throws:
      liquibase.exception.LockException
    • setRenewalConnectionCreator

      public static void setRenewalConnectionCreator(rx.functions.Func0<liquibase.database.Database> createRenewalConnectionCreator)