Class PersistentLockManagerDialectSQL
- java.lang.Object
-
- org.copperengine.core.persistent.lock.PersistentLockManagerDialectSQL
-
- All Implemented Interfaces:
PersistentLockManagerDialect
- Direct Known Subclasses:
PersistentLockManagerDialectPostgres
public class PersistentLockManagerDialectSQL extends java.lang.Object implements PersistentLockManagerDialect
Implementation of thePersistentLockManagerDialect
for most supported SQL databases, currently Oracle, DerbyDB, H2 and MySQL. It does not support multiple instances working on the same database. SeePersistentLockManagerDialectOracleMultiInstance
for an Oracle implementation supporting multiple distributes instances. It does also not support Postgres. SeePersistentLockManagerDialectPostgres
for a Postgres implementation.
-
-
Field Summary
Fields Modifier and Type Field Description protected static java.lang.String
LOCK_PREFIX
-
Constructor Summary
Constructors Constructor Description PersistentLockManagerDialectSQL()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
acquireLock(java.lang.String _lockId, java.lang.String _workflowInstanceId, java.lang.String _correlationId, java.util.Date _insertTS, java.sql.Connection con)
protected java.util.concurrent.locks.ReentrantReadWriteLock
getRwl()
java.lang.String
releaseLock(java.lang.String _lockId, java.lang.String _workflowInstanceId, java.sql.Connection con)
boolean
supportsMultipleInstances()
If the implementation is designed for usage in a copper cluster with several copper engines sharing their database, then the result is "true", otherwise "false".
-
-
-
Field Detail
-
LOCK_PREFIX
protected static final java.lang.String LOCK_PREFIX
- See Also:
- Constant Field Values
-
-
Method Detail
-
getRwl
protected java.util.concurrent.locks.ReentrantReadWriteLock getRwl()
-
acquireLock
public java.lang.String acquireLock(java.lang.String _lockId, java.lang.String _workflowInstanceId, java.lang.String _correlationId, java.util.Date _insertTS, java.sql.Connection con) throws java.lang.Exception
- Specified by:
acquireLock
in interfacePersistentLockManagerDialect
- Throws:
java.lang.Exception
-
releaseLock
public java.lang.String releaseLock(java.lang.String _lockId, java.lang.String _workflowInstanceId, java.sql.Connection con) throws java.lang.Exception
- Specified by:
releaseLock
in interfacePersistentLockManagerDialect
- Throws:
java.lang.Exception
-
supportsMultipleInstances
public boolean supportsMultipleInstances()
Description copied from interface:PersistentLockManagerDialect
If the implementation is designed for usage in a copper cluster with several copper engines sharing their database, then the result is "true", otherwise "false".- Specified by:
supportsMultipleInstances
in interfacePersistentLockManagerDialect
- Returns:
- see above
-
-