org.apache.activemq.store.jdbc
Class LeaseDatabaseLocker

java.lang.Object
  extended by org.apache.activemq.util.ServiceSupport
      extended by org.apache.activemq.broker.AbstractLocker
          extended by org.apache.activemq.store.jdbc.LeaseDatabaseLocker
All Implemented Interfaces:
Locker, Service

public class LeaseDatabaseLocker
extends AbstractLocker

Represents an exclusive lease on a database to avoid multiple brokers running against the same logical database.


Field Summary
protected  DataSource dataSource
           
protected  long diffFromCurrentTime
           
protected  String leaseHolderId
           
protected  int maxAllowableDiffFromDBTime
           
protected  int queryTimeout
           
protected  Statements statements
           
protected  boolean stopping
           
 
Fields inherited from class org.apache.activemq.broker.AbstractLocker
DEFAULT_LOCK_ACQUIRE_SLEEP_INTERVAL, failIfLocked, lockAcquireSleepInterval, name
 
Constructor Summary
LeaseDatabaseLocker()
           
 
Method Summary
 void configure(PersistenceAdapter adapter)
          Optionally configure the locker with the persistence adapter currently used You can use persistence adapter configuration details like, data directory datasource, etc.
 void doStart()
           
 void doStop(ServiceStopper stopper)
           
 String getLeaseHolderId()
           
 long getLockAcquireSleepInterval()
           
 int getMaxAllowableDiffFromDBTime()
           
 int getQueryTimeout()
           
protected  long initTimeDiff(Connection connection)
           
 boolean keepAlive()
          Used by a timer to keep alive the lock.
 void setLeaseHolderId(String leaseHolderId)
           
 void setLockAcquireSleepInterval(long lockAcquireSleepInterval)
          set the delay interval in milliseconds between lock acquire attempts
 void setMaxAllowableDiffFromDBTime(int maxAllowableDiffFromDBTime)
           
 void setQueryTimeout(int queryTimeout)
           
 
Methods inherited from class org.apache.activemq.broker.AbstractLocker
setFailIfLocked, setName
 
Methods inherited from class org.apache.activemq.util.ServiceSupport
addServiceListener, dispose, isStarted, isStopped, isStopping, postStop, preStart, removeServiceListener, start, stop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.activemq.Service
start, stop
 

Field Detail

dataSource

protected DataSource dataSource

statements

protected Statements statements

stopping

protected boolean stopping

maxAllowableDiffFromDBTime

protected int maxAllowableDiffFromDBTime

diffFromCurrentTime

protected long diffFromCurrentTime

leaseHolderId

protected String leaseHolderId

queryTimeout

protected int queryTimeout
Constructor Detail

LeaseDatabaseLocker

public LeaseDatabaseLocker()
Method Detail

configure

public void configure(PersistenceAdapter adapter)
               throws IOException
Description copied from interface: Locker
Optionally configure the locker with the persistence adapter currently used You can use persistence adapter configuration details like, data directory datasource, etc. to be used by the locker

Throws:
IOException

doStart

public void doStart()
             throws Exception
Specified by:
doStart in class ServiceSupport
Throws:
Exception

initTimeDiff

protected long initTimeDiff(Connection connection)
                     throws SQLException
Throws:
SQLException

doStop

public void doStop(ServiceStopper stopper)
            throws Exception
Specified by:
doStop in class ServiceSupport
Throws:
Exception

keepAlive

public boolean keepAlive()
                  throws IOException
Description copied from interface: Locker
Used by a timer to keep alive the lock. If the method returns false the broker should be terminated if an exception is thrown, the lock state cannot be determined

Specified by:
keepAlive in interface Locker
Overrides:
keepAlive in class AbstractLocker
Throws:
IOException

getLockAcquireSleepInterval

public long getLockAcquireSleepInterval()

setLockAcquireSleepInterval

public void setLockAcquireSleepInterval(long lockAcquireSleepInterval)
Description copied from interface: Locker
set the delay interval in milliseconds between lock acquire attempts

Specified by:
setLockAcquireSleepInterval in interface Locker
Overrides:
setLockAcquireSleepInterval in class AbstractLocker
Parameters:
lockAcquireSleepInterval - the sleep interval in miliseconds

getQueryTimeout

public int getQueryTimeout()

setQueryTimeout

public void setQueryTimeout(int queryTimeout)

getLeaseHolderId

public String getLeaseHolderId()

setLeaseHolderId

public void setLeaseHolderId(String leaseHolderId)

getMaxAllowableDiffFromDBTime

public int getMaxAllowableDiffFromDBTime()

setMaxAllowableDiffFromDBTime

public void setMaxAllowableDiffFromDBTime(int maxAllowableDiffFromDBTime)


Copyright © 2005-2013 The Apache Software Foundation. All Rights Reserved.