Package com.softwaremining.cics.util
Class LockManager
java.lang.Object
com.softwaremining.cics.util.LockManager
CicsLockManager
Simulates EXEC CICS ENQ/DEQ semantics for named resources:
- LENGTH: only the first N characters of the resource name are significant.
- SUSPEND/NOSUSPEND: wait for availability or fail immediately.
- Re-entrant: same task may ENQ the same resource multiple times (COUNTER).
- DEQ decrements; resource is released when counter reaches zero.
- Auto-clean: releaseAllLocks(...) to emulate CICS task-end cleanup.
Notes:
- LENGTH here is character-based. If byte-accurate behavior is needed, adapt normalize(...).
- TIMEOUT/INTERRUPTED are simulation-only return codes (define in CicsCodes).
-
Method Summary
Modifier and TypeMethodDescriptionstatic intreleaseAllLocks(long ownerId) Release all locks held by this session (ownerId).static intreleaseAllLocks(ICicsBaseService baseService) Convenience overload.static intreleaseLock(ICicsBaseService baseService, DeqDO deqdo) DEQ from DeqDO.static intrequestLock(ICicsBaseService baseService, EnqDO enqdo) ENQ from EnqDO, default with no timeout.static intrequestLock(ICicsBaseService baseService, EnqDO enqdo, long timeoutMillis) ENQ from EnqDO with timeout (ms) when suspend=true.
-
Method Details
-
requestLock
ENQ from EnqDO, default with no timeout. -
requestLock
ENQ from EnqDO with timeout (ms) when suspend=true. -
releaseLock
DEQ from DeqDO. Writes RESP and COUNTER back into the DTO fields. -
releaseAllLocks
public static int releaseAllLocks(long ownerId) Release all locks held by this session (ownerId). Returns count released. -
releaseAllLocks
Convenience overload.
-