Version 8.1.4

Installing Adabas with TP Monitors

This document provides information needed to install Adabas in batch mode and with its teleprocessing (TP) monitors. It covers the following topics:


Preparing Adabas Link Routines for IBM Platforms

This section describes the preparation of Adabas link routines for TP monitors for IBM platforms. The source modules for Adabas 8 link routines are not provided in the Adabas 8 base source library. The Adabas 8 link routines can only be tailored via zap or using a link globals table.

Addressing Mode Assembly Directives in Adabas Link Routines

All Adabas 8 link routines include AMODE and RMODE assembly directives. These assembly directives allow the linkage editor to produce warning messages when conflicting AMODE or RMODE linkage-editor control statements are encountered in the link JCL, JCS, or EXECs.

These assembly directives also serve to document the preferred AMODE and RMODE for each link routine. It is important to note that in and of themselves, these directives do not alter the actual addressing mode of the link routine during execution.

Re-linking Adabas 8 Link Routines

When re-linking the Adabas 8 link routines with certain AMODE and RMODE combinations, a warning message may be generated by the linkage editor. This may be safely ignored as long as it pertains to a conflict of AMODE or RMODE in the ESD record of one or more of the load modules that comprise the link routine, and as long as the resulting module has the proper AMODE and RMODE attributes for execution with the intended calling application programs.

Care must be taken to ensure that AMODE(24) applications will operate properly when invoking the link routine with the attributes chosen when it is re-linked. This is particularly important if the RMODE(ANY) attribute is associated with a link routine that will be loaded dynamically but invoked by a program that is AMODE(24). In this case, the link routine should be re-linked AMODE(31),RMODE(24) to avoid addressing exception ABENDs because the AMODE(24) application cannot correctly invoke the link routine if it resides above the 16-megabyte line.

The Adabas 8 link routines all run AMODE(31) after initialization, but they will return to the caller in the caller's AMODE.

Note:
Under CICS, the version 8 links run AMODE(31), but the Dataloc RDO parameter governs the AMODE and RMODE of the running CICS transaction.

The batch/TSO non-reentrant link routine, ADALNK, has been assembled and linked with AMODE(31),RMODE(24), and that is the recommended configuration to support AMODE(24) or RMODE(24) application programs. It may be re-linked AMODE(31),RMODE(ANY) if desired, but this should only be done if it is certain that all calling programs are AMODE(31).

The ADALNKR batch TSO reentrant link routine has been assembled and link-edited with AMODE(31),RMODE(ANY). If it is loaded by an application that is AMODE(24), it should be relinked AMODE(31),RMODE(24).

The z/OS Com-plete module ADALCO has been assembled and linked AMODE(31),RMODE(ANY). The Com-plete TP monitor ensures proper AMODE switching between AMODE(24) or RMODE(24) programs that invoke ADALCO through the Com-plete Adabas interface routine, TLOPADAB.

All of the V8 CICS link routine modules - ADACICS, ADACICT, ADACIC0 and ADACIRQ - have been assembled and link-edited AMODE(31),RMODE(ANY). CICS manages the loading of programs and their invocation depending on the DATALOC values associated with their program and transaction definitions.

The Adabas IMS interface link routine ADALNI has been assembled and link-edited AMODE(31),RMODE(ANY). This is the preferred configuration for modern IMS applications, but if there are still AMODE(24) IMS applications executing at your installation, ADALNI may be re-linked AMODE(31),RMODE(24).

ADAUSER AMODE/RMODE Considerations

Software AG recommends that all batch applications invoke Adabas calls through the ADAUSER module. This module is normally link-edited with the application program and it then loads the appropriate link routine as well as ADARUN and ADAIOR/ADAIOS. The source member has the AMODE and RMODE directives coded as AMODE 31, RMODE ANY. This is the most flexible configuration for assembling and linking ADAUSER with the widest variety of application programs. However, if ADAUSER is dynamically loaded, either the RMODE assembler directive should be changed to RMODE 24 before re-assembling it or the ADAUSER module should be re-linked AMODE(31),RMODE(24) to ensure that AMODE 24 application programs may invoke it properly below the 16-megabyte line.

UES-Enabled Link Routines

The source code for the Adabas 8 batch and TSO link routines is not included with Adabas 8. These modules are delivered with LNKUES along with the ASC2EBC and EBC2ASC translation tables. Please run with these UES components for this version of Adabas 8. The link routine will detect if a Version 8 target database is not UES-enabled, and will provide an Adabas response 228 if the call is from a client requiring UES translation.

The Adabas 8 Com-plete link routine determines whether UES support is required from the settings in the LCOGBL module that you modify and assemble when installing Adabas with Com-plete. For complete information, read Installing Adabas with Com-plete.

This section covers the following topics:

Default or Customized Translation Tables

By default, the load modules for all Adabas 8 link routines have been linked with LNKUES and the default translation tables.

LNKUES converts data in the Adabas buffers and byte-swaps, if necessary, depending on the data architecture of the caller.

The two standard translation tables are:

The Adabas translation table pair is provided in the section Translation Tables.

You may use the load modules with the default translation tables linked in, or you may prepare your own customized translation tables, re-assemble the tables, and link them with the LNKUES or LNKUES7 module that is delivered.

Notes:

  1. It should only be necessary to modify these translation tables in the rare case that some country-specific character other than "A-Z a-z 0-9" must be used in the Additions 1 (user ID) or Additions 3 field of the control block.
  2. The LNKUES module is functionally reentrant; however, it is not linked that way in the Adabas load library.
  3. When linking the LNKUES load module and the translation tables, the linkage editor may produce warning messages concerning the reentrant or reusability status of the linked module. These warning messages can be ignored.
  4. If relinking an Adabas 8 link routine for UES support, the LNKUES module must be included. This will ensure that your new Adabas 8 applications have support for Adabas 8 direct calls and control blocks.

Calling LNKUES and LNKUES7

LNKUES is called only on Adabas link routine request (X’1C’) and reply (X’20’) calls if the first byte of the communication ID contains X’01’ and the second byte does not have the EBCDIC (X’04’) bit set. In Adabas 8 requests, LNKUES receives control before UEXIT1. In Adabas 8 replies, LNKUES receives control after UEXIT2.

Adabas 8 Jobs for z/OS Universal Encoding Support

The following lists the sample jobs provided to manage universal encoding support in Adabas link routines in z/OS environments:

Sample Job Description
LNKGCICS Assembles and links the CICS globals table with LNKUES and the default translation tables ASC2EBC and EBC2ASC.
LNKLCO8 Links the Com-plete link globals table with LNKUES and the default translation tables ASC2EBC and EBC2ASC.
LNKLNI8 Links the IMS link routine with the LNIGBL link globals table, LNKUES, and teh default translation tables ASC2EBC and EBC2ASC.
LNKLNK8 Links the batch link routine with the LNKGBLS link globals table, LNKUES, and the default translation tables ASC2EBC and EBC2ASC.
LNKLNKR8 Links the reentrant batch link routine with the LNKRGBL link globals table, LNKUES, and the default translation tables ASC2EBC and EBC2ASC.

Before you can use any of these jobs, they should be edited to prepare the JOB card, update the load library names, and make other changes as necessary for your environment. Refer to the comments in the jobs themselves for more information.

Disabling UES Support for Adabas 8 Routines

This section describes how to disable UES support in the Adabas 8 IMS TM, Com-plete, and batch/TSO link routines, if for some reason you feel it is necessary.

Start of instruction setTo disable UES support in link routines:

  1. Edit the link globals table for the associated link routine. Set the UES parameter setting to NO.

  2. Assemble the link globals table after making any other necessary modifications to the equates and other directives in the source module as required by your installation.

  3. Link the Adabas link routine with the newly assembled link globals table and do not include any of the UES components (that is, LNKUES, ASC2EBC, or EBC2ASC).

For more information about the specific link routines, read Installing Adabas with IMS TM under Adabas 8, Installing Adabas with Com-plete under Adabas 8, and Installing Adabas with Batch / TSO under Adabas 8.

Top of page

Installing Adabas with IMS TM under Adabas 8

This section describes installation of the Adabas link routine for the IMS TM TP monitor with Adabas 8.

IMS requires an Adabas link routine if it is to communicate with Adabas databases. The Adabas Version 8 executable default link routine is delivered in member ADALNI of the AIIvrs.LOAD library (where vrs is the number of the latest Adabas version delivered on the tape). If you want to modify this link routine, use member ADALNI8 to do so. ADALNI8 must be linked with a link globals module you prepare and with any link routine exits you require to create the final ADALNI load module that is loaded by the IMS message processing program (MPP) regions when an application calls them. Members ADALNI and ADALNI8 are provided with some default settings.

This section covers the following topics:

IMS TM Link Routines for Adabas 8

These are Adabas 8 link routines for IMS TM:

ADALNI and ADALNK use the CSECT name and ENTRY directive ADABAS by default.

The Adabas Version 8 ADALNI and ADALNK are UES-enabled as distributed. See the section Enabling Universal Encoding Support (UES) for Your Adabas Nucleus for more information.

This section describes using ADALNI and ADALNI8 only. For information on using ADALNK, read General Considerations for Installing Adabas with Batch/TSO.

Obtaining the Adabas User ID

The Adabas user ID is obtained at execution time by the ADALNI load module from the LTERM field (first eight bytes) of the IOPCB. The user ID is stored in the Adabas user block field UBUID and will be used for the last eight bytes of the Adabas communication ID.

Obtaining the SAF ID

The SAF ID is supported for use by Adabas SAF Security (ADASAF) if an external security package such as IBM’s RACF or CA’s ACF2 is present. The SAF ID is obtained at execution time by the ADALNI load module from the user ID field (bytes 33-40) in the IOPCB. To get a valid SAF user ID, SAF sign-on must be active in your IMS installation and the user must have performed an IMS /SIGN command to log onto an IMS terminal.

Installation Procedure under Adabas 8

Start of instruction setTo modify the default settings and prepare the Adabas 8 link routine for IMS:

  1. Copy the sample member LNIGBL provided in the Adabas 8 AIIvrs.SRCE library to any appropriate user source library where they can be modified. These modules contain LGBLSET parameters that are used to create default settings for link components. A complete description of LGBLSET parameters can be found in Modifying Source Member Defaults (LGBLSET Macro) in Version 8.

  2. Modify the LNIGBL member in the user source library.

    Note:
    The OPSYS parameter must be set to ZOS.

  3. Modify and run sample job ASMGBLS as described at the top of the job. ASMGBLS can be found in the Adabas 8 ADAvrs.JOBS library. When fully modified, the SET statement in the job should reference the LNIGBL member you prepared in the previous step and the NAME link edit control statement should reference the name specified by the GBLNAME parameter in the LNIGBL member.

    Once modified, submit the ASMGBLS job to assemble and link-edit the link globals module.

    A new link globals module (with the name specified by the GBLNAME parameter in LNIGBL) will be generated in the user load library identified in the ASMGBLS job.

  4. Copy sample job LNKLNI8 to a user source library and modify it to link the new link globals module you created in the previous step and any required exits with the ADALNI8 base module. Instructions for modifying the sample job are described at the top of the job. Be sure to direct the output from this job to an appropriate user load library. LNKLNI8 can be found in the Adabas 8 AIIvrs.SRCE library.

    The module resulting from this job is ADALNI.

  5. Place the ADALNI module in a load library available for IMS MPP regions.

    The Adabas 8 link routine is prepared.

Top of page

General Considerations for Installing Adabas with CICS

The macro-level link routine ADALNC is no longer supported for all levels of CICS running under z/OS. These environments must run a current version of Adabas and use the supplied command-level link component.

The Adabas command-level link routine supports the CICS transaction server (CTS) environment.

Notes:

  1. The OPID option for the USERID field is not supported under CICS/TS 1.1 and above; therefore, it is not provided with the command-level link routine.
  2. The CICS components from Adabas 7.4 or later are required when running with an Adabas 8 SVC.

The following sections describe specific points of Adabas/CICS installation and operation from the CICS perspective:

Adabas Bridge for VSAM Considerations

If you are running Adabas Bridge for VSAM 4.2 or 5.1 under CICS, you must run CICS 3.3 or above and the Adabas Version 7.1 or above command-level link routine.

CICS MRO Environment Requirements

If you run the Adabas CICS command-level link routine with the CICS multiple region option (MRO), you must set the MRO parameter to "YES" and use the default for the NETOPT parameter. In an Adabas 8 installation, these parameters are supplied via the LGBLSET macro (read Modifying Source Member Defaults (LGBLSET Macro) in Version 8).

You can use the LGBLSET NTGPID parameter to provide a 4-byte literal for the Adabas communication ID to be used by the Adabas SVC when applications that call Adabas span multiple application regions.

Alternatively, you can create a user exit for the link routine that:

This exit is link user exit 1 (LUEXIT1). The exit then allows the Adabas SVC to provide a proper Adabas communication ID in the Adabas command queue element (CQE) even when transactions originate in multiple regions.

Using CICS Storage Protection

The storage protection mechanism (STGPROT) was introduced under CICS/ESA 3.3. Storage protection permits resources to access either CICS or user storage by using the storage protection keys.

Transaction isolation is an extension of the storage protection mechanism. It further protects CICS resources by isolating them in subspaces. This protects user key resources from one another, and protects CICS key resources from the CICS kernel. Transaction isolation can be enabled globally through the CICS TRANISO system initialization (SIT) parameter, and for each CICS transaction with the new resource definition ISOLATE keyword. Transaction isolation places some restrictions on CICS resources that must be available both during the life of the CICS system and to all transactions running in the CICS system.

In Adabas 8 installations, the CICS link routine always uses a task-related user exit, module ADACICT, so storage isolation is supported by default.

Sample Resource Definitions

Under CICS/TS 1.1 and above for z/OS and VSE, the preferred method for defining and installing CICS programs and transactions is RDO (resource definition online). The CICS documentation no longer recommends the assembly of PPT and PCT entries to define resources.

Modify and use the sample DEFINE statements located in member DEFADA8 as input to the IBM DFHCSDUP utility to define the Adabas CICS command-level components. Consult the appropriate IBM CICS documentation for information on the DFHCSDUP utility. The DEFADA8 member can be found in the Adabas 8 CICS command-level source library (ACIvrn.SRCE).

Top of page

Installing Adabas with CICS under Adabas 8

Supplied Modules

The following table lists the modules supplied in your Adabas installation to support the installation of Adabas with CICS under Adabas 8.

Module Description
ADACICS CICS command-level module.
ADACICT CICS task-related user exit (TRUE) module.

Installation Procedure Under Adabas 8

Start of instruction setTo install the Adabas 8 CICS link routine components, complete the following steps:

  1. Copy the Adabas 8 CICS load modules from the Adabas distribution library to a load library that will be in the CICS DFHRPL concatenation (see sample member CPYCICSM in the Adabas 8 ADAvrn.JOBS library).

  2. Modify the sample CICSGBL member found in the Adabas 8 ACIvrn.SRCE library. This member contains sample default installation (LGBLSET) parameter settings. For more information about what to modify in this member, read Modifying Source Member Defaults (LGBLSET Macro) in Version 8.

    Note:
    The OPSYS parameter must be set to ZOS.

  3. Save the modified CICSGBL member with a unique name in an appropriate user source library.

  4. Modify and run sample job ASMGBLS as described at the top of the job. ASMGBLS can be found in the Adabas 8 ADAvrs.JOBS library. When fully modified, the SET statement in the job should reference the CICSGBL member you prepared in the previous step and the NAME link edit control statement should reference the name specified by the GBLNAME parameter in the CICSGBL member.

  5. Review and run the LNKGCICS member in the ACIvrn.SRCE library to link the newly assembled globals table from the previous step with any user or Software AG product exits. (For information about specific Software AG product exits, read the installation documentation for the product.) The LNKGCICS member provides specific instructions. Be sure to link the globals table into a load library that will be made available to CICS in the DFHRPL library concatenation. Note that any user or Software AG link routine exits should be link-edited with this load module.

  6. Modify the DEFADA8 member to provide the correct name of the link routine globals default table created in the previous step (Step 4). The default module name is CICSGBL. Tailor this member for any other CICS installation values as required.

    Note:
    The Adabas 8 CICS program names, other than the name of the link globals table, are predefined and cannot be changed (for example, ADACICS, ADACICT, ADACIRQ, and ADACIC0).

  7. Run the IBM DFHCSDUP utility to update the CICS CSD file for the desired CICS using the modified DEFADA8 member as input.

  8. Modify the CICS PLTPI table to add the entries that will enable and start the Adabas CICS task-related user exits (TRUE). Use member ADAPLTXX from the Adabas 8 ACIvrn.SRCE library as a sample for enabling and starting a legacy Adabas TRUE and the new Version 8 TRUE in the second phase of the PLT.

  9. Assemble and link the modified PLTPI table into a library that will be available to the desired CICS region.

  10. Modify the CICS startup JCL to include the DDLINK DD statement that provides the name of the link globals table prepared in Step 4. For more information on doing this, read Preparing DDLINK Input for CICS.

  11. Start the CICS and note any messages relating to the installation of the Adabas TRUE modules that appear on the console.

Preparing DDLINK Input for CICS

Operation of the Adabas 8 CICS link routines may be tailored for each CICS address space by assembling and linking a link globals defaults table and making that table available to CICS at execution. The table may have any legal load module name that is acceptable to CICS and that does not conflict with existing load module names used in the CICS region.

The globals table must be defined to CICS as a program. Review the provided sample DEFADA8 member found in the Adabas 8 ACIvrn.SRCE library to see a definition of the sample called CICSGBL. The DEFADA8 member should be modified as necessary and provided as input to the DFHCSDUP utility to define the Adabas 8 components in the CICS CSD. This process is also described as part of the installation procedure under Adabas 8. Consult the IBM CICS documentation for information on the DFHCSDUP utility.

Each link routine globals table for a CICS region may have a unique name. The Adabas 8 CICS link routines are provided this name through an external transient data queue. The queue-name is ADAI and its definition is also provided in the DEFADA8 member.

When the Adabas 8 task-related user exit (TRUE) is enabled via the ADACIC0 program, either at CICS startup or with the ADA0 transaction, the ADACIRQ module is invoked and reads the ADAI transient data queue. The data read is provided in a file, or a partitioned data set member, or as system input through the DDLINK DD statement. The CICS JCL must be modified to provide this DD statement or the default link globals table name "CICSGBL" will be used. If no link globals table is located, the Adabas 8 TRUE will not be enabled and started.

The format of the input data to be read is:

Content Description
ADALNK This keyword must appear in columns 1 through 6.
space A blank space must appear in column 7.
LGTNAME=

or

LGT=

The keyword LGTNAME or LGT, followed by an equals sign (=) must appear after the space in column 7, starting in column 8.
module-name The module name of the prepared link globals table must appear after the equal sign that follows the LGTNAME or LGT keyword.

For example, the following might be added to the CICS JCL:

//DDLINK DD  DISP=SHR,DSN=dsname
/*

Then, the following input data would be stored within the data set dsname:

ADALNK LGTNAME=LNKGBLS

In this example, the link default globals table named "LNKGBLS" must be prepared, assembled, link-edited, and defined to this CICS.

Top of page

Installing the CICS High-Performance Stub Routine for Adabas 8

This section describes installation of the CICS high-performance stub routine with Adabas 8. The modules and installation described here are provided so your existing Adabas 8 applications can continue to function as usual.

The Adabas high-performance stub routine extends the direct call interface (DCI) facility that is available with the Adabas CICS command-level link component to applications written in languages other than Software AG’s Natural (for example, Assembler, COBOL, PL/I).

Note:
The stub routine must be used with the Adabas CICS command-level link component. The stub routine will not function properly with the Adabas CICS/VSE macro-level link component. The LNCSTUB module delivered in the Adabas Version 8 library will also function properly with Adabas Version 7.4 CICS link routines.

The DCI enables a CICS/TS application to call Adabas through the Adabas command-level link routine. The overhead incurred when the EXEC CICS LINK and EXEC CICS RETURN command set is used to transfer program control is thus avoided. Once the proper environment has been established with the initial call (IC) command from the high-performance stub or Natural 3.1 or above, the DCI permits a BALR interface to be used.

The high-performance stub routine is written in Assembler language. When linked with the application program, it serves as an interface between the application and the Adabas CICS command-level link component. The application program can then issue CALL statements to access the stub routine when executing an Adabas command.

An application at CICS/TS 1.1 level or above derives the following advantages from the high-performance stub:

This section covers the following topics:

Restrictions and Requirements

The following restrictions and requirements apply to the high-performance stub routine:

  1. CICS/TS 1.1 or above required

    The Adabas high-performance stub routine is supported under CICS/TS 1.1 or above.

    A CICS transaction work area (TWA) of at least 24 bytes or a CICS COMMAREA of at least 32 bytes must be provided to the application for the proper execution of the high-performance stub routine. The Adabas 8 LNCSTUB module and the Adabas 8 installation verification programs now use the CICS COMMAREA instead of the CICS TWA to pass data between the IVP programs, LNCSTUB, and the CICS link routines. The use of the CICS COMMAREA has the following advantages over the use of the CICS TWA:

  2. CICS Command-Level Link Required

    The application program must be written using the CICS command-level interface and instructions, and may not issue any CICS macro level commands.

  3. Supported Programming Languages

    The application program may be written in ALC (Assembler language), VS/COBOL, COBOL II, COBOL/LE, PL/I, or C. Installation verification programs (IVPs) are provided in ALC and COBOL in the Adabas source libraries.

Additional requirements for specific programming languages are discussed later in the sections relating to each language.

Stub Components

Type Member Description
Source

ADAGSET
ALCSIVP
COBSIVP
LNCSTUB

macro required for assemblink LNCSTUB and ALCSIVP
source for the ALC install verification
source for the COBOL install verification
source for the high-performance stub

Job control

JCLALCI
JCLCOBI
JCLLNCS

sample JCL for ALC install verification
sample JCL for COBOL install verification
sample JCL for LNCSTUB (high-performance stub)

Installation Overview

Use the following procedure to install the Adabas CICS high-performance stub routine:

  1. Edit, preprocess, assemble and link the LNCSTUB module.

  2. Define the application programs, optional IVPs and CICS link components to CICS using RDO or the DFHCSDUP utility.

  3. (Optional) Modify, preprocess, compile or assemble, link, and execute the desired installation verification program (IVP).

  4. Modify, preprocess, compile or assemble, link, and execute the application programs.

This procedure is described in the following steps:

Step 1: Install the LNCSTUB Module

The Adabas CICS high-performance stub routine is an Assembler language module provided in source form on the distribution tape in member LNCSTUB.

Step 1 has the following substeps:

Edit the ADAGSET Macro

Note:
For information about editing the ADAGSET macro, refer to the section Modifying Source Member Defaults (ADAGSET Macro).

Edit the ADAGSET macro in a library that will be available in the SYSLIB concatenation when LNCSTUB is assembled.

Both the LNCSTUB and the ALCSIVP IVP modules now take values from the following ADAGSET keywords:

(Optional) Set the LNCSTUB Entry-Point Alias

The Adabas 8 LNCSTUB module provides an assembler GBLC variable (&STBNAME) that sets an entry-point alias that can be used by calling programs. Modify the SETC statement near the top of the LNCSTUB source member to set an alias if desired. The application program can then either issue its call using "LNCSTUB" or the entry-point alias coded in this SETC statement.

Modify Member JCLLNCS

Member JCLLNCS is used to preprocess, assemble, and link the LNCSTUB module. To modify this JCL to meet your site requirements, change the JOB card in the member and the symbolic values as indicated in the following table:

Value Description
&SUFFIX Suffix value used for the CICS translator. The default value is “1$”.
&ASMBLR Assembler program used to assemble the LNCSTUB source (ASMA90).
&M Member name to be processed; code LNCSTUB or ALCSIVP.
&STUBLIB A load library to contain the LNCSTUB load module. This library should be available to application programs when they are linked.
&INDEX High-level qualifier for the CICS macro library used in the SYSLIB DD statement for the assembler.
&INDEX2 High-level qualifier for the CICS load library to use for the translator STEPLIB DD statement, and for the SYSLIB in the link step.
&ADACOML Adabas command-level source library containing the ADACB, ADAGDEF, ADAGSET, and LNCDS copy code and macros.
&ADASRCE Adabas source library used for additional copy code or macro expansion.
&STBSRCE Source library containing the distributed Adabas CICS high-performance stub LNCSTUB.
&MAC1 Primary system macro library, usually SYS1.MACLIB.
&OUTC Output class for messages, SYSPRINT, SYSOUT.
&REG Step region size.
&NCAL Value for the linkage editor NCAL parameter. The recommended value is NCAL.
&LSIZE Primary and secondary table sizes used by the linkage editor.
&WORK DASD device type to use for temporary and utility data sets.
Preprocess, Assemble, and Link the LNCSTUB Module

Because of the use of 31-bit instructions, the high-level assembler (ASMA90) should be used to assemble the LNCSTUB module after CICS preprocessing.

Note:
The LNCSTUB module can be linked reentrant or reusable. If it is linked reentrant, it is automatically reusable; if it is linked reusable, it is not automatically reentrant.

In addition to the CICS macro library, the Adabas CICS command-level source library and standard Adabas source library must be provided to the SYSLIB DD statement in the assembly step:

Make the LNCSTUB Available to Application Programs

The LNCSTUB module has an entry name of ADABAS, which can be used by the application program as the object of a CALL statement to pass control to LNCSTUB with a list of parameters. The language-specific calling conventions for LNCSTUB are discussed later in this section.

The LNCSTUB module has either an entry name of LNCSTUB or the alias entry name as coded in the SETC statement to set the value of &STBNAME. Either value may be used by the application program as the object of a CALL statement to pass control to LNCSTUB with a list of parameters. The language-specific calling conventions for LNCSTUB are discussed later in this section.

The LNCSTUB load module must be available to the link step of the application program that is to use the DCI facility.

Note:
In the same step, the CICS load library should be available; otherwise, the external references to the CICS stub modules will not be resolved.

Place the LNCSTUB load module in a library available to your application language assembler or compiler so that it will be included when the application programs are linked.

Step 2: (Optional) Install and Execute an IVP

Two installation verification programs (IVPs) are provided in source form: one for Assembler language, and one for COBOL/VS. These programs are samples for implementing the Adabas high-performance stub routine in your applications. They also provide a way of verifying the proper installation of the LNCSTUB module.

This section describes each of these IVPs:

Note:
The two installation verification programs ALCSIVP and COBSIVP only use fields AA and AE from the Software AG-provided demonstration EMPLOYEES file. For more information about the Software AG-provided demonstration files, read Load the Demonstration Files in the z/OS installation instructions.

Install and Execute the Assembler IVP: ALCSIVP

The source member ALCSIVP is provided to demonstrate and verify the use of the Adabas DCI using the LNCSTUB module. This program issues a series of Adabas commands using the conventional CICS LINK/RETURN mechanism, produces a partial screen of output data, then reexecutes the same call sequence using the Adabas DCI and the LNCSTUB subprogram.

Start of instruction setTo install and execute the Assembler IVP, ALCSIVP:

  1. Modify the source member ALCSIVP:

  2. Modify the sample job stream, JCLALCI:

  3. Using the modified sample JCLALCI member, preprocess, assemble, and link ALCSIVP.

  4. Add the following RDO entries to your CICS system, or use the RDO facility to add the STB1 transaction to run the ALCSIVP program:

    DEFINE PROGRAM(ALCSIVP) GROUP(ADABAS)
    DESCRIPTION(ADABAS s ASSEMBLER IVP FOR HIGH-PERFORMANCE STUB)
    LANGUAGE(ASSEMBLER) RELOAD(NO) RESIDENT(NO) USAGE(NORMAL)
    USELPACOPY(NO) STATUS(ENABLED) CEDF(YES) DATALOCATION(ANY)
    EXECKEY(USER) EXECUTIONSET(FULLAPI)
    
    DEFINE TRANSACTION(STB1) GROUP(ADABAS)
    DESCRIPTION(TRANSACTION TO EXECUTE THE ASSEMBLER IVP FOR HIGH-PERFORMANCE STUB)
    PROGRAM(ALCSIVP) TWASIZE(32) PROFILE(DFHCICST) STATUS(ENABLED)
    TASKDATALOC(ANY) TASKDATAKEY(USER) STORAGECLEAR(NO)
    RUNAWAY(SYSTEM) SHUTDOWN(DISABLED) ISOLATE(YES) DYNAMIC(NO)
    PRIORITY(1) TRANCLASS(DFHTCL00) DTIMOUT(NO) INDOUBT(BACKOUT)
    RESTART(NO) SPURGE(NO) TPURGE(NO) DUMP(YES) TRACE(YES)
    RESSEC(NO) CMDSEC(NO)
  5. Run the STB1 transaction to execute ALCSIVP. Executing ALCSIVP verifies the LNCSTUB module.

Install and Execute the COBOL IVP: COBSIVP

Member COBSIVP illustrates the use of the Adabas DCI with a COBOL program. COBIVP produces a screen showing output lines produced by a series of Adabas calls executed by the CICS LINK/RETURN facility, followed by the reexecution of these Adabas commands using the DCI.

Start of instruction setTo install and execute the COBOL IVP, COBSIVP:

  1. Modify the source member, COBSIVP:

  2. Modify the sample job stream, JCLCOBI:

  3. Preprocess, compile, and link COBSIVP:

  4. Add the following RDO entries to your CICS system, or use the RDO facility to add the STB2 transaction to run the COBSIVP program:

    DEFINE PROGRAM(COBSIVP) GROUP(ADABAS)
    DESCRIPTION(ADABAS s COBOL IVP FOR HIGH-PERFORMANCE STUB)
    LANGUAGE(COBOL) RELOAD(NO) RESIDENT(NO) USAGE(NORMAL)
    USELPACOPY(NO) STATUS(ENABLED) CEDF(YES) DATALOCATION(ANY)
    EXECKEY(USER) EXECUTIONSET(FULLAPI)
    
    DEFINE TRANSACTION(STB2) GROUP(ADABAS)
    DESCRIPTION(TRANSACTION TO EXECUTE THE COBOL IVP FOR HIGH-PERFORMANCE STUB)
    PROGRAM(COBSIVP) TWASIZE(32) PROFILE(DFHCICST) STATUS(ENABLED)
    TASKDATALOC(ANY) TASKDATAKEY(USER) STORAGECLEAR(NO)
    RUNAWAY(SYSTEM) SHUTDOWN(DISABLED) ISOLATE(YES) DYNAMIC(NO)
    PRIORITY(1) TRANCLASS(DFHTCL00) DTIMOUT(NO) INDOUBT(BACKOUT)
    RESTART(NO) SPURGE(NO) TPURGE(NO) DUMP(YES) TRACE(YES)
    RESSEC(NO) CMDSEC(NO)
  5. Run the STB2 transaction to execute COBSIVP. Executing COBSIVP verifies the LNCSTUB module.

Step 3: Link and Execute the Application Program

Once the IVP programs have been successfully executed, the Adabas DCI is ready to be used with real application programs. In step 3, the application program interface (API) is coded to utilize the LNCSTUB subprogram.

Step 3 has the following substeps:

Guidelines for Modifying the Application Program

The LNCSTUB load module must be linked with your application program. The application program invokes the DCI interface using a standard batch-like call mechanism. The LNCSTUB module makes any additional CICS requests required to pass data to the Adabas CICS command-level link component.

Link the Application Programs to Include the LNCSTUB Module

To properly link the LNCSTUB module with application programs, link the application program to include the LNCSTUB module and the CICS stub modules. The method for doing this varies with the programming language used for the application:

To avoid a double reference to the DFHEAI0 module, code the linkage editor REPLACE DFHEAI0 control statement at the beginning of the SYSLIN data deck.

Start of instruction setFor linking Assembler language programs:

  1. For an Assembler program, the SYSLIN input is similar to:

    INCLUDE DFHEAI

    The Assembler object input is similar to:

    REPLACE DFHEAI0
    INCLUDE SYSLIB(LNCSTUB)
    INCLUDE SYSLIB(DFHEAI0)
    NAME ALCSIVP(R)

    When examining the cross-reference from the linkage editor, the symbol “entry-name” must have the same starting location as the LNCSTUB module in the link map.

Start of instruction setFor linking COBOL language programs:

  1. For a COBOL program, the SYSLIN input is similar to:

    REPLACE DFHEAI0
    INCLUDE SYSLIB(DFHECI)

    The COBOL object input is similar to:

    INCLUDE SYSLIB(LNCSTUB)
    INCLUDE SYSLIB(DFHEAI0)
    NAME COBSIVP(R)
    

    When examining the cross-reference from the linkage editor, the symbol “entry-name” must have the same starting location as the LNCSTUB module in the link map.

Start of instruction setFor linking PL/I and C language programs:

  1. Refer to the IBM manual CICS System Definition Guide for information about linking PL/I and C applications under CICS.

Performance Using LNCSTUB

To obtain the best performance from applications using the Adabas direct call interface (DCI), examine how the DCI interface functions at the logical level.

A CICS application using the standard LINK/RETURN mechanism to access the Adabas link routines invokes the CICS program control service for every Adabas request made to the link routine. The LNCSTUB module permits a BALR interface to be used. A BALR interface can substantially reduce the CICS overhead required to pass control from the application program to the Adabas CICS command-level link component.

The LNCSTUB module accomplishes this by using the standard EXEC CICS LINK/RETURN mechanism to make an Initial Call (IC) to the Adabas CICS command-level link routine. The link routine recognizes this call, and returns the entry point address of the DCI subroutine to LNCSTUB. LNCSTUB must then save this address in a location that can be assured of existence throughout the duration of the invoking task. This is why the calling program must provide the 4-byte field to hold the DCI entry point address. After the DCI address has been obtained, and for as long as LNCSTUB receives this address as the first parameter passed to it on subsequent Adabas calls, LNCSTUB utilizes the BALR interface to pass control to the Adabas CICS command-level link component program.

As a consequence of this logic, the more Adabas requests made between ICs, the more efficient the application in terms of passing data to and from Adabas under CICS. In fact, pseudo-conversational applications that issue one Adabas call each time a task is invoked should not be coded to use the DCI because there will be an IC request for each Adabas command issued by the calling program.

An additional performance improvement can be realized by taking advantage of the fact that the Adabas CICS command-level link component program must be defined as resident in CICS. This fact should allow the DCI entry point to be stored across CICS tasks, making it possible for different programs to call the LNCSTUB module with a valid DCI entry point. The IC at each program startup is thus avoided. When this procedure is used, however, any change to the CICS environment that invalidates the entry point address (such as a NEWCOPY) will lead to unpredictable and possibly disastrous results.

It is imperative that at least one IC be made to the Adabas CICS command-level link component program using CICS services. This call is used to trigger the acquisition of shared storage for the Adabas user block (UB) and an array of register save areas. If no IC request is made, Adabas calls will not execute due to a lack of working storage, and to the fact that critical control blocks used by the link routines and the Adabas SVC are not built.

Modifying Source Member Defaults (ADAGSET Macro)

Warning:
In Adabas 8, the ADAGSET macro found in the Adabas 8 ACIvrn.SRCE library, should only be used for generating default values for the Adabas 8 CICS high-performance stub routine.

To facilitate the assembly of the Adabas CICS high-performance stub routine, Software AG recommends that you program the ADAGSET macro with site-specific default values and put it in a source library that is available in the SYSLIB concatenation during assembly.

The ADAGSET parameter options with their default values (underlined) are described below:

AVB: Adabas VSAM Bridge Support

Parameter Description Syntax
AVB

Indicates whether or not Software AG's Adabas Bridge for VSAM is to be supported by this command-level link routine.

  • AVB=YES: Adabas VSAM Bridge is to be supported.

  • AVB=NO: Adabas VSAM Bridge is not to be supported.

AVB={ NO  | YES }
           

ENABNM: Entry Point Name for Program to Enable Adabas TRUE

Parameter Description Syntax
ENABNM

The entry point name for the program that is run to enable the Adabas TRUE during CICS PLTPI processing. The value must be a valid program name that matches the module name specified in the DFHPLT table at your site. The default value is ADAENAB.

This parameter is ignored if TRUE=NO is specified.

ENABNM={'ADAENAB' | 'name' }

ENTPT: Name of the Adabas CICS Command-Level Link Routine

Parameter Description Syntax
ENTPT

The name given to the Adabas CICS high-performance stub link routine. This name is used in EXEC CICS LINK commands to invoke Adabas services from CICS application programs.

See also notes 1 and 2 in the installation procedure.

ENTPT={'ADACICS' | 'name' }

LOGID: Default Logical Database ID

Parameter Description Syntax
LOGID

The value of the default logical database ID. Valid ID numbers are 1-65535.

LOGID= nnn

LRINFO: Length of Adabas Review Data Area

Parameter Description Syntax
LRINFO

The length (in bytes) of the Adabas Review data area to be used by the REVEXITB program. The default is zero (Adabas Review is not being used). The minimum (and recommended) value is 256, the size Adabas Review expects when the REVEXITB program is invoked. See the Adabas Review documentation for more information.

LRINFO={ 0 | 256}

LUINFO: Length of User Data passed to Adabas LNKUEXIT1 and LNKUEXIT2

Parameter Description Syntax
LUINFO

Length of the user data to be passed from the CICS link routine to Adabas LNKUEXIT1 and LNKUEXIT2.

If LUINFO is not specified, the default is zero (no user save area is passed).

LUINFO={ 0 | length}

LUSAVE: Size of User Save Area for Adabas LNKUEXIT1 and LNKUEXIT2

Parameter Description Syntax
LUSAVE

Size of the user save area to be used by Adabas user exits LNKUEXIT1 and LNKUEXIT2. If LUSAVE is specified, a value of 72 or higher must be specified.

If LUSAVE is not specified, the default is zero (no user data is passed).

LUSAVE={ 0 | size}

LXITAA: Length of Work Area provided to LNKUEXIT2

Parameter Description Syntax
LXITAA

Length of the work area provided to the LNKUEXIT2 user exit program.

Values from 0 (the default) to 32767 may be specified. 0 indicates that no LNKUEXIT2 program is linked with the Adabas command-level link routine and no data is passed to LNKUEXIT2.

Note:
This parameter is not yet fully implemented. It is provided for future use by the CICS user exit A program linked with LNKOLM.

LXITAA={ 0 | nn}

LXITBA: Length of Work Area for LNKUEXIT1

Parameter Description Syntax
LXITBA

Length of the work area provided to the LNKUEXIT1 user exit program.

Values from 0 (the default) to 32767 may be specified. 0 indicates that no LNKUEXIT1 program is linked with the Adabas command-level link routine and no data is passed to LNKUEXIT1.

Note:
This parameter is not yet fully implemented. It is provided for future use by the CICS user exit A program linked with LNKOLM.

LXITBA={ 0 | nn}

MRO: Multiple Region Option

Parameter Description Syntax
MRO

The MRO parameter is used to indicate whether or not the CICS multiple region option is to be used.

If you run the CICS command-level link with the CICS multiple region option (MRO), set MRO=YES; otherwise, use the default value MRO=NO.

If MRO=YES, NETOPT must be set to NETOPT=NO (the default) to prevent non-unique LU names from multiple application regions.

If NETOPT=YES and MRO=YES are specified, an assembler MNOTE and a return code of 16 are produced from the assembly step.

MRO={ NO | YES }

NETOPT: Method Used to Create User ID

Parameter Description Syntax
NETOPT

If NETOPT=YES is specified, an 8-byte user ID will be constructed from the VTAM LU name. If NETOPT=NO is specified, the user ID is created from the constant CICS plus the four-byte CICS terminal ID (TCTTETI) for terminal tasks. For non-terminal tasks, the user ID comprises the constant CIC plus the CICS task number.

If you run with the CICS multiple region option (MRO), you must use the default value for this option. If NETOPT=YES and MRO=YES are specified, an assembler MNOTE and a return code of 16 are produced from the assembly step.

NETOPT={ NO | YES }

NTGPID: Natural Group ID

Parameter Description Syntax
NTGPID

This parameter is used to specify a 4-byte Natural group ID as required for unique Adabas user ID generation in the CICSplex environment with Natural Version 2.2.8 and above. The value is associated with all users who call the Adabas command-level link routine assembled with the specified value.

There is no default value. If no value is specified, the Adabas internal user ID is built in the conventional manner.

Any 4-byte alphanumeric value may be specified, but it must be unique for each Adabas command-level link routine running in a CICSplex, or z/OS image. If more than one NTGPID is required (for example, both test and production Natural 2.2.8), more than one Adabas command-level link routine with associated TRUE must be generated.

If you run with the CICS multiple region option (MRO), you may use NTGPID to provide a 4-byte literal for the Adabas communication ID to be used by the Adabas SVC when multiple application regions call Adabas.

NTGPID=4-byte-value

NUBS: Number of User Blocks Created By CICS Link Routine

Parameter Description Syntax
NUBS

The number of user blocks (UBs) to be created by the CICS link routine. The number of blocks must be large enough to handle the maximum possible number of concurrent Adabas requests.

Note:
The Adabas 6.2 and above command-level link routine obtains storage for the user blocks (the UB pool) above the 16-megabyte line.

NUBS={ 50 | blocks }

PARMTYP: Area for Adabas Parameter List

Parameter Description Syntax
PARMTYP

The area which is to contain the Adabas parameter list. TWA picks up the parameter list in the first six fullwords of the transaction work area (TWA). When PARMTYP=COM, the Adabas parameters are supplied in the CICS COMMAREA provided by the calling program with the EXEC CICS LINK command. The COMMAREA list for an ACB call must be at least 32 bytes long and begin with the label "ADABAS52". PARMTYP=ALL (the default) uses both the COMMAREA and TWA to pass the Adabas parameters; in this case, the COMMAREA is checked first.

PARMTYP=ALL or PARMTYP=COM must be used if the TRUE=YES option is specified.

PARMTYP={ ALL | COM | TWA }

PURGE: Purge Transaction

Parameter Description Syntax
PURGE

The PURGE parameter is used when assembling with CICS 3.2 or above. If PURGE=YES is specified, the CICS WAIT EXTERNAL will contain PURGEABLE as one of its parameters, allowing the transaction to be purged by CICS if the DTIMOUT value is exceeded and PURGE is specified.

If PURGE=NO (the default) is specified, the NONPURGEABLE option is generated.

PURGE={ NO | YES }

RMI: Resource Manager Interface

Parameter Description Syntax
RMI

The RMI parameter is used to indicate whether or not the CICS Resource Manager Interface is to be used.

If RMI=YES is specified, the Adabas task-related user exit (TRUE) will be executed as a resource manager (RM) using the CICS Resource Manager Interface (RMI).

RMI=YES is valid only when the Adabas Transaction Manager is installed, enabled, and available to users executing in the CICS environment. Consult the Adabas Transaction Manager documentation for additional instructions related to the installation of the Adabas TRUE.

RMI={ NO | YES }

SAF: Adabas SAF Security

Parameter Description Syntax
SAF

Indicates whether or not the Adabas SAF Security (ADASAF) is to be used. If you are using ADASAF, you must set SAF=YES.

  • YES: Adabas SAF Security is to be used.

  • NO: Adabas SAF Security is not to be used.

ADASAF requires the Adabas task-related user exit (TRUE) when running under CICS/TS 1.1 or above. When SAF=YES and TRUE=YES, the task-related user exit passes the user's external security ID (sign-on) to Adabas.

If TRUE=YES is not specified in this case, the ADAGSET macro terminates the LNKOLSC, LNKTRUE, or LNKENAB assembly process with an MNOTE and a return code of 16.

TRUE=YES is not required when running ADASAF under CICS/ESA 3.3 or below. The combination SAF=YES and TRUE=NO is valid in such cases.

SAF={ NO | YES }

SAP: SAP Application Support

Parameter Description Syntax
SAP

The SAP parameter is used to indicate whether or not Adabas support for the SAP application system is required.

If SAP=YES is specified, the LNKOLSC program will detect a SAP initialization call and set the user ID for SAP applications from the constant provided on the initialization call, plus the field ACBADD2.

For more information, refer to the supplementary information provided to customers using the SAP application system.

SAP={ NO | YES }

SVCNO: Adabas SVC number

Parameter Description Syntax
SVCNO

The SVCNO parameter is used to specify the value of the Adabas SVC number.

SVCNO={ 0 | nnn}

TRUE: Adabas Task-Related User Exit

Parameter Description Syntax
TRUE

The TRUE parameter is used to indicate whether or not the Adabas task-related user exit is to be used.

If TRUE=YES is specified, LNKOLSC will use the Adabas task-related user exit ADACICT.

If TRUE=YES is specified, the parameter settings PARMTYP={ALL | COM} and TRUENM='name' must also be specified.

TRUE={ NO | YES }

TRUENM: Name of Adabas Task-Related User Exit

Parameter Description Syntax
TRUENM

The TRUENM parameter is used to specify the name of the Adabas task-related user exit.

This parameter is required if TRUE=YES is specified.

See also notes 1 and 2 in the installation procedure.

TRUENM= {'name' | 'ADACICT' }

UBPLOC: User Block Pool Allocation

Parameter Description Syntax
UBPLOC

The UBPLOC parameter is used to specify whether the user block (UB) pool is to be obtained above (the default) or below the 16-megabyte line in CICS.

The ECB used by the EXEC CICS WAIT WAITCICS or the EXEC CICS WAIT EXTERNAL is included in the UB pool.

The UBPLOC=BELOW setting supports versions of CICS that do not allow ECBs above the 16-megabyte line; that is, CICS/ESA 3.2 or below.

Refer to the IBM manual CICS Application Programming Reference for more information.

UBPLOC= { ABOVE | BELOW}

XWAIT: XWAIT Setting for CICS

Parameter Description Syntax
XWAIT

The XWAIT parameter is used to specify whether a standard EXEC CICS WAITCICS (XWAIT=NO) or a WAIT EVENTS EXTERNAL (XWAIT=YES) will be generated into the command-level link component by the assembler process in the LNKOLSC module. XWAIT=YES is the default.

The CICS WAIT EVENTS EXTERNAL (XWAIT=YES) is the recommended interface for CICS/TS 1.1 and above.

The CICS WAITCICS statement (XWAIT=NO) is provided for use with CICS/MVS 2.1.2 and for CICS/VSE 2.1 through 2.3. It may also be used for CICS/TS 1.1 and above, but may result in poor CICS transaction performance or unpredictable transaction results in busy CICS environments.

Note:
If XWAIT=NO is specified for use under CICS/ESA 3.3, IBM APAR PN39579 must be applied to the CICS/ESA 3.3 system. For CICS/TS 1.1 and above, this APAR is not required.

XWAIT={ NO | YES }

Notes:

  1. The default for the XWAIT parameter is XWAIT=YES to conform with IBM usage.
  2. If XWAIT=NO is specified, the LNKOLSC module issues an EXEC CICS WAITCICS command instead of the EXEC CICS WAIT EVENT command. This conforms with recommended IBM usage of the WAIT and ECB lists in a high-transaction volume CICS system with CICS/TS Version 1.1 and above.
  3. All EXEC CICS commands are processed by the CICS preprocessor; the ADAGSET parameters cause the subsequent assembly step to skip some of the statements.

XWAIT Posting Mechanisms

CICS WAITCICS (XWAIT=NO) can support a soft post of the specified ECB. This has the disadvantage of becoming a low priority dispatchable unit of work in a CICS/TS environment, since the hand-postable work is not processed by CICS on every work cycle.

EXEC CICS WAIT EXTERNAL (XWAIT=YES), on the other hand, allows CICS to make use of its special post exit code, and will always be checked and processed (if posted) on every CICS work cycle.

For more details on the differences between the various CICS WAIT commands and their relationship to hard and soft posting mechanisms, consult the IBM CICS/TS Application Programming Reference and the texts accompanying IBM APAR PN39579 or Item RTA000043874 on the IBM InfoLink service.

XWAIT and the Adabas SVC / Router

The Adabas SVC is fully compatible with the XWAIT=YES setting. The SVC performs the necessary hard post for Adabas callers under CICS/TS using the Adabas 6 command-level link routine. The same SVC performs a soft post for batch callers where the hard post is not required.

Top of page

Installing Adabas with Com-plete under Adabas 8

Certain Adabas parameters are required by Com-plete, Software AG’s TP monitor, when installing Adabas. For more information, see the Com-plete System Programmer’s manual.

Software AG’s TP monitor, Com-plete requires an Adabas link routine if it is to communicate with Adabas databases, use Software AG’s Entire Net-Work product, or use products like Entire System Server running under Com-plete. At this time, Com-plete does not support a mixed Adabas 7 and Adabas 8 link routine environment; thus Com-plete must be run with either an Adabas 7 link routine or an Adabas 8 link routine.

The Adabas Version 8 link routine is delivered in member ADALCO of the Adabas 8 z/OS load library. This member must be linked with a link globals module you prepare and with any link routine exits you require to create the final ADALCO load module that is loaded by Com-plete when Com-plete is initialized. The final ADALCO load module and any exits linked with it must be reentrant.

The following table lists the modules supplied in your Adabas installation to support the installation of Adabas with Com-plete under Adabas 8.

Module Description
ADALCO8 Base module
ADALCO Executable default module

Start of instruction setTo prepare the Adabas 8 link routine:

  1. Copy sample member LCOGBL provided in the Adabas 8 ADAvrs.SRCE library to any appropriate user source library where it can be modified (where vrs is the number of the latest Adabas version delivered on the tape). LCOGBL is a module containing LGBLSET parameters that are used to create default settings for command-level link components. A complete description of LGBLSET parameters can be found in Modifying Source Member Defaults (LGBLSET Macro) in Version 8.

  2. Modify the LCOGBL member in the user source library.

    At a minimum supply values for the following LGBLSET parameters in LCOGBL:

    Parameter Specify...
    LOGID The default database or target ID. This should be a numeric value between "1" and "65535". The default value is "1".

    Note:
    Specifying default values for LOGID and SVCNO under Com-plete is for documentation purposes only. The ADASVC Com-plete runtime control statements will provide the supported database ID/Adabas SVC combinations to be used in running Com-plete. For more information, read the Com-plete documentation.

    SVCNO The default Adabas SVC number. For z/OS, this number should be between "200" and "255".

    Note:
    Specifying default values for LOGID and SVCNO under Com-plete is for documentation purposes only. The ADASVC Com-plete runtime control statements will provide the supported database ID/Adabas SVC combinations to be used in running Com-plete. For more information, read the Com-plete documentation.

    OPSYS The three-character abbreviation for the operating system under which Com-plete executes. Valid values include "ZOS" and "VSE".

    Note:
    The OPSYS parameter must be set to ZOS.

    TPMON COM. This keyword specifies the three-character TP monitor abbreviation. For Com-plete, this value should be "COM".
    RENT YES. This keyword indicates whether or not the module is serially reentrant. For Com-plete, this value should be "YES".
    GEN CSECT. This keyword indicates whether a CSECT or DSECT is generated. CSECT must be specified so an object module is generated that can be linked as the link routine globals load module.
    UES Whether Adabas Universal Encoding Support (UES) should be enabled. The default is YES. For more information, read Enabling Universal Encoding Support (UES) for Your Adabas Nucleus.
    exit parameters Whether any other exits are to be active, and in the case of user exits you provide, specify the user exit module names. Specify this information in other parameters of LGBLCOM, as described in Modifying Source Member Defaults (LGBLSET Macro) in Version 8.
  3. Modify and run sample job ASMGBLS as described at the top of the job. ASMGBLS can be found in the Adabas 8 ADAvrs.JOBS library. When fully modified, the SET statement in the job should reference the LCOGBL member you prepared in the previous step and the NAME link edit control statement should reference the name specified by the GBLNAME parameter in the LCOGBL member.

    Once modified, submit the ASMGBLS job to assemble and link-edit the link globals module.

    A new link globals module (with the name specified by the GBLNAME parameter in LCOGBL) will be generated in the user load library identified in the ASMGBLS job.

  4. Copy sample job LNKLCO8 to a user source library and modify it to link the new link globals module you created in the previous step and any required exits with the ADALCO8 base module. Instructions for modifying the sample job are described at the top of the job. Be sure to direct the output from this job to an appropriate user load library. LNKLCO8 can be found in the Adabas 8 ADAvrs.JOBS library.

    The module resulting from this job is called ADALCO.

  5. Place the ADALCO module in a load library available in the job step that will start Com-plete.

    The Adabas 8 link routine is prepared.

Top of page

General Considerations for Installing Adabas with Batch/TSO

When installing Adabas 8 on TSO systems, Adabas-TSO communication is provided by the batch link routines ADALNK8 (non-reentrant) and ADALNKR8 (reentrant).

The Adabas Version 8.1 ADALNK routines are UES-enabled as distributed. See the section Enabling Universal Encoding Support (UES) for Your Adabas Nucleus for more information.

However, it is important to note that user programs linked with ADAUSER also load ADARUN. ADARUN, in turn, loads other modules.

To start a user program linked with ADAUSER, the following modules must all be available from the defined load libraries for that specific TSO user at execution time:

ADAIOR ADAMLF
ADAIOS ADAPRF
ADALNK ADARUN

This section covers the following topics:

Non-reentrant ADALNK Batch Routine Operation

The ADALNK module in the Adabas 8 load library operates in a Adabas 7-compatible manner when the following conditions are met:

If all three of these conditions are met, the default database ID and Adabas SVC number will be overridden by the values provided in the DD statement input and passed to the link routine by ADARUN.

Operating in this fashion requires the fewest changes on the part of your data base administrator (DBA) and application programmer. This is also the recommended mode of operation when executing Adabas utilities.

ADALNKR: Reentrant Batch Link Routine

Several Software AG products require the use of a reentrant batch link routine and the ADALNKR load module is provided in the Adabas load library to support them. The Adabas 8 ADALNKR source module is not provided.

You can change default values for these reentrant batch link routines. For more information, read one of the following sections:

Software AG recommends that batch application programs be linked with the ADAUSER module, not ADALNK or ADALNKR. The ADAUSER load module is not reentrant, but the reentrant link routine module may be linked with it as long as the application program conforms to the calling requirements described in Adabas 8 Batch/TSO Reentrant Link Routine (ADALNKR) Calling Requirements and the PROG=RENTUSER ADARUN parameter is provided in DDCARD input instead of the keyword parameter PROG=USER.

When using the latest Adabas 8 ADALNKR module to obtain reentrant operation under batch or TSO, you must prepare the ADALNKR module in advance. It must be linked with a customized link globals table that provides defaults for the database ID, Adabas SVC number, and other requirements. Any reentrant exits should also be linked with it as required.

Top of page

Installing Adabas with Batch/TSO under Adabas 8

When installing Adabas 8 on TSO systems, the standard Adabas 8 batch link routine (ADALNK) provides Adabas/TSO communication (SMA job number I056).

This section covers the following topics:

Supplied Modules

The following table lists the modules supplied in your Adabas installation to support the installation of Adabas with batch/TSO under Adabas 8.

Module Description
ADALNK8 Base module
ADALNKR8 Base reentrant module
ADALNK Executable default module
ADALNKR Executable default reentrant module

Changing Default Values for the Adabas 8 ADALNK or ADALNKR Modules

You can change default values for various link routine parameters used by the Adabas 8 ADALNK and ADALNKR modules.

Start of instruction setTo change default values, complete the following steps:

  1. Copy the sample member LNKGBLS (for non-reentrant links) or LNKRGBL (for reentrant links) members provided in the Adabas 8 ADAvrs (where vrs is the number of the latest Adabas version delivered on the tape).SRCE library to any appropriate user source library where they can be modified. These modules contain LGBLSET parameters that are used to create default settings for link components. A complete description of LGBLSET parameters can be found in Modifying Source Member Defaults (LGBLSET Macro) in Version 8.

  2. Modify the LNKGBLS or LNKRGBL member in the user source library. Provide values for the LOGID, SVC, and other keywords to suit your installation requirements.

    Note:
    The OPSYS parameter must be set to ZOS.

  3. Modify and run sample job ASMGBLS as described at the top of the job. ASMGBLS can be found in the Adabas 8 ADAvrs.JOBS library. When fully modified, the SET statement in the job should reference the LNKGBLS or LNKRGBL member you prepared in the previous step and the NAME link edit control statement should reference the name specified by the GBLNAME parameter in the LNKGBLS or LNKRGBL member.

    Once modified, submit the ASMGBLS job to assemble and link-edit the link globals module.

    A new link globals module (with the name specified by the GBLNAME parameter in the LNKGBLS or LNKRGBL member) will be generated in the user load library identified in the ASMGBLS job.

  4. Copy sample job LNKLNK8 or LNKLNKR8 (reentrant) to a user source library and modify it to link the new link globals module you created in the previous step and any required exits with the appropriate ADALNK8 or ADALNKR8 (reentrant) base module. Instructions for modifying the sample job are described at the top of the job. Be sure to direct the output from the job to an appropriate user load library. LNKLNK8 and LNKLNKR8 can be found in the Adabas 8 ADAvrs.SRCE library.

    The module resulting from this job is called ADALNK or ADALNKR (as appropriate).

  5. Tailor the ADARUN DDCARD input for the job steps that will use the Adabas 8 batch/TSO link routines. The DDCARD input should include the following updates:

  6. Make sure the appropriate load libraries are made available to the job step. These may be STEPLIB, TASKLIB, JOBLIB, or, for reentrant modules, the LPA or LINKLIB.

Zapping the Default Values for the Adabas 8 ADALNK or ADALNKR Modules

You can change default values for various link routine parameters used by the Adabas 8 ADALNK and ADALNKR modules.

Changes to some default values for the Adabas 8 batch/TSO link routines, ADALNK and ADALNKR, may occur with a zap to either the ADALNK or ADALNKR module. This includes the default values for the database ID and the Adabas SVC number. All other default values should be set using the link globals table, as described in Changing Default Values for the Adabas 8 ADALNK or ADALNKR Modules.

Use the following IMASPZAP control statements to change default values in ADALNK or ADALNKR (as appropriate):

NAME ADALNK ADALNK8
VER 0080 0001                Default DBID
REP 0080 ####                Site-specific DBID
VER 0084 0AF9                Default Adabas SVC number
REP 0084 0A##                Site-specific Adabas SVC number
*
NAME ADALNKR ADALNKR8
VER 0080 0001                Default DBID
REP 0080 ####                Site-specific DBID
VER 0084 0AF9                Default Adabas SVC number
REP 0084 0A##                Site-specific Adabas SVC number

Top of page

Establishing Adabas SVC Routing by Adabas Database ID

Your application programs that use Adabas link routines in z/OS and VSE environments can route database calls through specific Adabas SVCs, based on the database ID used in the call. SVC routing is managed through the use of a DBID/SVC routing table you supply. Up to 1000 database IDs may be specified in the table and associated with any number of valid SVC numbers installed in the z/OS or VSE system. The DBID/SVC routing table is created using the MDBSVC macro.

Duplicate database IDs are not allowed in the DBID/SVC routing table as there is no reliable way for the link routine to determine which SVC should be used for a database ID if it is listed more than once. If duplicate database IDs are found while the table is being assembled, they are flagged with an assembler MNOTE and a return code of 16 is returned for the assembly attempt.

Notes:

  1. Adabas client-based add-ons, such as Adabas Transaction Manager, are not compatible with this feature since for client-based functionality to work, it must be channeled through only a single router for any given session, not across routers. To avoid problems if the dynamic SVC by DBID routing feature in enabled for these products, error messages are issued, the assembly step of the globals table will receive return code 16, and the globals table load module will not be generated.
  2. ADALNK linked with the ADASVCTB should only be used by application programs and should not be made available to the Adabas nucleus or to Entire Net-Work.

Caution:
This feature should be used with caution. Transactional integrity is not guaranteed. If an application makes calls to multiple databases that are routed to more than one Adabas SVC, it becomes possible to issue ET, BT, OP, CL, RC, or other Adabas commands that may affect the transaction on one database, but not on the other databases running on different Adabas SVCs that were accessed previously. It therefore is the responsibility of the application program to ensure that all necessary logic is included to ensure transactional integrity across multiple databases where multiple Adabas SVCs are employed.

This section covers the following topics:

Installing the Adabas DBID/SVC Routing Feature

The general steps for installing the Adabas DBID/SVC routing feature are:

  1. Define the DBID/SVC routing table in a library member using MDBSVC macro statements. For more information about the DBID/SVC routing table and the MDBSVC macro, read Using the MDBSVC Macro.

  2. Assemble and link-edit the DBID/SVC routing table member to create a load module or PHASE that will be made available to the operating environment where the SVC routing feature will be used.

  3. Modify a link globals table for the operating environment, specifying the LGBLSET keywords DYNDBSVC=YES and DBSVCTN=name, where name is the name of the DBID/SVC routing table load module that should be used by the link routine. Assemble and link-edit the updated link globals table as required for the operating environment. For more information about the link globals table and the LGBLSET macro, read Modifying Source Member Defaults (LGBLSET Macro) in Version 8 . For information on assembling and link-editing the link globals table once the table is updated, refer to the instructions for each z/OS or VSE TP monitoring environment, provided elsewhere in this section.

  4. Make the prepared DBID/SVC routing table available in a load library that is accessible by the application program's job step, so it can be loaded by the link routine when it runs.

  5. Except for CICS systems, you will need to relink ADALNK or ADALNKR making sure that the INCLUDE statements for the LNKDSL and DEPRTR (or RTRVSE on VSE) modules are included in the job.

This section covers the following topics:

Installing DBID/SVC Routing under z/OS Batch, TSO and IMS

The installation steps for the Adabas SVC routing feature under z/OS batch, TSO, and IMS are the same.

Start of instruction setTo install the Adabas DBID/SVC routing feature under z/OS batch, TSO, or IMS, complete the following steps:

  1. Define or modify the DBID/SVC routing table by coding a series of MDBCSVC macros in a library member. Sample member ADASVCTB is provided in the ADAvrs.SRCE library as a template for preparing this member. For more information about using the MDBSVC macro, read Using the MDBSVC Macro.

  2. Assemble and link-edit the DBID/SVC routing table member to create the table as a load module that you can make available to the application execution job step. The load module should be linked non-reusable and non-reentrant because the link routine subprogram LNKDSL will need to store the addresses of the Adabas SVC IDT headers in the DBID/SVC module to reduce the operating overhead on multiple commands accessing the same Adabas SVC.

  3. Define or modify a link globals table for the execution environment. The following LGBLSET keywords are required to support the Adabas SVC routing feature:

    LGBLSET Keyword Setting Description
    DYNDBSVC=YES This keyword and setting indicate that Adabas SVC routing is active for this job step.
    DBSVCTN=name This keyword specifies the name of the DBID/SVC table for this job step. This name must match the name of the load module created to ensure the proper table is loaded when the link routine runs.
  4. Assemble and link-edit the updated link globals table, as described for the appropriate TP monitor. For batch/TSO, read Installing Adabas with Batch/TSO under Adabas 8; for IMS, read Installing Adabas with IMS TM under Adabas 8 .

  5. Relink ADALNK or ADALNKR, making sure that the INCLUDE statements for the LNKDSL and DEPRTR modules are included in the job. Samples of the jobs used to relink ADALNK and ADALNKR are listed in the following table:

    Link Routine Sample Job
    z/OS batch TSO IMS
    ADALNK LNKLNK8 LNKLNK8 ---
    ADALNKR LNKLNKR8 LNKLNKR8 ---
    ADALNI8 --- --- LNKLNI8

Installing DBID/SVC Routing under z/VSE Batch

Start of instruction setTo install the Adabas DBID/SVC routing feature under z/VSE batch, complete the following steps:

  1. Define or modify the DBID/SVC routing table by coding a series of MDBCSVC macros in a library member. Sample member ADASVCTB.A is provided in the sublibrary SAGLIB.ADAvrs as a template for preparing this member. For more information about using the MDBSVC macro, read Using the MDBSVC Macro.

  2. Assemble and link-edit the DBID/SVC routing table member to create the table as a PHASE that you can make available to the application execution job step. The PHASE should be linked non-reusable and non-reentrant because the link routine subprogram LNKDSL will need to store the addresses of the Adabas SVC IDT headers in the DBID/SVC module to reduce the operating overhead on multiple commands accessing the same Adabas SVC.

  3. Define or modify a link globals table for the execution environment. The following LGBLSET keywords are required to support the Adabas SVC routing feature:

    LGBLSET Keyword Setting Description
    DYNDBSVC=YES This keyword and setting indicate that Adabas SVC routing is active for this job step.
    DBSVCTN=name This keyword specifies the name of the DBID/SVC table for this job step. This name must match the name of the PHASE created to ensure the proper table is loaded when the link routine runs.
  4. Assemble and link-edit the updated link globals table, as described for the appropriate TP monitor. For batch/TSO, read Installing Adabas with Batch under Adabas 8.

  5. Relink ADALNK.PHASE or ADALNKR.PHASE, making sure that the INCLUDE statements for the LNKDSL and RTRVSE object modules are included in the job. Samples of the jobs used to relink ADALNK and ADALNKR are listed in the following table:

    Link Routine Sample Job
    ADALNK.PHASE ALNKLNK8.X
    ADALNKR.PHASE ALNKLNR8.X

Installing DBID/SVC Routing under CICS

Start of instruction setTo install the Adabas DBID/SVC routing feature under CICS, complete the following steps:

  1. Define or modify the DBID/SVC routing table by coding a series of MDBCSVC macros in a library member. Sample member ADASVCTB is provided in the ADAvrs.SRCE library as a template for preparing this member. For more information about using the MDBSVC macro, read Using the MDBSVC Macro.

  2. Assemble and link-edit the DBID/SVC routing table member to create the table as a load module and place it in a library that will be part of the CICS DFHRPL concatenation. The load module should be linked non-reusable and non-reentrant because the link routine subprogram LNKDSL will need to store the addresses of the Adabas SVC IDT headers in the DBID/SVC module to reduce the operating overhead on multiple commands accessing the same Adabas SVC.

  3. Define the load module as a program to CICS using RDO, or the DFHCSDUP utility. See member DEFADA8 in the ACIvrs.SRCE libarary for sample DFHCSDUP definition statements. The program attributes should be Reload(No), Resident(Yes), Dataloc(Any), and Execkey(CICS).

  4. Define or modify a link globals table for the execution environment. The following LGBLSET keywords are required to support the Adabas SVC routing feature:

    LGBLSET Keyword Setting Description
    DYNDBSVC=YES This keyword and setting indicate that Adabas SVC routing is active for this job step.
    DBSVCTN=name This keyword specifies the name of the DBID/SVC table for this job step. This name must match the name of the load module created to ensure the proper table is loaded when the link routine runs.
  5. Assemble and link-edit the updated link globals table, as described in Installing Adabas with CICS under Adabas 8 for z/OS installations or Installing Adabas with CICS under Adabas 8 for z/VSE installations.

General Operation

When the Adabas SVC routing feature is installed, as described earlier in this section, it is loaded as described below:

When an application call is made, the DBID/SVC routing table is searched by the LNKDSL subroutine which is linked with the appropriate link routine for each operating environment. LNKDSL is called after any LUEXIT1 (link routine user exit 1) is invoked, in case the pre-Adabas call user exit modifies the command's database ID for subsequent processing. The call to LNKDSL is made before any monitoring or Adabas Fastpath exits are called, so the monitoring product, such as Adabas Review, Adabas Fastpath, or Adabas Transaction Manager, will perform their processing based on the appropriate Adabas SVC found in the DBID/SVC routing table.

If the database ID associated with a particular call is not found in the DBID/SVC routing table, the default value for the Adabas SVC as specified by the MDBSVC macro's TYPE=INIT parameter is used. If the SVC located is not an Adabas SVC, or if it is not installed on the z/OS system, an Adabas response code of 213 with subcode 16 or 20 is returned to the application. If the calling database is not active for an SVC number, an Adabas response code of 148 is returned to the application.

Duplicate database IDs are not allowed in the DBID/SVC routing table as there is no reliable way for the link routine to determine which SVC should be used for a database ID if it is listed more than once. If duplicate database IDs are found while the table is being assembled, they are flagged with an assembler MNOTE and a return code of 16 is returned for the assembly attempt.

Using the MDBSVC Macro

Use the MDBSVC macro to define various aspects of the Adabas DBID/SVC routing table. Several MDBSVC macros are coded together using TYPE=INIT, TYPE=GEN, and TYPE=FINAL keywords to comprise a source module or member. This source module or member is then assembled and link-edited to build the DBID/SVC routing table load module. Sample member ADASVCTB in ADAvrs.SRCE can be used as a template for creating site-specific versions of the DBID/SVC routing table source module. Here is a sample DBID/SVC routing table source member that uses the CSECT name TESTDBT; when the table is assembled, its load module name will be TESTDBT:

TESTDBT CSECT
        MDBSVC TYPE=INIT,SVC=249,DBID=001
        MDBSVC TYPE=GEN,SVC=237,DBID=(2,10,21,33,175,1149),           X
               DBID2=(100,101,102,13500)
        MDBSVC TYPE=GEN,SVC=231,DBID=(226,899)
        MDBSVC TYPE=GEN,SVC=206,DBID=(15,16,69,99,500,12144)
        MDBSVC TYPE=GEN,SVC=248,DBID=(14,54,111,177,1213,5775)
        MDBSVC TYPE=GEN,SVC=249,DBID=(17,19,25,35,42,44,61,76)
        MDBSVC TYPE=FINAL
        END

When coding keyword values of MDBSVC macro statements, the assembler rules for continuing lines, identifying lists, and providing keyword values must be followed or assembly errors will result. Keywords and values with lists coded as objects of keywords must be separated by commas. There are no positional parameters used with the MDBSVC macro.

The MDBSVC macro can include the following four types of statements, as described in the following table:

MDBSVC Statement Type Description Number Allowed
TYPE=INIT Only one MDBSVC TYPE=INIT statement can be included in the DBID/SVC routing table source member and it must be the first MDBSVC statement in the member. This statement identifies the beginning of the DBID/SVC routing table. The MDBSVC TYPE=INIT statement may also provide the default database ID and Adabas SVC number used for a call. 1
TYPE=GEN Any number of MDBSVC TYPE=GEN statements can be included in the DBID/SVC routing table source member. These statements specify the lists of Adabas database IDs associated with specific valid Adabas SVC numbers. any number, as needed.
TYPE=FINAL Only one MDBSVC TYPE=FINAL statement can be included in the DBID/SVC routing table source member and it must be the last MDBSVC statement in the member before the assembler END statement. This statement identifies the end of the DBID/SVC routing table. 1
TYPE=DSECT This statement type is reserved for Software AG internal use only. Do not use this statement type. 0

The MDBSVC TYPE=INIT statement can be preceded by a named CSECT statement and named AMODE and RMODE statements. If the CSECT, AMODE, or RMODE statements are included, the name used in them must agree with the name for the DBID/SVC routing table, as coded in the TABNAME parameter on the MDBSVC TYPE=INIT statement and as specified in the DBSVCTN keyword of the LGBLSET macro used for creating the link globals table.

This section covers the following topics:

MDBSVC TYPE=INIT Syntax

The syntax for the MDBSVC TYPE=INIT statement is:

MDBSVC TYPE=INIT [,SVC=svcno] [,DBID=dbid] [,TABNAME={name|ADBSVCT}] [,OPSYS={ZOS|VSE}]

The parameters you can code on the MDBSVC TYPE=INIT statement are described in MDBSVC Parameters.

MDBSVC TYPE=GEN Syntax

The syntax for the MDBSVC TYPE=GEN statement is:

MDBSVC TYPE=GEN [,SVC=svcno] [,DBID=id[, id]...][,DBID2=id[, id]...]

The parameters you can code on the MDBSVC TYPE=GEN statement are described in MDBSVC Parameters.

MDBSVC TYPE=FINAL Syntax

The syntax for the MDBSVC TYPE=FINAL statement is:

MDBSVC TYPE=FINAL

No parameters are valid on the MDBSVC TYPE=FINAL statement.

MDBSVC Parameters

The parameters that can be specified on various MDBSVC statements are as follows:

DBID

The DBID parameter can be coded on both the MDBSVC TYPE=INIT and MDBSVC TYPE=GEN statements.

Database IDs listed in the DBID parameter must be numeric and must correspond to the IDs of installed Adabas databases. In z/OS environments, database IDs must range from 1 to 65535. The same database ID cannot be specified on multiple MDBSVC statements; they must be unique across all of the DBID and DBID2 statements in the DBID/SVC routing table. Duplicate values are flagged with an MNOTE, which causes the assembly of the DBID/SVC routing table to stop with return code 16.

The following is an example of some DBID parameters on various MDBSVC statements. Note that two MDBSVC statements list database IDs associated with SVC 237. This allows more database IDs to be coded for the same SVC number. Compare the way this is coded to the way the same example is coded for the DBID2 parameter. Both codings produce the same end result.

MDBSVC TYPE=INIT,SVC=249,DBID=1
MDBSVC TYPE=GEN,SVC=237,DBID=(2,4,10,16,21,33)
MDBSVC TYPE=GEN,SVC=237,DBID=(175,1149,1221)
MDBSVC TYPE=GEN,SVC=242,DBID=(3,18)
MDBSVC TYPE=FINAL
END
DBID2

The DBID2 parameter can be coded only on MDBSVC TYPE=GEN statements. It lists additional database IDs to be associated with an Adabas SVC specified in the SVC parameter. The DBID2 parameter is optional, but when it is specified, it must follow a DBID parameter.

Database IDs listed in the DBID2 parameter must be numeric and must correspond to the IDs of installed Adabas databases. In z/OS environments, database IDs must range from 1 to 65535. The same database ID cannot be specified on multiple MDBSVC statements; they must be unique across all of the DBID and DBID2 statements in the DBID/SVC routing table. Duplicate values are flagged with an MNOTE, which causes the assembly of the DBID/SVC routing table to stop with return code 16.

The following is an example of some MDBSVC statements that includes a DBID2 parameter. Compare the way this example is coded to the way the same example is coded for the DBID parameter. Both codings produce the same end result.

MDBSVC TYPE=INIT,SVC=249,DBID=1
MDBSVC TYPE=GEN,SVC=237,DBID=(2,4,10,16,21,33),                        X 
       DBID2=(175,1149,1221)
MDBSVC TYPE=GEN,SVC=242,DBID=(3,18)
MDBSVC TYPE=FINAL
END
OPSYS

The OPSYS parameter is an optional parameter that can be coded only on the MDBSVC TYPE=INIT statement. This parameter identifies the operating system where the DBID/SVC routing table is assembled. Valid values for the OPSYS parameter are "ZOS" and "VSE"; the default is "ZOS".

PREFIX

The PREFIX parameter can only be coded only on the MDBSVC TYPE=DSECT statement, which is reserved for internal use by Software AG. Do not use this parameter.

SVC

The SVC parameter can be coded on both the MDBSVC TYPE=INIT and MDBSVC TYPE=GEN statements.

The SVC number listed in the SVC parameter must be numeric and must correspond to the SVC number of an installed Adabas SVC. In z/OS environments, the SVC number must range from 200 to 255. Duplicate SVC values can be coded on multiple MDBSVC statements; this allows you to code long lists of database IDs and associate them with the same Adabas SVC.

In the following example, notice that there are two MDBSVC statements for SVC 249. It is the default SVC for the link routine and is also used for database 1, 3, and 18. There are also two MDBSVC statements for SVC 237; the two statements are used to list nine databases associated with SVC 237 (2, 4, 10, 16, 21, 33, 175, 1149, and 1221).

MDBSVC TYPE=INIT,SVC=249,DBID=1
MDBSVC TYPE=GEN,SVC=237,DBID=(2,4,10,16,21,33)
MDBSVC TYPE=GEN,SVC=237,DBID=(175,1149,1221)
MDBSVC TYPE=GEN,SVC=249,DBID=(3,18)
MDBSVC TYPE=FINAL
END
TABNAME

The TABNAME parameter is an optional parameter that can be coded only on the MDBSVC TYPE=INIT statement. This parameter specifies the name of the DBID/SVC routing table when the source member does not include a separate (and previously coded) CSECT statement. In this case, the name you specify on the TABNAME parameter is used to generate a named CSECT statement and named AMODE and RMODE directives.

The DBID/SVC routing table name that you specify should be between 1 and 8 alphanumeric characters long. In the following example, a DBID/SVC routing table with the name TESTDBT is coded.

MDBSVC TYPE=INIT,SVC=249,DBID=1,TABNAME=TESTDBT
MDBSVC TYPE=GEN,SVC=237,DBID=(2,4,10,16,21,33)
MDBSVC TYPE=GEN,SVC=237,DBID=(175,1149,1221)
MDBSVC TYPE=GEN,SVC=249,DBID=(3,18)
MDBSVC TYPE=FINAL
END

Top of page

Modifying Source Member Defaults (LGBLSET Macro) in Version 8

The Adabas 8 LGBLSET macro is used to set default installation values for the Adabas link routines. It is used to prepare an object module which may either be link-edited with the Adabas 8 link routines or provided to the link routines in the job step where they are run. Your Adabas libraries include sample members provided to support the various teleprocessing (TP) monitors in each environment. Each of these sample members may be copied to an appropriate library and modified to provide the necessary customization required for the link routine that is intended to run in a given environment.

The LGBLSET parameter options with their default values (underlined) are described in the rest of this section:

ADL: Adabas Bridge for DL/I Support

Parameter Description Syntax
ADL

Indicates whether or not the Consistency Interface of Software AG’s Adabas Bridge for DL/I is to be supported by this command-level link routine.

  • ADL=YES: Adabas Bridge for DL/I Consistency Interface is to be supported.

  • ADL=NO: Adabas Bridge for DL/I Consistency Interface is not to be supported.

ADL={NO|YES}

AVB: Adabas Bridge for VSAM Support

Parameter Description Syntax
AVB

Indicates whether or not Software AG’s Adabas Bridge for VSAM is to be supported by this command-level link routine.

  • AVB=YES: Adabas Bridge for VSAM is to be supported.

  • AVB=NO: Adabas Bridge for VSAM is not to be supported.

AVB={NO|YES}

CITSNM: Adabas CICS TS Queue Name

Parameter Description Syntax
CITSNM

Specifies the 16-byte string that represents the CICS TS queue name for Adabas. The default is "ADACICS".

CITSNM={ADACICS|qname}

COR: SYSCOR Exit Support

Parameter Description Syntax
COR

Indicates whether or not Adabas System Coordinator (SYSCOR), Adabas Transaction Manager, and Adabas Fastpath exits are installed and active.

  • COR=YES: The exits are installed and active.

  • COR=NO: The exits are not installed and active.

COR={NO|YES}

DBSVCTN: DBID/SVC Routing Table

Parameter Description Syntax
DBSVCTN

Provides the name of the DBID/SVC routing table that should be used by the link routine during its execution, if any.

The routing table name must conform to names for z/OS standard load modules. It is used by a z/OS LOAD macro/SVC during batch, TSO, or IMS operation or by an EXEC CICS LOAD PROGRAM command during CICS operation.

If the load module listed is not found, or if it is found to contain invalid header information, user abend U657 is issued in batch, TSO, or IMS environments.

If the load module is not defined to CICS or not found in the CICS DFHRPL concatenation, the Adabas CICS link routine environment is not initialized.

Note:
If the DYNDBSVC parameter is set to NO, this parameter setting is ignored.

For more information about SVC routing by database ID in z/OS environments, read Establishing Adabas SVC Routing by Adabas Database ID.

Note:
Adabas client-based add-ons, such as Adabas Transaction Manager, are not compatible with this feature since for client-based functionality to work, it must be channeled through only a single router for any given session, not across routers. To avoid problems if the dynamic SVC by DBID routing feature in enabled for these products, error messages are issued, the assembly step of the globals table will receive return code 16, and the globals table load module will not be generated.

DBSVCTN={name|ADASVCTB}

DYNDBSVC: DBID/SVC Routing Table

Parameter Description Syntax
DYNDBSVC

Indicates whether Adabas SVC routing by database ID should be enabled for the link routine. DYNDBSVC=YES enables Adabas SVC routing by database ID; DYNDBSVC disables it. The default is NO.

For more information about SVC routing by database ID in z/OS environments, read Establishing Adabas SVC Routing by Adabas Database ID.

DYNDBSVC={YES|NO}

ENTPT: Name of the Adabas CICS Command-Level Link Routine

Parameter Description Syntax
ENTPT

The name given to the Adabas CICS command-level link routine. This name is used in EXEC CICS LINK commands to invoke Adabas services from CICS application programs.

See also notes 1 and 2 in the installation procedure.

ENTPT={ADACICS|name}

GBLNAME: Name of Link Globals Module

Parameter Description Syntax
GBLNAME

The name of the link globals module.

GBLNAME={LNKGBLS|name}

GEN: Generate CSECT or DSECT

Parameter Description Syntax
GEN

Indicates whether a CSECT or DSECT is generated.

GEN={CSECT|DSECT}

IDTNAME: BS2000 IDT Common Memory Name

Parameter Description Syntax
IDTNAME

The common memory pool name of the BS2000 IDT.

IDTNAME=name

IDTUGRP: BS2000 Memory Pool User Bound

Parameter Description Syntax
IDTUGRP

Indicates whether the common memory pool is user bound (BS2000)

IDTUGRP={NO|YES}

LOGID: Default Logical Database ID

Parameter Description Syntax
LOGID

The value of the default target database ID. Valid ID numbers are 1-65535. The default is "1".

LOGID={nnn | 1}

LUINFO: Length of User Data passed to Adabas LUEXIT1 and LUEXIT2

Parameter Description Syntax
LUINFO

The length of the user data to be passed to target user exit 4. Valid values are numbers from zero (0) through 32,767.

If LUINFO is not specified, the default is zero (no user data is passed).

LUINFO={0|length}

LUSAVE: Size of User Save Area for Adabas LUEXIT1 and LUEXIT2

Parameter Description Syntax
LUSAVE

The size of the user save area to be used by Adabas user exits LUEXIT1 and LUEXIT2. Valid values range from zero (0) through 256. The default is "72".

If LUSAVE is not specified, the default is zero (no user save area is passed).

LUSAVE={72|size}

LX1NAME: User Exit 1 Module Name

Parameter Description Syntax
LX1NAME

The name of the link user exit 1 module

LX1NAME={LUEXIT1|name}

LX2NAME: User Exit 2 Module Name

Parameter Description Syntax
LX2NAME

The name of the link user exit 2 module

LX2NAME={LUEXIT2|name}

MRO: Multiple Region Option

Parameter Description Syntax
MRO

Indicates whether or not the CICS multiple region option (MRO) support is required.

If you run the CICS command-level link with the CICS MRO, set this to MRO=YES; otherwise, use the default value MRO=NO.

If MRO=YES, NETOPT must be set to NETOPT=NO (the default) to prevent non-unique LU names from multiple application regions.

If NETOPT=YES and MRO=YES are specified, an assembler MNOTE and a return code of 16 are produced from the assembly step.

MRO={NO|YES}

NETOPT: Method Used to Create User ID

Parameter Description Syntax
NETOPT

If NETOPT=YES is specified, an 8-byte user ID will be constructed from the VTAM LU name. If NETOPT=NO is specified, the user ID is created from the constant CICS plus the four-byte CICS terminal ID (TCTTETI) for terminal tasks. For non-terminal tasks, the user ID comprises the constant CIC plus the CICS task number.

If you run with the CICS multiple region option (MRO), you must use the default value for this option. If NETOPT=YES and MRO=YES are specified, an assembler MNOTE and a return code of 16 are produced from the assembly step.

NETOPT={NO|YES}

NTGPID: Natural Group ID

Parameter Description Syntax
NTGPID

Specifies a four-byte Natural group ID as required for unique Adabas user ID generation in the CICSplex environment with Natural Version 2.2.8 and above. The value is associated with all users who call the Adabas command-level link routine assembled with the specified value.

There is no default value. If no value is specified, the Adabas internal user ID is built in the conventional manner.

Any four-byte alphanumeric value may be specified, but it must be unique for each Adabas command-level link routine running in a CICSplex, or z/OS image. If more than one NTGPID is required (for example, both test and production Natural 2.2.8), more than one Adabas command-level link routine with associated TRUE must be generated.

If you run with the CICS multiple region option (MRO), you may use NTGPID to provide a 4-byte literal for the Adabas communication ID to be used by the Adabas SVC when multiple application regions call Adabas.

NTGPID=4-byte-value

NUBS: Number of User Blocks Created By CICS Link Routine

Parameter Description Syntax
NUBS

The number of user blocks (UBs) to be created in the user block pool by the CICS link routine. The number of blocks must be large enough to handle the maximum possible number of concurrent Adabas requests.

Note:
The Adabas 6.2 and above command-level link routine obtains storage for the user blocks (the UB pool) above the 16-megabyte line.

NUBS={100|blocks}

OPSYS: Operating System

Parameter Description Syntax
OPSYS

The operating system in use.

OPSYS={ZOS|VSE|CMS|BS2}

PARMTYP: Area for Adabas Parameter List

Parameter Description Syntax
PARMTYP

The CICS area which is to contain the Adabas parameter list. "TWA" picks up the parameter list in the first six fullwords of the transaction work area (TWA).

When PARMTYP=COM, the Adabas parameters are supplied in the CICS COMMAREA provided by the calling program with the EXEC CICS LINK command. The COMMAREA list for an ACB call must be at least 32 bytes long and begin with the label "ADABAS52". The COMMAREA list for an ACBX call must be at least 24 bytes long and begin with the label "ADABAS8X". In addition, the last ABD in the COMMAREA list for an ACBX call must be indicated by setting the VL-bit -- in other words, the high bit in the address must be on (X'80').

PARMTYP=ALL (the default) uses both the COMMAREA and TWA to pass the Adabas parameters; in this case, the COMMAREA is checked first.

We do not recommend that you attempt to map the CICS TWA to the Adabas 8 ACBX direct call. This is because the TWA is of finite size per transaction and because the TWA in not available at CICS startup. We therefore recommend that CICS programs using the Adabas 8 CICS link routines use the COMMAREA only for passing data.

PARMTYP={ALL|COM |TWA}

PRE: DSECT Data Prefix

Parameter Description Syntax
PRE

The two-byte string to be used as the DSECT data prefix. The default is "LG".

PRE={LG|prefix}

PURGE: Purge Transaction

Parameter Description Syntax
PURGE

The PURGE parameter is used when assembling with CICS 3.2 or above. If PURGE=YES is specified, the CICS WAIT EXTERNAL will contain PURGEABLE as one of its parameters, allowing the transaction to be purged by CICS if the DTIMOUT value is exceeded and PURGE is specified.

If PURGE=NO (the default) is specified, the NONPURGEABLE option is generated.

PURGE={NO|YES}

RENT: Reentrant Module Flag

Parameter Description Syntax
RENT

Indicates whether the globals module is reentrant.

RENT={NO|YES}

RETRYX: Retry Command Exit Flag

Parameter Description Syntax
RETRYX

Indicates whether the retry command exit is active.

RETRYX={NO|YES}

REVIEW: Adabas Review Support

Parameter Description Syntax
REVIEW

Indicates whether or not Software AG’s Adabas Review performance monitor is installed and active. When REVIEW=YES is specified, a work area of 512 bytes is set up for use by Adabas Review.

REVIEW={NO|YES}

RMI: Resource Manager Interface

Parameter Description Syntax
RMI

The RMI parameter is used to indicate whether or not the CICS Resource Manager Interface is in use.

If RMI=YES is specified, the Adabas task-related user exit (TRUE) will be executed as a resource manager (RM) using the CICS Resource Manager Interface (RMI).

RMI=YES is valid only when the Adabas Transaction Manager is installed, enabled, and available to users executing in the CICS environment. Consult the Adabas Transaction Manager documentation for additional instructions related to the installation of the Adabas TRUE.

RMI={NO|YES}

RTXNAME: Command Retry Exit Name

Parameter Description Syntax
RTXNAME

The name of the command retry exit module.

RTXNAME={LUEXRTR|name}

SAF: Adabas Security Interface Flag

Parameter Description Syntax
SAF

Indicates whether Software AG's Adabas SAF Security support is required.

SAF={NO|YES}

SAP: SAP Application Support

Parameter Description Syntax
SAP

Indicates whether or not SAP user ID generation is supported.

If SAP=YES is specified, the program will detect a SAP initialization call and set the user ID for SAP applications from the constant provided on the initialization call, plus the field ACBADD2.

For more information, refer to the supplementary information provided to customers using the SAP application system.

SAP={NO|YES}

SAPSTR: SAP ID String

Parameter Description Syntax
SAPSTR

The four-byte SAP ID string to use.

SAPSTR={'SAP*'|string}

SVCNO: Adabas SVC number

Parameter Description Syntax
SVCNO

The value of the Adabas SVC number.

On z/OS systems, valid values range from 200-255 and the default is "249".

On z/VSE systems, valid values range from 32-128 and the default is "45".

SVCNO=nnn

TPMON: Operating Environment

Parameter Description Syntax
TPMON

The TP monitor operating environment. Valid values should be specified as follows:

  • Specify "BAT" to use batch.

  • Specify "CICS" to use CICS.

  • Specify "COM" to use Com-plete.

  • Specify "IMS" to use IMS.

  • Specify "TSO" to use TSO.

  • Specify "UTM" to use UTM.

Warning:
Be sure to specify a TP monitor operating environment that is supported on the operating system you selected in the OPSYS parameter. In addition, if OPSYS=CMS is specified, the TPMON parameter should not be specified.
TPMON={BAT|CICS|COM|IMS}

TRUENM: CICS TRUE Name

Parameter Description Syntax
TRUENM

Specifies the module name of the Adabas CICS task-related user exit (TRUE). The default is ADACICT.

TRUENM={ADACICT|name}

UBPLOC: User Block Pool Allocation

Parameter Description Syntax
UBPLOC

Specifies whether the user block (UB) pool is to be obtained above (the default) or below the 16-megabyte line in CICS.

The ECB used by the EXEC CICS WAIT WAITCICS or the EXEC CICS WAIT EXTERNAL is included in the UB pool.

The UBPLOC=BELOW setting supports versions of CICS that do not allow ECBs above the 16-megabyte line; that is, CICS/ESA 3.2 or below.

Refer to the IBM manual CICS Application Programming Reference for more information.

UBPLOC={ABOVE|BELOW}

UES: Universal Encoding Support

Parameter Description Syntax
UES

Indicates whether or not Universal Encoding Support (UES) is required.

UES={NO|YES}

USERX1: User Exit 1 Flag

Parameter Description Syntax
USERX1

Indicates whether or not user exit 1 is active.

USERX1={NO|YES}

USERX2: User Exit 2 Flag

Parameter Description Syntax
USERX2

Indicates whether or not user exit 2 is active.

USERX2={NO|YES}

XWAIT: XWAIT Setting for CICS

Parameter Description Syntax
XWAIT

Indicates whether a standard EXEC CICS WAITCICS (XWAIT=NO) or a WAIT EVENTS EXTERNAL (XWAIT=YES) will be executed by the Adabas 8 task-related user exit (TRUE). XWAIT=YES is the default.

The CICS WAIT EVENTS EXTERNAL (XWAIT=YES) is the recommended interface for CICS/TS 1.1 and above.

The CICS WAITCICS statement (XWAIT=NO) is provided for use with CICS/MVS 2.1.2 and for CICS/VSE 2.1 through 2.3. It may also be used for CICS/TS 1.1 and above, but may result in poor CICS transaction performance or unpredictable transaction results in busy CICS environments.

Note:
If XWAIT=NO is specified for use under CICS/ESA 3.3, IBM APAR PN39579 must be applied to the CICS/ESA 3.3 system. For CICS/TS 1.1 and above, this APAR is not required.

XWAIT={NO|YES}

Notes:

  1. If XWAIT=NO is specified, the ADACICT (Adabas 8 TRUE) module issues an EXEC CICS WAITCICS command instead of the EXEC CICS WAIT EVENT command. XWAIT=YES conforms with recommended IBM usage of the WAIT and ECB lists in a high-transaction volume CICS system with CICS/TS Version 1.1 and above.
  2. All EXEC CICS commands are processed by the CICS preprocessor; the LGBLSET parameters cause the subsequent assembly step to skip some of the statements.

XWAIT Posting Mechanisms

CICS WAITCICS (XWAIT=NO) can support a soft post of the specified ECB. This has the disadvantage of becoming a low priority dispatchable unit of work in a CICS environment, since the hand-postable work is not processed by CICS on every work cycle.

EXEC CICS WAIT EXTERNAL (XWAIT=YES), on the other hand, allows CICS to make use of its special post exit code, and will always be checked and processed (if posted) on every CICS work cycle.

For more details on the differences between the various CICS WAIT commands and their relationship to hard and soft posting mechanisms, consult the IBM CICS Application Programming Reference and the texts accompanying IBM APAR PN39579 or “Item RTA000043874” on the IBM InfoLink service.

XWAIT and the Adabas SVC / Router

The Adabas SVC is fully compatible with the XWAIT=YES setting. The SVC performs the necessary hard post for Adabas callers under CICS using the Adabas command-level link routine. The same SVC performs a soft post for batch callers where the hard post is not required.

Top of page