Technical Capabilities
Having trouble finding what you need?
Get in touch with us, so we can answer your specific questions directly.
Get In Touch

VX/LCKMGR: OpenVMS Lock Manager

Overview

VX/LCKMGR is a fully compatible OpenVMS lock management system designed for Linux environments. This solution ensures identical functionality to OpenVMS lock management while leveraging Sector7’s high-speed AST backplane for enhanced performance. VX/LCKMGR supports the core OpenVMS lock manager functions, such as SYS$ENQ(W), SYS$DEQ(W), and SYS$GETLKI(), enabling seamless integration with existing OpenVMS applications.

In stress testing, VX/LCKMGR demonstrated its high performance by handling 80,000 lock conversions per second on a 1997-era quad-core Opteron server, ensuring reliability even in demanding production environments. Although VX/LCKMGR fully supports OpenVMS lock management functions, it is limited to a single-node environment, which is important to consider when planning its implementation.

Key Features

Supports all major OpenVMS lock manager functions – including SYS$ENQ(W), SYS$DEQ(W), and SYS$GETLKI().

High-performance locking system – stress-tested at 80,000 lock conversions per second on a 1997 quad-core Opteron server.

Real-time lock request logging and replay – for diagnostics and performance tuning.

Live lock request display – allowing administrators to monitor active locks.

Single-node environment – supports all OpenVMS locking modes but does not operate across multiple nodes.

Supported Lock Modes

VX/LCKMGR supports the following VMS/OpenVMS lock modes, enabling flexible management of resources across different scenarios:

Lock Mode Description
LCK$K_PRMODE Protected Read
(share lock).
LCK$K_PWMODE Protected Write
(update lock).
LCK$K_CRMODE Concurrent Read.
LCK$K_CWMODE Concurrent Write.
LCK$K_EXMODE Exclusive
(exclusive lock).
LCK$K_NLMODE NULL
(placeholder for lock conversions).


These lock modes provide the flexibility needed to manage complex locking mechanisms across different processes in Linux environments.

Supported $ENQ/$DEQ Codes

VX/LCKMGR supports a variety of $ENQ and $DEQ codes, ensuring compatibility with existing OpenVMS applications. These include:

LCK$V_VALBLK - Value Block

LCK$V_CONVERT - Convert Lock

LCK$V_NOQUEUE - No Queue

LCK$V_SYNCSTS - Sync Status

LCK$V_SYSTEM - System Lock

LCK$V_RECOVER - Recovery Mode

LCK$V_EXPEDITE - Expedite Lock

• And more…

These codes provide additional functionality for managing and monitoring lock operations within the system.

Supported $GETLKI Codes

VX/LCKMGR includes support for the following $GETLKI codes, enabling users to retrieve detailed information about lock status, grants, and conflicts:

LKI$C_LENGTH - Lock Length

LKI$_BLOCKEDBY - Blocked By Lock

LKI$_BLOCKING - Blocking Lock

LKI$_LCKCOUNT - Lock Count

LKI$_LOCKID - Lock ID

LKI$_REMLKID - Remote Lock ID

• And others…

These codes help retrieve essential information for troubleshooting, performance monitoring, and diagnostics.

VX/LCKMGR Valid Return Codes

The system provides a range of valid return codes that offer insights into the status of lock requests:

SS$_NORMAL: Normal operation

LKI$_BLOCKEDBY: Blocked by another lock

LKI$_LOCKID: Lock ID assigned

LKI$_WAITCOUNT: Count of waiting requests

LKI$_STATE: Current lock state

These return codes allow you to easily track and handle lock management scenarios, ensuring smooth operations.

VX/LCKMGR I/O Status Codes

VX/LCKMGR also returns specific I/O status codes for lock requests, giving users an overview of the current lock status and behavior:

LKI$C_CONVERT: Lock conversion status

LKI$C_WAITING: Waiting for lock

LKI$C_RSPNOTQED: Response not queued

LKI$C_RSPGRANTD: Response granted

These I/O status codes provide feedback on the lock management process, helping administrators monitor and adjust lock handling in real-time.

Logging and Diagnostic Capabilities

One of the standout features of VX/LCKMGR is its ability to log all lock requests. This log can then be replayed for performance tuning and diagnostic purposes. The ability to replay lock requests without issuing ASTs (Asynchronous System Traps) helps to identify performance bottlenecks and further optimize the system for better efficiency.

Additionally, VX/LCKMGR offers a real-time display of all lock requests, making it easier for system administrators to track lock statuses and manage resources effectively in a live environment.

Conclusion

VX/LCKMGR delivers a fully functional, high-performance lock manager for Linux environments, closely emulating the lock management capabilities of OpenVMS. By supporting all critical OpenVMS lock manager functions and providing advanced logging, diagnostic, and performance monitoring tools, VX/LCKMGR ensures that your migration from OpenVMS to modern platforms is seamless, efficient, and reliable.

Transform Your Legacy Software Today!

Get In Touch
Unlock the potential of your legacy software with our expert migration services.