Package tigase.db.util.locker
Class ConnectionLock
- java.lang.Object
-
- tigase.db.util.locker.ConnectionLock
-
public abstract class ConnectionLock extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanisLockedprotected java.lang.StringjdbcConnectionprotected intlockAttemptDelayprotected intlockAttemptsLimit
-
Constructor Summary
Constructors Modifier Constructor Description protectedConnectionLock(java.lang.String db_conn)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidcleanup()protected booleanexecuteQuery(java.sql.Connection connection, java.lang.String query)static java.util.Optional<ConnectionLock>getConnectionLocker(java.lang.String db_conn)booleanisLocked()booleanlock()protected abstract booleanlockDatabase(java.sql.Connection connection)protected voidrelease(java.sql.Statement statement, java.sql.ResultSet resultSet)booleanunlock()protected abstract booleanunlockDatabase(java.sql.Connection connection)
-
-
-
Method Detail
-
getConnectionLocker
public static java.util.Optional<ConnectionLock> getConnectionLocker(java.lang.String db_conn) throws java.lang.IllegalArgumentException
- Throws:
java.lang.IllegalArgumentException
-
lock
public boolean lock()
-
unlock
public boolean unlock()
-
cleanup
public void cleanup()
-
isLocked
public boolean isLocked()
-
lockDatabase
protected abstract boolean lockDatabase(java.sql.Connection connection)
- Parameters:
connection-Connectionwhich should hold the lock- Returns:
trueif the locking was successful orfalseif it wasn't
-
release
protected void release(java.sql.Statement statement, java.sql.ResultSet resultSet)
-
unlockDatabase
protected abstract boolean unlockDatabase(java.sql.Connection connection)
- Parameters:
connection-Connectionwhich holds the lock and which should be unlocked- Returns:
trueif the unlocking was successful orfalseif it wasn't and the lock is still hold
-
executeQuery
protected boolean executeQuery(java.sql.Connection connection, java.lang.String query)
-
-