public class VerifyingLockFactory extends LockFactory
LockFactory that wraps another LockFactory and verifies that each lock obtain/release
is "correct" (never results in two processes holding the
lock at the same time). It does this by contacting an
external server (LockVerifyServer) to assert that
at most one process holds the lock at a time. To use
this, you should also run LockVerifyServer on the
host & port matching what you pass to the constructor.LockVerifyServer,
LockStressTestlockPrefix| Constructor and Description |
|---|
VerifyingLockFactory(byte id,
LockFactory lf,
String host,
int port) |
| Modifier and Type | Method and Description |
|---|---|
void |
clearLock(String lockName)
Attempt to clear (forcefully unlock and remove) the
specified lock.
|
Lock |
makeLock(String lockName)
Return a new Lock instance identified by lockName.
|
getLockPrefix, setLockPrefixpublic VerifyingLockFactory(byte id,
LockFactory lf,
String host,
int port)
throws IOException
id - should be a unique id across all clientslf - the LockFactory that we are testinghost - host or IP where LockVerifyServer
is runningport - the port LockVerifyServer is
listening onIOExceptionpublic Lock makeLock(String lockName)
LockFactorymakeLock in class LockFactorylockName - name of the lock to be created.public void clearLock(String lockName) throws IOException
LockFactoryclearLock in class LockFactorylockName - name of the lock to be cleared.IOException