VX/RMS OpenVMS RMS on Linux and UNIX - OpenVMS Migration


VX/RMS is an implementation of Digital's OpenVMS RMS (Record Management System) system for Linux/UNIX. VX/RMS allows OpenVMS programs, which access RMS directly, to function without change. All OpenVMS file types and access modes are supported. Support for relative, sequential and block mode files is supplied by direct access to the Linux/UNIX file system.

Learn More

INTRODUCTION

VX/RMS supports all of the major VMS/RMS file types. Relative and sequential file types are mapped directly onto the Linux/UNIX file systems.

Keyed files are mapped onto an extended version of the industry-standard index file system D-ISAM.

Fixed and variable length data objects are supported for index and sequential data files.

Relative record files support direct access with fixed record lengths.

VX/RMS is OpenVMS RMS call-compatible and uses identical RAB, FAB, XAB and NAM data structure for information exchange between the users, program and VX/RMS.

All of the fields are compatible, thereby eliminating the need to change application code when porting VMS/RMS to VX/RMS hosted on Linux/UNIX.

OpenVMS file and record locking is fully supported in order to provide the same level of functionality and integrity as VMS/RMS in a multi-user environment. In addition to VMS/RMS record-locking compatibility, VX/RMS also retains Linux/UNIX record-locking standards, thereby allowing concurrent access to the data from both migrated and native applications.

VX/RMS allows the user to set up and maintain VMS device names and device attributes in a device database. VMS device allocation and de-allocation integrity is maintained allowing shared and exclusive access to specific devices.

VX/RMS will recognize I/O to mailboxes, files, and terminal devices.

VX/RMS allows optional re-use of deleted record space thereby reducing the need to re-organize index files. VX/RMS supports an optional synchronous data and asynchronous index update mode for fast secure file I/O. ODBC support for accessing VX/RMS files

VMS FILESPECS AND LOGICALS

VX/RMS supports VMS logical names and file specifications. VX/RMS will fully decode VMS-style file specs and then automatically convert the final string to a valid UNIX file specification. VX/RMS has four file translation schemes, all selectable at run-time. The VMS file-name translation routines fully understand VMS devices, logicals and rooted directories, etc. For example, on a Linux/UNIX system the file specification "LOG1:[mydir.logs.rtr.data]1996.log" would translate to (assuming the logical LOG1 as assigned "[disk1]") "/disk1/mydir/logs/rtr/data/1996.log".

ERROR CODES

Where appropriate, VX/RMS will convert Linux/UNIX error codes to their RMS equivalents. If a file were opened for input, and it did not exist, the Linux/UNIX system would return ENOFILE. This would be translated by VX/RMS to 98964 (RMS$_FNF). By keeping the same errors code, programs that check for specific return code from RMS APIs, will continue to function correctly on VMS and the target system.

KEYED INDEXED FILES

All VMS operations on keyed files are fully supported. Sequential, keyed , GET by RFA, all perform identically to VMS. By default, VX/RMS supports up to 32 keys per file and each key can be split into 32 segments. These values can be extended, but D-ISAM data file compatibility may be lost. VX/RMS supports the following key types: BYTE (signed and unsigned) WORD (signed and unsigned) LONG (signed and unsigned) FLOAT DOUBLE STRING QUADWORD (signed and unsigned) DECIMAL All keys may be declared ascending or descending. SYS$DISPLAY will correctly return the file organization. Various forms of key compression are optionally available at run-time. NULL keys are not currently supported. Unlike VMS/RMS, when a key is deleted, VX/RMS has the option to re-use old data space thereby making file reorganizations less frequent. For users who rely on RFA uniqueness, a run-time option prevents the re-use of deleted data. For those users familiar with D-ISAM functionality, Sector7 has added extra capabilities to the base index package. GET by RFA will not change the current key sequence, UPDATE, DELETE/GET NEXT operations will always return the correct record as defined by VMS/RMS. Manual and automatic locking is supported. A standardized interface allowing your RMS files to be accessed. Your previous proprietary data files can now be accessed from many different UNIX fourth-generation report writers, query languages and databases. By using a file format package based on the industry standard D-ISAM structure, the benefits of increased performance, data integrity and compatibility with other products, based on the D-ISAM file system, are gained.

FIXED & SEQUENTIAL FILES

Relative record files are fully implemented on top of the native Linux/UNIX file system. VARIABLE and FIXED formats are supported and unwritten, deleted and filled records detected. DIRECT (RFA) access is fully supported.

Sequential file access is fully supported. Both FIXED and VARIABLE length is implemented. In addition to supporting the regular VMS sequential file types, VX/RMS will read Linux/UNIX files. DIRECT (RFA) access is fully supported.


RECORD LOCKING AND FILE POSITIONING

VX/RMS uses the identical record Locking Model as Open VMS. DISAM (the core ISAM manager for VX/RMS) has been modified to provide file positioning (RFA after RECORD LOCKED for example) and also KEY of REFERENCE following GET BY RFA as RMS on OpenVMS.

VX/RMS uses the standard Linux and UNIX record locking mechanisms. These record locking models have been enhanced for Multi Stream Enabled File I/O.

RMS API's

SYS$FREE
SYS$GET
SYS$OPEN
SYS$PARSE
SYS$PUT
SYS$READ
SYS$RELEASE
SYS$RENAME
SYS$REWIND
SYS$SEARCH
SYS$TRUNCATE
SYS$UPDATE
SYS$WAIT
SYS$WRITE

FDL

ANALYZE/FDL
CREATE/FDL
FDL$CREATE
FDL$GENERATE
FDL$PARSE
FDL$RELEASE