Installing the EntireX RPC Servers under z/OS

This document covers the following topics:

For Natural RPC servers, see Setting Up a Natural RPC Environment in your Natural documentation.


Installing the RPC Server for CICS

The EntireX RPC Server for z/OS CICS® allows standard RPC clients to communicate with RPC servers on the operating system z/OS under CICS. It supports the programming languages COBOL and PL/I.

This section covers the following topics:

Prerequisites for all EntireX components are described centrally. See z/OS Prerequisites.

Updating the CICS Tables

EntireX RPC requires a number of enhancements to the CICS tables. These changes are usually performed by a CICS system programmer using standard system jobs.

  • If required, adapt CICS settings, for example TWASIZE. See CICS Settings.

  • Execute step "Install CICS CSD defs for EntireX RPC Server" of job EXPINSTA located in the EXX101.JOBS data set. This will add the group ERX with all its relevant entries.

  • Tracing: TD queue entries for RPC server trace output may optionally be updated by uncommenting the DFHTRACE exec line. See also ERXMAIN Macro parameter TRC1.

Transaction Definitions

DEFINE TRANSACTION(ERXM) GROUP(EXXERX) PROGRAM(ERXMAINT) TWASIZE(128)
DEFINE TRANSACTION(ESRV) GROUP(EXXERX) PROGRAM(RPCSRVC)  TWASIZE(128)
DEFINE TRANSACTION(EC01) GROUP(ERX)  PROGRAM(SQRECLT)  TWASIZE(28)

Transaction ERXM is used to run the RPC Online Maintenance Facility.
Transaction ESRV is used to run the RPC Server for CICS; see Customizing the RPC Server.

Notes:

  1. If you have not extended your DCT (that is, you are using the default values), you must specify the option DCT= in the CICS SYSIN file.
  2. Check also if you need to alter IBM LE Runtime Options - for example AMODE24, how to trap ABENDS etc.

Modifying the CICS Startup JCL

The startup JCL for CICS must be modified to include the EXP101.LD00 and EXX101.LOAD data sets in the DFHRPL data set concatenation. This is to enable CICS to find the various programs that have been defined in the PPT.

You may also include a DD statement for ERXOUT extra partition data set. Once the startup JCL has been modified, restart your CICS system.

Binding the RPC Executables

The RPC executables are distributed prelinked with unresolved external references to z/OS components. To resolve these external references, you need to relink them in your environment. Execute step "Link the RPC Server for CICS modules" of job EXPINSTA located in the EXX101.JOBS data set.

Build the ERXMAIN Control Block

The ERXMAIN control block holds the RPC Server for CICS parameter settings. This configuration can be manually maintained by using the RPC Online Maintenance Facility.

A fully linked control block named ERXMAIN is delivered in the load library EXP101.LOAD. To alter this configuration, perform the following steps:

  1. Adapt the RPC server configuration in the Assembler program EMAINGEN located in the EXP101.SRCE data set to the customer environment, see Customizing the RPC Server.

  2. Execute step "Build the ERXMAIN Control Block" of job EXPINSTA located in the EXX101.JOBS data set.

The name of the ERXMAIN control block may be altered. This allows you to run multiple RPC Server for CICS instances. See Installing Multiple EntireX RPC Servers in the same CICS (Optional).

TCP/IP-enabling the CICS Region (Optional)

If you are using transport method TCP/IP, your CICS region must be enabled for TCP/IP. Refer to your CICS documentation for details.

Installing the Server-side Mapping Container for an RPC Server for CICS (Optional)

If you are using or plan to use server-side mapping files, you need to set up a server-side mapping container. A server-side mapping file is an EntireX Workbench file with extension .svm. See Server Mapping Files for COBOL. If this step is omitted, the RPC server will start without the server-side mapping container. This means that server programs cannot make use of special COBOL syntax and features. See When is a Server Mapping File Required? in the EntireX Workbench documentation.

Execute step "Allocate and (CSD) define SVM file" of the EXPINSTA job located in the EXX101.JOBS data set. After updating the SVMFILE variable to a suitable name, the following steps are performed:

  • allocation of the required VSAM cluster

  • initialization of the cluster with the first server mapping (VSAM record) that matches the CICS advanced channel container example DFHCON of the EXP101.DVCO data set. See Client and Server Examples for z/OS CICS.

  • CICS CSD definition with the given name in the SVMFILE variable

See also Server-side Mapping Files and Job Replacement Parameters.

Starting the EntireX RPC Server Automatically on CICS Startup (Optional)

Start of instruction setTo start the RPC server automatically on CICS startup

  1. Insert a new PLT entry DFHPLT TYPE=ENTRY,PROGRAM=ERXSTART.

  2. Rebuild the PLT for CICS startup.

Note:
The EXP101.LD00 CICS load library contains a precompiled ERXSTART module with the default settings of the COBOL source member ERXSTART in EXP101.SRCE

Stopping the EntireX RPC Server Automatically on CICS Shutdown (Optional)

Start of instruction setTo stop the RPC server automatically on CICS shutdown

  1. Insert a new PLT entry DFHPLT TYPE=ENTRY,PROGRAM=ERXSTOP into your CICS shutdown table.

  2. Rebuild the PLT for CICS shutdown.

Note:
The EXP101.LD00 CICS load library contains a precompiled ERXSTOP module with the default settings of the COBOL source member ERXSTOP in EXP101.SRCE

Installing Multiple EntireX RPC Servers in the same CICS (Optional)

Start of instruction setTo install a second RPC server in the same CICS

  1. Copy the default RPC Server for CICS transaction definition ESRV and give it a unique name, e.g. ESR2.

    CEDA COPY TRANSACTION(ESRV) GROUP(ERX) TO(ERX2) AS(ESR2)
  2. Copy the default RPC Server for CICS ERXMAIN Control Block and give it a unique name, e.g. ERXMAIN2.

    CEDA COPY PROGRAM(ERXMAIN) GROUP(ERX) TO(ERX2) AS(ERXMAIN2)
  3. Add the new group ERX2 to the CICS autoinstall list.

    CEDA ADD GROUP(ERX2) LIST(listname) AFTER(groupname)
  4. Build a new ERXMAIN Control Block and give it the name created above, e.g. ERXMAIN2.

    As a minimum, set the ERXMAIN Macro parameter REPL in the ERXMAIN Control Block to the new RPC server transaction ID created above, e.g. REPL=ESR2.

The second RPC Server for CICS can now be started manually (see Starting the RPC Server under RPC Online Maintenance Facility), or automatically on CICS startup.

Start of instruction setTo start a second RPC server automatically on CICS startup

  1. Copy the default RPC Server for CICS autostart definition ERXSTART and give it a unique name, e.g. ERXSTRT2.

    CEDA COPY PROGRAM(ERXSTART) GROUP(ERX) TO(ERX2) AS(ERXSTRT2)
  2. "CEDA Install" the new autostart definition.

  3. Modify the RPC Server for CICS PLT startup routine ERXSTART from data set EXP101.SRCE.

    • Update RPC-TRANSID with ESR2.

    • Update RPC-INPUT with MEM=ERXMAIN2.

  4. Compile and link the modified source and give it the name defined above, e.g. ERXSTRT2.

  5. Insert a new PLT entry DFHPLT TYPE=ENTRY,PROGRAM=ERXSTRT2.

  6. Rebuild the PLT for CICS startup.

Start of instruction setTo stop a second RPC server automatically on CICS shutdown

  1. Copy the default RPC Server for CICS autostop definition ERXSTOP and give it a unique name, e.g. ERXSTOP2.

    CEDA COPY PROGRAM(ERXSTOP) GROUP(ERX) TO(ERX2) AS(ERXSTOP2)
  2. "CEDA Install" the new autostop definition.

  3. Modify the RPC Server for CICS PLT routine ERXSTOP from data set EXP101.SRCE.

    • Update RPC-TRANSID with ESR2.

    • Update RPC-INPUT with MEM=ERXMAIN2.

  4. Compile and link the modified source and give it the name defined above, e.g. ERXSTOP2.

  5. Insert a new PLT entry DFHPLT TYPE=ENTRY,PROGRAM=ERXSTOP2 into your CICS shutdown table.

  6. Rebuild the PLT for CICS shutdown.

Using SSL/TLS Connections with the RPC Server for CICS (Optional)

See Using SSL/TLS with the RPC Server.

Installing the RPC Server for Batch

The EntireX RPC Server for z/OS Batch allows standard RPC clients to communicate with RPC servers on the operating system z/OS running in batch mode. It supports the programming languages COBOL, PL/I and C and works together with the COBOL Wrapper and IDL Extractor for COBOL. This section covers the following topics:

Prerequisites for all EntireX components are described centrally. See z/OS Prerequisites.

Prepare Your Startup JCL

The RPC Server for Batch can run as a started task. The installation medium contains the following sample JCL:

  • EXPSRVB

Start of instruction setTo prepare your startup JCL

  1. Modify the example started task EXPSRVB of the EXX101.JOBS data set to suit your installation.

  2. Modify the CONFIG DD statement to point to your server configuration file.

  3. Concatenate your server application data set to the RPC server STEPLIB.

  4. Add the EntireX RPC server JCL to your TASKLIB data set.

Customize Your Server Configuration

Modify the sample parameter member CONFIG from EXP101.SRCE. The RPC Server for Batch is optimized for use in COBOL environments. Nevertheless, as a minimum the following parameters must be set according to your system environment:

  • BrokerId

  • Class

  • ServerName

  • Service

For more information see Configuring the RPC Server.

Binding the RPC Executables

The RPC executables are distributed prelinked with unresolved external references to z/OS components. To resolve these external references, you need to relink them in your environment. Execute step "Link the RPC server modules" of job EXPINSTB located in the EXX101.JOBS data set.

Using z/OS Privileged Services

Some of the RPC server features such as impersonation require privileged z/OS access. Therefore, the RPC server should be started (initially) from an APF-authorized library. Consequently, all other load data sets concatenated to STEPLIB DD have to be APF-authorized as well, including customer's server data sets.

To cope with non-APF-authorized data sets, a server invocation module EXXAUTH$ is provided. The module can be invoked (APF-authorized) from an APF data set (other than STEPLIB), which installs the authorized PC routines necessary before it invokes (unauthorized) the RPC server.

Start of instruction setTo install the server invocation module

  1. Copy load module EXXAUTH$ from EntireX load library EXP101.LB00 to an APF-authorized load library that is linked to the system LNKLST concatenation and rename the copy to EXXAUTH.

    Note:
    A different name is essential if the EXP101.LB00 is part of the STEPLIB concatenation, because under z/OS search for the module is first done in the STEPLIB libraries prior to LNKLST libraries. Thus not changing the name would result in invoking the module from STEPLIB instead of invoking the module from LNKLST and the module could not work properly.

  2. Change the RPC server startup JCL:

    //BATRPCS  EXEC PGM=EXXAUTH,PARM='RPCSRVB CFG=DD:CONFIG'

    Note:
    EXXAUTH expects the first parameter to be the name of the RPC server to be started. Subsequent parameters will be passed to the RPC server directly.

Installing the Server-side Mapping Container for an RPC Server for Batch (Optional)

If you are using or plan to use server-side mapping files, you need to set up a server-side mapping container. A server-side mapping file is an EntireX Workbench file with extension .svm. See Server Mapping Files for COBOL. If this step is omitted, the RPC server will start without the server-side mapping container. This means that server programs cannot make use of special COBOL syntax and features. See When is a Server Mapping File Required? in the EntireX Workbench documentation.

Execute the EXPSVMAL job located in the EXX101.JOBS data set. After updating the SVMFILE variable to a suitable name, the following steps are performed:

  • allocation of the required VSAM cluster

  • initialization of the cluster with a dummy server mapping (VSAM record)

Insert the new server-side mapping container (VSAM file) into your RPC server's JCL under the DD name of ERXSVM. If this cluster is to be shared between more than one RPC server it should be defined with the RLS=NRI attribute:

//ERXSVM   DD DISP=SHR,DSN=< batch.svm.cluster >

See also Server-side Mapping Files and Job Replacement Parameters.

Using SSL/TLS Connections with the RPC Server for Batch (Optional)

See Using SSL/TLS with the RPC Server.

Installing the RPC Server for IMS

The EntireX RPC Server for IMS allows standard RPC clients to communicate with RPC servers on the operating system z/OS running with IMS in BMP mode. It supports the programming languages COBOL, PL/I and C and can provide IMS-specific PCB pointers for access to IMS databases if needed. This section covers the following topics:

Prerequisites for all EntireX components are described centrally. See z/OS Prerequisites.

Preparing Your Startup JCL

The RPC Server for IMS can run as a started task. The installation medium contains the following sample JCL:

  • EXPSRVI

Start of instruction setTo prepare your startup JCL

  1. Modify the sample started task EXPSRVI of the EXX101.JOBS data set to suit your installation.

  2. Modify the CONFIG DD statement to point to your server configuration file.

  3. Name a valid PSB in the parameter list for IMSBATCH.

  4. Concatenate the necessary EntireX product data sets to the RPC server STEPLIB.

  5. Concatenate your server application data set to the RPC server STEPLIB.

  6. Insert a valid IMS RESLIB data set high-level qualifier.

  7. Add the EntireX RPC server JCL to your TASKLIB data set.

Customizing Your Server Configuration

Modify the sample parameter member CONFIG from EXP101.SRCE. The EntireX RPC server is optimized for use in COBOL environments. Nevertheless, as a minimum the following parameters must be set according to your system environment:

  • BrokerId

  • Class

  • ServerName

  • Service

For more information see Configuring the RPC Server.

Binding the RPC Executables

The RPC executables are distributed prelinked with unresolved external references to z/OS components. To resolve these external references, you need to relink them in your environment. Execute step "Link the IMS RPC server modules" of job EXPINSTI located in the EXX101.JOBS data set.

Installing the Server-side Mapping Container for an RPC Server for IMS (Optional)

If you are using or plan to use server-side mapping files, you need to set up a server-side mapping container. A server-side mapping file is an EntireX Workbench file with extension .svm. See Server Mapping Files for COBOL. If this step is omitted, the RPC server will start without the server-side mapping container. This means that server programs cannot make use of special COBOL syntax and features. See When is a Server Mapping File Required? in the EntireX Workbench documentation.

Execute the EXPSVMAL job located in the EXX101.JOBS data set. After updating the SVMFILE variable to a suitable name, the following steps are performed:

  • allocation of the required VSAM cluster

  • initialization of the cluster with a dummy server mapping (VSAM record)

Insert the new server-side mapping container (VSAM file) into your RPC Server for IMS's JCL under the DD name of ERXSVM. If this cluster is to be shared between more than one server, it should be defined with the RLS=NRI attribute:

//ERXSVM   DD DISP=SHR,DSN=< ims.svm.cluster >

See also Server-side Mapping Files and Job Replacement Parameters.

Using SSL/TLS Connections with the RPC Server for IMS (Optional)

See also Using SSL/TLS with the RPC Server and Job Replacement Parameters.

Extracting the EntireX RPC Examples from their Container Data Set

All example data sets are delivered in the condensed IBM IEBCOPY load format and can be found with their last level qualifier as a member name in the EXP101.EXPL data set. The CICS and batch examples are unloaded with separate jobs:

Start of instruction setTo unload the CICS members to their target data sets

  • Select the desired programming language (COBOL or PL/I) and execute "Step 5: Extract the Examples" of job EXPINSTA located in the EXX101.JOBS data set.

Start of instruction setTo unload the Batch members to their target data sets

  • Select the desired programming language (COBOL or PL/I) and execute job EXPEXAMP located in the EXX101.JOBS data set.

Start of instruction setTo unload the IMS members to their target data sets

  • Execute job EXPINSTI located in the EXX101.JOBS data set.