VX/RMS
VX/RMS is an implementation of Digital's VMS/RMS system for Linux/UNIX. VX/RMS allows VMS programs, which access RMS directly, to function without change. All VMS 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.
Key Benefits
Introduction to RMS on Linux/UNIX
Supported APIs
Keyed Files
Relative Record Files
Sequential Files
Logical Names and VMS File Name Conversion
RMS Error Return Codes
D-ISAM (Indexed Sequential File Manager for Linux/UNIX )
ODBC Access to RMS files from Linux/UNIX
Converting Files from VMS to Linux/UNIX
Key Benefits
- 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 VMS/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.
- VMS 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
Introduction
Support for keyed files is based on the industry standard D-ISAM V4 file format. We use D-ISAM (or an enhanced D-ISAM work alike) which allows VX/RMS keyed index-data files to be simultaneously accessed by third-generation VAX languages such as BASIC , C , COBOL, FORTRAN while retaining record locking compatibility with existing fourth-generation report writers, query languages and databases.
VX/RMS was introduced in 1989, and is in use by many mission critical applications that require constant access to data. Sector7 has extended the capabilities of the D-ISAM interface allowing a configurable, synchronous write to the data file. Since D-ISAM creates two files for storing keyed information (data and keyed), this optional security feature guarantees that the data is written in case of a system failure. The keyed file can be rebuilt from the DATA and the FDL, thus ensuring no loss of data.
VX/RMS files can be created directly from VMS/RMS, the VMS/RMS file system, by use of VX/DX which creates packed archives of VMS directories and restores the original file format, and converts the data into a Sector7 VX/RMS file structure. VX/DX has a programmable conversion language that allows the correct conversion of transaction type (variable format) data.
Supported APIs
| VX/RMS supports the following VMS/RMS SYS$ functions: | ||
| SYS$CLOSE | SYS$CONNECT | SYS$COPY |
| SYS$CREATE | SYS$DELETE | SYS$DISCONNECT |
| SYS$DISPLAY | SYS$ERASE | SYS$EXTEND |
| SYS$FIND | SYS$FLUSH | 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* | ||
VX/RMS also supports a full implementation of SYS$PARSE and SYS$SEARCH. SYS$PARSE, if supplied with a wild-card specification, will scan all directories and sub-directories for matching file specs which are returned by $SEARCH.
Keyed File Access
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.
Relative Record 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 Files (Variable and Fixed)
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.
Logical Names and VMS Filename Conversions
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".
RMS Error Return 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.
D-ISAM
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.
ODBC
ODBC drivers are available that allow Windows applications to access RMS data files served from Linux/UNIX systems. ODBC is an additional module and is NOT included in the VX/RMS package.


