REXX for CICS TS: Overview of product features

SAA Level 2 REXX language support under REXX

REXX for CICS® TS is currently at REXX language level 3.48 and provides all Systems Application Architecture® (SAA) REXX Level 2 capability except for stream I/O and REXX language processor exits.

Support for the interpretive execution of REXX execs

Interpretive execution of REXX execs provides the ability to create and run REXX execs without first compiling them. The use of the interpreter provides a very productive development, customization, prototyping, and command list (CLIST) processing environment. This is because it provides a fast development cycle, source level interactive debug, and a native CICS-based development environment, in one integrated package.

Note: REXX execs can freely invoke CICS programs and transactions written in any CICS supported language.

CICS-based text editor for REXX execs and data

A native CICS text editor, similar to the TSO ISPF/PDF and VM/CMS XEDIT editors, is provided as part of REXX for CICS TS, so execs (and other data) can be created and modified directly under CICS, and from CICS-based application platforms. Edit support is provided for files residing in the provided VSAM-based REXX File System (RFS), and for files existing in traditional z/OS® partitioned data sets.

Note: SVC 99 is used to dynamically allocate partitioned data sets specified in the PATH, IMPORT, EXPORT, ALLOC, and editor GETPDS commands. Other partitioned data sets (those concatenated to ddnames CICAUTH, CICEXEC, and CICUSER) are allocated at region startup. It is advisable to use this technique mainly for file migration purposes, to minimize the impact on system performance.

VSAM-based file system for REXX execs and data

REXX for CICS TS includes the REXX File System (RFS), a high-level file system that is hierarchically structured and is similar to the Advanced Interactive Executive (AIX®), and the VM Shared File systems. The RFS automatically provides each user with a file system to store execs and data. The file list utility supports working with this file system, the text editor supports editing members of this file system, and execs to be run are loaded from this file system. This file system is VSAM based for performance, security, and portability reasons.

Dynamic support for EXEC CICS commands

Support for most EXEC CICS application programming commands is included in REXX for CICS TS. This is a dynamic interface (no EXEC CICS command translation preprocessing step is needed). This support is provided through the addition of an ADDRESS CICS command environment.

REXX interface to CEDA and CEMT transaction programs

With this interface, CEDA and CEMT commands can be easily issued from REXX execs, with any subsequent output placed into a REXX variable, instead of being displayed at the terminal. This facilitates the automation of many CICS administration and operation activities, and helps programmers.

High-level client/server support

REXX for CICS TS provides integrated client/server support to REXX execs by providing facilities to allow REXX execs to act as clients (which make requests to REXX servers) and by providing facilities to allow REXX execs to act as servers (with the ability to wait for and process requests from REXX clients).

REXX for CICS TS facilities are provided which allow REXX servers to wait on requests from clients (WAITREQ), and to retrieve (C2S) and set (S2C) the contents of client REXX variables.

Note: Servers do not execute as nested execs of clients, but rather execute as parallel entities.

Servers use Automatic Server Initiation (ASI) to start automatically when they receive their first request.

Support for CICS commands written in REXX

REXX for CICS TS supports the ability for users to write CICS commands in REXX. These commands do not function as nested REXX execs, and unlike nested REXX execs have the ability to get and set the values of REXX variables in the user exec that issued the command. Therefore, commands written in REXX can have similar capabilities as commands written in Assembler or other languages. Also, commands can be quickly written in REXX to speed systems development (in a building block structure), and then can selectively be rewritten in Assembler (or any other CICS supported language) at a later date, if performance requirements dictate.

Command definition of REXX commands

REXX for CICS TS includes the ability for system administrators and users to dynamically define new REXX commands,on either a system-wide or user-by-user basis. REXX for CICS TS can interface cleanly with other products, applications, and system services. The goal for providing a command definition facility for new or existing commands is to facilitate the rapid and consistent high-level integration of various products and services together through the use of REXX for CICS TS. REXX command definition is accomplished with the DEFCMD and DEFSCMD commands.

Support for system- and user-profile execs

To facilitate system and user environment tailoring, REXX for CICS TS attempts to execute CICSTART, CICSPROF, and user PROFILE execs, if they exist. CICSTART is the system profile exec (STARTUP profile) and it is issued before the first user exec is run after CICS system restart. CICSPROF is the system user profile exec and it is issued when a user enters REXX for CICS TS for the first time since the CICS system restart. CICSPROF also invokes the user PROFILE.

Shared execs in virtual storage

REXX for CICS TS supports shared copies of REXX execs residing in virtual storage. Shared execs improve the interactive response time of REXX applications, and sharing reduces the total virtual storage requirement. Execs can be preloaded by using the EXECLOAD command. Common system-wide execs are good candidates for preloading through the placement of EXECLOAD commands in the CICSTART exec.

Db2/SQL interface

REXX programs can contain SQL statements and Db2® commands. These statements are interpreted and executed dynamically. The results of the SQL statements and Db2 commands are placed into REXX variables for use within the REXX program.