Version 7.4.4

Installing Adabas With TP Monitors

This section provides information needed to install Adabas for the teleprocessing (TP) monitors shown in the table below. Information about using Adabas with TP monitors is contained in other sections as well, particularly in the sections describing Adabas installation by operating system.

Platform TP Monitor TP Monitor / Adalink
Fujitsu, Ltd. (FACOM) AIM/DC ADALNA / ADALND
IBM z/OS CICS command-level LNKOLSC / LNKOLM
IBM z/OS CICS high-performance stub LNCSTUB
IBM z/OS Com-plete ADALCO
IBM IMS IMS/DC ADALNI / ADALNK
IBM z/OS Shadow ADALNS
IBM z/OS Batch / TSO ADALNK / ADALNKR

Installing Adabas with AIM/DC

This section describes installation of the Fujitsu (FACOM) AIM/DC TP monitor with Adabas.

graphics/aim.png

The job AIMASM is provided for assembling the source members ADALNA and ADALND, the AIM/DC-dependent link routines. You must first customize the JCL for AIMASM to select the MVS operating system MACLIB (SYS1.MACLIB) containing the LOAD macro.

Before AIMASM can be run, ADALNA must be customized to select the following options:

Option Value Specify ...
SVCNR 249 | nn the value of the MSP SVC number. The default value is 249.
LOGID 1 | nn the value of the default logical database ID in the range 1-255. The default value is 1.
NUBS 50 | nn the value for the number of UBs (user blocks) to be created by ADALNA. This value must be high enough to handle the maximum possible number of concurrent Adabas requests. The default value is 50.

Note:
The modules ADALNA and ADALND are linked together to form ADALNA.

Top of page

Preparing Adabas Link Routines for IBM Platforms

This section describes the preparation of Adabas link routines for TP monitors for IBM platforms.

High-Level Assembler

The IBM high-level Assembler is required when assembling the Adabas link routines for TP monitors. The high-level Assembler generates 4-digit year assembly dates into the load modules using the &SYSDATC assembly variable. The older Assemblers H and F do not support 4-digit year assembly dates.

It is possible to assemble the Adabas link routines without the high-level Assembler, either as is (ignore the assembly error), or with the &SYSDATC variable changed to yyyymmdd, any valid 4-byte unsigned decimal assembly date where yyyy is a 4-digit year, mm is a 2-digit month, and dd is a 2-digit day. The assembly date field is restricted to 4 bytes in the load module.

Addressing Mode Assembly Directives

The Adabas link routines now have AMODE and RMODE assembly directives in the source. These 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.

The batch/TSO link routine ADALNK has the following AMODE and RMODE assembly directives:

ADABAS AMODE 31
ADABAS RMODE 24

For the CICS and IMS link routines (modules LNKOLM, LNKOLSC, and ADALNI) the directives are

ADABAS AMODE 31
ADABAS RMODE ANY

Modifying the Assembly Directives

These directives may be changed by modifying the source members before assembling them, or they may be overridden by linkage editor control statements. For example, to link the batch/TSO ADALNK module with AMODE 31 and an RMODE of ANY, the following control statements may be provided as input to the linkage editor:

MODE AMODE(31),RMODE(ANY)
ENTRY ADABAS
NAME ADALNK(R)

The linkage editor control statements override the Assembler directives in the source module.

Note:
Future releases of the Adabas link routines may require an AMODE of 31 and an RMODE of ANY to function properly in the z/OS environment. Software AG strongly recommends that you evaluate application programs and update them to conform to this standard.

For more information about the AMODE and RMODE directives and their effects on the assembler, linkage editor, and execution, consult the IBM MVS/ESA Extended Addressability Guide.

UES-Enabled Link Routines

For Adabas Version 7.4, UES is enabled by default for the batch/TSO, Com-plete, and IMS link routines. It is not necessary to disable UES support. Applications that do not require UES translation continue to work properly even when the UES components are linked with the Adabas link routines. See the section Connecting UES-Enabled Databases for more information.

Disabling UES Support

However, if for some reason you feel it necessary to disable UES support in the Adabas link routines, use the following procedure to do so:

  1. Edit the source member ADALCO, ADALNI, ADALNK, or ADALNKR. Set the &UES Boolean assembler variable to 0 by commenting out the source line where it is set to 1 and removing the comment from the line where it is set to 0.

  2. Assemble the link routine 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 and do not include any of the UES components (that is, LNKUES, ASC2EBC, or EBC2ASC).

Top of page

Installing Adabas with CICS

CICS/ESA 3.2 and above for z/OS environments must run a current version of Adabas and use the command-level link component. The macro-level link routine ADALNC is no longer supported in this environment.

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/ESA 3.2 and above; therefore, it is not provided with the command-level link routine.
  2. When running under CICS 4.1, the CICS components from Adabas 5.3.3 or above are required.

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.

Note:
Adabas Bridge for VSAM Version 4.1.1 must use the Adabas command-level link routine included in the AVB 4.1.1 source library.

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 ADAGSET option MRO=YES and use the default value for the ADAGSET NETOPT option.

You can use the ADAGSET NTGPID option 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 B (UEXITB) for the link routine that

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. Resources defined to operate in

To use storage protection with Adabas, you must either

Software AG recommends using the task-related user exit.

Standard Versus Enhanced Installation

All supported versions of the command-level link routine can be installed using the standard installation, which comprises steps 1 through 3 of the installation procedure.

Steps 4 and 5 are required in order to use the enhanced features of the command-level link routine:

Step 6 is used to install the optional DISPGWA program. The DISPGWA program is only available with the enhanced installation.

The enhanced installation is required if

CICS Transaction Isolation

The enhanced Adabas CICS command-level link components take advantage of the transaction isolation facility provided by CICS/ESA 4.1 when running with specific hardware under z/OS.

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 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.

The Adabas CICS command-level link components must be defined to CICS with the proper storage access to ensure proper operation when transaction isolation is active:

This permits the correct degree of isolation between applications invoking the link routine and the Adabas CICS task-related user exit (TRUE), which interacts directly with CICS resources.

When CICS transaction isolation is active, user SVCs cannot execute from the CICS region. SVCs can be executed in CICS key, however, during the PLT phase of the CICS startup and termination. For this reason, the module LNKENAB is provided to execute during the PLTPI phase of CICS initialization.

ADASAF and CICS 4.1

The Adabas SAF Security (ADASAF) module resides in the Adabas nucleus region to handle the authorization of Adabas resources.

Under CICS 4.1, this module depends on the external security identifier (user sign-on) being extracted from the access control environment element (ACEE) in the caller’s address space, and being passed on to Adabas by the SVC.

Under CICS 4.1, the command-level link routine must utilize a CICS task-related user exit to extract the external security identifier from the ACEE. The Adabas task-related user exit in the module LNKTRUE has been included in Adabas for this purpose.

Note:
The Adabas task-related user exit LNKTRUE is not required for ADASAF under CICS versions prior to 4.1.

Operationally Reentrant Link Routine after Initialization

The Adabas command-level link routine is operationally reentrant and not self-modifying after initialization. During execution, a CICS global work area (GWA) is obtained and passed to the command-level link, which uses the GWA to store addresses. This feature is available for CICS Version 3.2 and above.

Note:
Do not use the JCL parameter RENT when assembling/linking the command-level link routine.

DISPGWA Module : Displaying the CICS Global Work Areas

The DISPGWA module is a program provided by Software AG as an optional feature for CICS Version 3.3 and above.

The DISPGWA program displays the global work area (GWA) used by the various command-level link components. It can be used to display other areas of CICS that are important to the Adabas command-level link routine when it is executing as a task-related user exit (TRUE). With the help of Software AG personnel, you can use this program to interrogate important data areas during problem determination.

The DISPGWA module is used only if the LNKTRUE module is used, since it is the LNKTRUE module that actually EXTRACTs the global work area.

LNKENAB and LNKTRUE Modules

This section describes the usage of the LNKENAB and LNKTRUE modules.

LNKENAB Module

The LNKENAB module

The purpose of the command is to derive the address of the IDTH from the first SVC call. All other SVC calls from the command-level link routine are then made using a branch entry into the Adabas SVC.

LNKTRUE Module

When started and enabled by LNKENAB during PLTPI processing, the task-related user exit LNKTRUE module

Most of the command-level link components execute under the umbrella of LNKTRUE. This means that any abend condition during the execution of LNKTRUE is serious; CICS may even respond by terminating the entire CICS region.

Items that may cause this condition include, but are not limited to

Software AG strongly recommends that you test application programs in a CICS region that supports the non-task-related user exit version (standard installation) of the command-level link before migrating to a task-related user exit version (enhanced installation) of the command-level link routine.

JCL and Source Members

The JCL members use the sources indicated in the following table:

JCL Source Source Description
CICCASM LNKOLSC/LNKOLM LNKOLSC is the dependent part of the Adabas command-level link routine. LNKOLM is the independent part of the Adabas command-level link routine.
CICTASM LNKTRUE Adabas task-related user exit.
CICEASM LNKENAB Adabas PLT-enabled program.
CICDASM DISPGWA Display program for Adabas global work area (GWA).

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.

The following table provides sample RDO definitions for the Adabas CICS command-level link components (SMA job number I005). The data has been extracted directly from the CICS CSD file and should be used as a guide for providing comparable information on the CEDA panels.

**********************************************************************
* Sample DEFINE control statements for the DFHCSDUP utility.
* For Adabas V7.4 CICS command-level link routine components.
*
* These control statements can be used as input to the DFHCSDUP
* CICS CSD update utility to define the Adabas CICS command-level
* link routine components on a CICS/TS system.
**********************************************************************
DEFINE PROGRAM(ADABAS) GROUP(ADABAS)
DESCRIPTION(ADABAS V74s COMMAND LEVEL LINK ROUTINE)
LANGUAGE(ASSEMBLER) RELOAD(NO) RESIDENT(YES) USAGE(NORMAL)
USELPACOPY(NO) STATUS(ENABLED) CEDF(YES) DATALOCATION(ANY)
EXECKEY(CICS) EXECUTIONSET(FULLAPI)
DEFINE PROGRAM(ADAENAB) GROUP(ADABAS)
DESCRIPTION(ADABAS V74s PLTPI ENABLE ADATRUE PROGRAM)
LANGUAGE(ASSEMBLER) RELOAD(NO) RESIDENT(NO) USAGE(NORMAL)
USELPACOPY(NO) STATUS(ENABLED) CEDF(YES) DATALOCATION(ANY)
EXECKEY(CICS) EXECUTIONSET(FULLAPI)
DEFINE PROGRAM(ADATEST) GROUP(ADABAS)
DESCRIPTION(ADABAS V74s DISPLAY GWA PROGRAM - DISPGWA)
LANGUAGE(ASSEMBLER) RELOAD(NO) RESIDENT(NO) USAGE(NORMAL)
USELPACOPY(NO) STATUS(ENABLED) CEDF(YES) DATALOCATION(ANY)
EXECKEY(CICS) EXECUTIONSET(FULLAPI)
DEFINE PROGRAM(ADATRUE) GROUP(ADABAS)
DESCRIPTION(ADABAS V74s TASK RELATED USER EXIT)
LANGUAGE(ASSEMBLER) RELOAD(NO) RESIDENT(YES) USAGE(NORMAL)
USELPACOPY(NO) STATUS(ENABLED) CEDF(YES) DATALOCATION(ANY)
EXECKEY(CICS) EXECUTIONSET(FULLAPI)
DEFINE TRANSACTION(DGWA) GROUP(ADABAS)
DESCRIPTION(TRANSACTION TO DISPLAY ADABAS GWA)
PROGRAM(ADATEST) TWASIZE(128) PROFILE(DFHCICST) STATUS(ENABLED)
TASKDATALOC(ANY) TASKDATAKEY(CICS) 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)

—where s is the system maintenance level of Adabas.

These sample DEFINE statements are located in member DEFADAC in the Adabas Version 7.4 CICS command-level source library. They can be modified and used 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.

Modifying Source Member Defaults (ADAGSET Macro)

The ADAGSET macro is used to create default settings for the command-level link components. This macro exists in each of the installation source members. The macro settings must be identical in every installation source member used.

To facilitate the assembly of the Adabas command-level link routine components, 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.

It is critical that the values for the following keywords agree for all components of the Adabas CICS command-level link routine: LOGID, SVCNO, LUINFO, LRINFO, LUSAVE, NUBS, ENTPT, TRUENAM, and ENABNAM.

Step 1 of the installation procedure identifies the source members that must be edited for standard and enhanced installation.

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 command-level link routine, which is the combination of LNKOLSC, LNKOLM, and the CICS entry and exit code. 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={ ’ADABAS’ | ’name’ }

LADAFP: Length of Work Area for Adabas Fastpath Exit

Parameter Description Syntax
LADAFP

The length of the work area provided to the Adabas Fastpath exit.

Values from 0 (the default) to 32767 may be specified. 0 indicates that Adabas Fastpath is not linked with the Adabas command-level link routine. A non-zero value requires that the parameter TRUE=YES is also set and the Adabas task-related user exit (TRUE) is used. Consult the Adabas Fastpath documentation for recommended values.

Note:
This parameter is not yet fully implemented. It is provided for future use by Adabas Fastpath.

LADAFP={ 0 | nn}

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 UEXITA and UEXITB

Parameter Description Syntax
LUINFO

Length of the user data to be passed from the CICS link routine to Adabas UEXITA and UEXITB.

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 UEXITA and UEXITB

Parameter Description Syntax
LUSAVE

Size of the user save area to be used by Adabas user exits UEXITA and UEXITB. 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 UEXITA

Parameter Description Syntax
LXITAA

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

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

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 UEXITB

Parameter Description Syntax
LXITBA

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

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

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). COM picks up the list in the COMMAREA, followed by the normal Adabas parameter list. The COMMAREA list 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/ESA 4.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 LNKTRUE.

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’ | ADATRUE}

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/ESA 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/ESA 3.3 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/ESA 3.3 and above, but may result in poor CICS transaction performance or unpredictable transaction results in busy CICS/ESA 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/ESA 4.1 and above, this APAR is not required.

XWAIT={ NO | YES }

Notes:

  1. With Adabas Version 6, the default for the XWAIT parameter changed from XWAIT=NO to XWAIT=YES to conform with IBM usage.
  2. If XWAIT=NO is specified, the Adabas 6.2 and above LNKOLSC module issues an EXEC CICS WAITCICS command instead of the EXEC CICS WAIT EVENT command used in previous versions. This conforms with recommended IBM usage of the WAIT and ECB lists in a high-transaction volume CICS system with CICS/ESA Version 4.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/ESA 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/ESA Application Programming Reference Guide and the texts accompanying IBM APAR PN39579 or “Item RTA000043874” on the IBM InfoLink service.

XWAIT and the Adabas SVC / Router

The Adabas 6.2 and above SVC is fully compatible with the XWAIT=YES setting. The SVC performs the necessary “hard post” for Adabas callers under CICS/ESA 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.

If XWAIT=YES is specified and the Adabas SVC is below the 6.2 level, a zap is required to provide the “hard post” code preferred for CICS/ESA users:

ZAP AO33024 for an Adabas 5.3.3 SVC
ZAP AO13016 for an Adabas 6.1.2 or 6.1.3 SVC

This zap is available from your Software AG technical support representative.

Software AG strongly recommends that you use the Adabas 6.2 or above SVC/router with XWAIT=YES. The zaps to earlier SVC/routers may degrade performance for non-CICS Adabas transactions that use the modified SVC/router.

Installation Procedure

Step 1: Modify the ADAGSET Macro for the Source Member(s)

Modify the ADAGSET macro for the source members to be used.

See the section Modifying Source Member Defaults (ADAGSET) for details. Software AG recommends that you modify a common version of ADAGSET and place it in a library available in the SYSLIB concatenation when the Adabas command-level link components are assembled.

Note:
It is no longer necessary to modify the equates inside the LNKOLSC code. Instead, use the ADAGSET macro to set default values before assembly, thus making the process easier and more self-documenting.

For the Standard Installation (Without Enhanced Functions)

Modify the source member ADAGSET to set the following options:

For the Enhanced Installation

Modify the source member ADAGSET to set the following options:

Notes:

  1. It is critically important that the ENTPT and TRUENM parameters coded in the LNKENAB, LNKTRUE, and LNKOLSC modules are identical. These module names are used to identify the global work area and task-related user exit (TRUE) storage provided for the CICS transaction using the link-specific link component.
  2. If you are installing multiple instances of the command-level link routine, the ENTPT and TRUENM names must be unique, as there is a one-for-one relationship between a command-level link routine, its associated task-related user exit (TRUE), and the enabling program LNKENAB run at CICS startup.

Step 2: Modify the JCL Members

Use your editor to modify the JCL members necessary for your installation, and set the library names according to your installation’s specifications. The Adabas job library contains the following JCL members:

JCL Member Installation Type Required/Optional Description
CICCASM standard and enhanced required Adabas command-level link routine modules.
CICTASM enhanced required Adabas task-related user exit
  enhanced required Adabas PLT-enabled program
  enhanced optional Adabas global work area (GWA) display program.

Make mass changes to the JCL members in the following order:

Order change ... to ...
1 ADABAS.V7nn.COML Adabas CICS ... source library.
2 ADABAS.V7nn Adabas V7 prefix.
3 MAC5=’CICS’ CICS system prefix.
4 CLIB=’CICS’ CICS system prefix for CICS LOAD.
5 RPLLIB=’ADABAS’ COMLEV CICS RPL lib.

Step 3: Install the Adabas Command-Level Link Component (SMA Job Number I070)

Start of instruction setto install the Adabas command-level link component:

  1. For CICCASM, concatenate the Adabas CICS 7.4 source library on the assembler SYSLIB statement in front of the Adabas source library for the version of Adabas you are running.

  2. Execute CICCASM.

    This job preprocesses, assembles, and links the Adabas CICS command-level link routine modules LNKOLSC and LNKOLM into a staging load library.

    The final step of the CICCASM job links the LNKOLSC and LNKOLM modules together with CICS entry and exit code to form the Adabas command-level link routine, which is placed in a CICS RPL library.

  3. Use DFHCSDUP or the CEDA RDO entry panels to add the following definition to your CICS CSD file:

    DEFINE PROGRAM(ADABAS) GROUP(ADABAS)
    DESCRIPTION(ADABAS V74s COMMAND LEVEL LINK ROUTINE)
    LANGUAGE(ASSEMBLER) RELOAD(NO) RESIDENT(YES) USAGE(NORMAL)
    USELPACOPY(NO) STATUS(ENABLED) CEDF(YES) DATALOCATION(ANY)
    EXECKEY(CICS) EXECUTIONSET(FULLAPI)

    —where s is the system maintenance level of Adabas.

    The Adabas command-level link routine is now installed. This completes the standard installation. To install the enhanced functions, continue with step 4.

Step 4: Install the Adabas Task-Related User Exit (SMA Job Number I070)

The Adabas CICS components reside in the Adabas CICS source library (ACI74s.SRCE).

Start of instruction setto install the Adabas Task-Related User Exit:

  1. Execute CICTASM.

    This module preprocesses, assembles, and links the Adabas task-related user exit into a staging load library, and then links it with CICS entry and exit code into a CICS RPL library.

    Unless you are following the installation procedure required for running with the Adabas Transaction Manager, expect the unresolved external references TCISYNC and TCIRESYN.

  2. Use DFHCSDUP or the CEDA RDO entry panels to add the following definition to your CICS CSD file:

    DEFINE PROGRAM(ADATRUE) GROUP(ADABAS)
    DESCRIPTION(ADABAS V74s TASK RELATED USER EXIT)
    LANGUAGE(ASSEMBLER) RELOAD(NO) RESIDENT(YES) USAGE(NORMAL)
    USELPACOPY(NO) STATUS(ENABLED) CEDF(YES) DATALOCATION(ANY)
    EXECKEY(CICS) EXECUTIONSET(FULLAPI)

    —where s is the system maintenance level of Adabas.

Step 5: Install the Adabas PLT-Enable Program (SMA Job Number I070)

The Adabas CICS components reside in the Adabas base source library ADA74s.SRCE.

Start of instruction setto install the Adabas PLT-enable program:

  1. Execute CICEASM.

    This job preprocesses, assembles, and links this module into a staging library, and then links it with CICS entry and exit code into a CICS RPL library.

  2. Use DFHCSDUP or the CEDA RDO entry panels to add the following definition to your CICS CSD file:

    DEFINE PROGRAM(ADAENAB) GROUP(ADABAS)
    DESCRIPTION(ADABAS V74s PLTPI ENABLE ADATRUE PROGRAM)
    LANGUAGE(ASSEMBLER) RELOAD(NO) RESIDENT(NO) USAGE(NORMAL)
    USELPACOPY(NO) STATUS(ENABLED) CEDF(YES) DATALOCATION(ANY)
    EXECKEY(CICS) EXECUTIONSET(FULLAPI)

    —where s is the system maintenance level of Adabas.

  3. After defining LNKENAB to CICS, add the following entry to your PLTPI table, DFHPLT:

    DFHPLT TYPE=ENTRY,PROGRAM=ADAENAB

    This entry should follow the first DFHPLT TYPE=DELIM statement to ensure that LNKENAB will be executed in either stage II or stage III of the CICS PLTPI process. This is necessary because the CICS EXEC interface environment must be present to support the writing of console messages using the EXEC CICS WRITE OPERATOR command employed by the LNKENAB module.

  4. Code an appropriate PLTPI=xx parameter in the CICS start-up data. xx should match the suffix value given in the DFHPLT table.

Step 6: Install the DISPGWA Program (Optional)

Start of instruction setto install the DISPGWA program:

  1. Execute CICDASM.

    This job preprocesses, assembles, and links this module into a staging library, then links it with CICS entry and exit code into a CICS RPL library. The final link step creates the load module ADATEST.

  2. Add a CICS transaction to execute the ADATEST program. RDO may be used to do this. Sample DEFINE statements for the ADATEST (DISPGWA) program and the transaction to execute it are:

    DEFINE PROGRAM(ADATEST) GROUP(ADABAS)
    DESCRIPTION(ADABAS V74s DISPLAY GWA PROGRAM - DISPGWA)
    LANGUAGE(ASSEMBLER) RELOAD(NO) RESIDENT(NO) USAGE(NORMAL)
    USELPACOPY(NO) STATUS(ENABLED) CEDF(YES) DATALOCATION(ANY)
    EXECKEY(CICS) EXECUTIONSET(FULLAPI)
    
    DEFINE TRANSACTION(DGWA) GROUP(ADABAS)
    DESCRIPTION(TRANSACTION TO DISPLAY ADABAS GWA)
    PROGRAM(ADATEST) TWASIZE(128) PROFILE(DFHCICST) STATUS(ENABLED)
    TASKDATALOC(ANY) TASKDATAKEY(CICS) 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)

    —where s is the system maintenance level of Adabas.

    The Adabas command-level link routine, enhanced functions, and DISPGWA program are now installed.

Top of page

Installing the CICS High-Performance Stub Routine

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 macro-level link component.

The DCI enables a CICS/ESA 3.2 application or above 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/ESA 3.2 level or above derives the following advantages from the high-performance stub:

Restrictions and Requirements

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

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

Stub Components

Type Member Description
Source

ALCSIVP
COBSIVP
LNCSTUB

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:

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.

The values given for the ADAGSET parameters are primarily for documentation purposes within the LNCSTUB module, but may be used at a later time in the stub routine at the discretion of Software AG.

Change the LNCNAME Field Value

If your Adabas CICS command-level link component program has been linked with a name other than ADABAS, change the constant value in the field LNCNAME to match the name used (see the ADAGSET option ENTPT). The value in this field is used in the priming EXEC CICS LINK command issued by LNCSTUB.

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.
&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 possible use of the 31-bit instructions, Assembler H (IEV90) or 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 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.

Step 2 has the following substeps:

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 modify source member ALCSIVP:

  1. Edit the database ID and file number fields DBID (line 321) and DBFNR (line 322) to be sure they match the values needed to access the PERSONNEL file on the database you intend to use.

  2. Check the fields FBUFF, SBUFF and VBUFF for values consistent with your PERSONNEL file’s FDT and data content.

  3. Check the name used in the EXEC CICS LINK statement (line 242) to be sure it matches the name of your Adabas CICS command-level link component program.

Start of instruction setto modify the JCLALCI sample job stream:

  1. Member JCLALCI is used to preprocess, assemble, and link the installation verification program ALCSIVP. Place the load module in your CICS RPLLIB.

  2. To modify this JCL to meet your site requirements, change the JOB card in the member and the symbolic values as indicated in the table used in step 1 (see Step 1, Modify Member JCLLNCS).

    The JCLALCI member uses one additional symbolic parameter: &CICSLIB. This is the name of your CICS RPL library.

Start of instruction setto preprocess, assemble, and link ALCSIVP:

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

Start of instruction setto add RDO entries:

  1. 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 V74s 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)

Start of instruction setto execute ALCSIVP:

  1. 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 modify source member COBSIVP:

  1. Edit the fields WORK-DBID and WORK-FNR to place the desired database ID and file number in the VALUE clauses to access the PERSONNEL file on your site’s database.

  2. Ensure that the value in the field LINK-NAME matches the name used in your Adabas CICS command-level link component program.

  3. Ensure that the values (literals in the PROCEDURE DIVISION) in the following fields are consistent with the requirements of the PERSONNEL file FDT and data content you are using:

    ADABAS-FORMAT-BUFFER,
    ADABAS-SEARCH-BUFFER, and
    ADABAS-VALUE-BUFFER

Start of instruction setto modify the JCLCOBI sample job stream:

  1. Member JCLCOBI is used to preprocess, compile, and link the COBSIVP installation verification program. To modify the JCLCOBI example to meet site requirements, change the JOB card in the member and provide values for the symbolic procedure variables as described in the following table:

    Value Description
    &ADALIB Adabas load library used to provide the ADASTWA load module for the linkage editor.
    &MEM Member name to be processed; in this case, COBSIVP.
    &CICSLIB CICS RPL library where the COBSIVP load module is placed for execution under CICS.
    &COBLIB COBOL compiler STEPLIB.
    &INDEX High-level qualifier for the CICS macro library used in the SYSLIB DD statement for the compiler.
    &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.
    &LINKLIB COBOL LINKLIB.
    &STBSRCE Source library containing the distributed Adabas CICS high-performance stub LNCSTUB.
    &STUBLIB A load library to contain the LNCSTUB load module. This library should be available to your application programs when they are linked.
    &SYSMSG Output class for translator messages.
    &SYSOUT Output class for SYSOUT and SYSPRINT messages.
    &WORK DASD device type to use for temporary and utility data sets.

Start of instruction setto preprocess, compile, and link COBSIVP:

  1. Use the modified JCLCOBI job to preprocess, compile, and link the COBSIVP program. Assemble ADASTWA into a library available to COBOL programs when they are linked. Include the ADASTWA load module in the link of COBSIVP.

    COBSIVP uses the ADASTWA subroutine when it issues Adabas calls through the standard CICS LINK/RETURN mechanism. ADASTWA is supplied in source form in the Adabas source library.

    The LNCSTUB subroutine does not use ADASTWA because it places the passed Adabas parameters in the TWA. Thus, the ADASTWA routine is not required when linking COBOL applications that utilize the Adabas DCI through the LNCSTUB module.

    Even though the LNCSTUB routine does not require the ADASTWA subroutine, it is included in the COBSIVP program to illustrate the usual way in which a COBOL application places the Adabas call parameters into the CICS TWA.

  2. Link the COBSIVP program with the LNCSTUB load module and the ADASTWA load module. Make the LNCSTUB load module available to the linkage editor to be included with the COBSIVP load module.

    Note:
    The CICS stub modules are also resolved in the link step.

Start of instruction setto add RDO entries:

  1. 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 V74s 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)

Start of instruction setto execute COBSIVP:

  1. 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 “ADABAS” must have the same starting location as the LNCSTUB module in the link map.

Start of instruction setfor linking COBOL language programs:

  1. For an 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 “ADABAS” 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/ESA 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 (in the case of migration aids) 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.

Top of page

Installing Adabas with Com-plete

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.

The link routine for Com-plete initialization (module/phase ADALCO) is provided in the Adabas distribution library for the z/OS environments. ADALCO is loaded during Com-plete initialization to service Adabas calls. The Adabas library containing ADALCO should be placed in either the z/OS COMPINIT library concatenation or in the VSE/ESA LIBDEF search chain (SMA job number I070).

The Adabas Version 7.4 ADALCO is UES-enabled as distributed. See the section Connecting UES-Enabled Databases for more information.

Top of page

Installing Adabas with IMS

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

IMS Link Routines

The Adabas link routines for IMS are:

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

The Adabas Version 7.4 ADALNI and ADALNK are UES-enabled as distributed. See the section Connecting UES-Enabled Databases for more information.

This section describes using ADALNI only. For information on using ADALNK, read 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 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 user ID, signon must be active in your IMS installation and the user has performed an IMS /SIGN command to log on to an IMS terminal.

Generating a Reentrant Version

It is not recommended that a reentrant ADALNI version be generated. Please contact Software AG support if you plan to do this.

Note:
The reentrant version of ADALNI must not be used with Software AG's Natural

Installation Procedure

The following steps are required to install the Adabas IMS link routine ADALNI (SMA job number I055):

Step 1: Edit the ADALNI Source Member

The ADALNI source module must be edited before it can be assembled to provide the following information:

After modifying the assembler variables and the equate values, save your changes.

&ADAESI

A global Boolean assembly language variable, &ADAESI, is provided. Use an editor to find the SETB assembler directives in the ADALNI module and modify it to set &ADAESI as required.

If you plan to use Adabas SAF Security (ADASAF) under IMS, you must

The variable &ADAESI must be turned on (set to a "1") if ADASAF is linked with the Adabas SVC that the ADALNI module will invoke during execution.

&IMSLVL

When assembling the Adabas IMS link routine that is distributed with the Adabas source library, find the assembler local variable &IMSLVL and modify the character value in the assembler SETC directive to match the level of your IMS system: V8 or V9.

Modify Assembler Language Equates

Locate and modify the following assembly language EQU statement parameter values:

Parameter Description Syntax
LNUINFO

Length of the user information area passed to the Adabas user exit B (UEXITB) and user exit A (UEXITA).

Values from 0 to 32767 may be coded. The default value is 0.

LNUINFO={user-area | 0 }
Parameter Description Syntax
LRVINFO

Length of the Adabas Review work area provided to the Adabas Review exit (REVEXITB).

The default value is 0, indicating that no Adabas Review support is required.

See the Adabas Review documentation for a recommended LRVINFO value.

LRVINFO={work-size | 0 }
Parameter Description Syntax
LOGID

The default database ID. Values from 1 to 65535 may be provided. The default value is 1, which will be used if no value is provided in

  • the Adabas control block on each call, or

  • the ADARUN DDCARD input data.

LOGID={dbid | 1 }
Parameter Description Syntax
SVCNR

The Adabas SVC number. A value from 200 to 255 may be provided. The default value is 249.

The value must match the number of the Adabas SVC installed in your z/OS image.

SVCNR={svc-number | 249 }

Step 2: Assemble the Edited ADALNI Module

Use the IBM high-level Assembler to assemble the ADALNI routine.

The order of data set concatenation on the assembly JCL SYSLIB DD statement is critically important:

  Data Set Description
1 AIIvrs.SRCE Adabas for IMS source library
2 ADAvrs.SRCE Standard or base Adabas source library
4 SYS1.MACLIB  
5 SYS1.AMODGEN or SYS1.MODGEN in z/OS systems.

Step 3: Link ADALNI for IMS

Link the ADALNI module into a library that is available in your runtime concatenation.

Specifying AMODE and RMODE

Software AG also recommends that you link the Adabas IMS link routine with AMODE of 31 and a RMODE of ANY under IMS.

The addressing mode and run mode of the Adabas link routine for IMS must be chosen to match the mode of the application programs that invoke the link routine. Since the ADALNI module will not validate the parameter addresses passed to it, it is the responsibility of the user to ensure the proper addressing (AMODE) mode.

Note:
All IMS programs that are to access Adabas should be relinked to include the Version 7.4 ADALNI module if IMS Version 3.1 or above is used at your site.

Top of page

Installing Adabas with Shadow

Shadow can be used in OS/390 or z/OS and in VSE/ESA environments. The Adabas link routine specific to Shadow, ADALNS, is provided in source form along with the job SHADASM to assemble it. SHADASM must be customized to select the Shadow macro (source) library containing the macros SAVED, $WAIT, RELOCD, RETURND, TCBD.

Selecting Options for ADALNS

Customizing the source member ADALNS means selecting the following options:

Option Default Specify . . .
SVCNR 0 Adabas SVC number
LOGID 1 Default logical database ID (range 1-255).
NUBS 50 Number of UBs (user blocks) to be created by ADALNS. This must be high enough to handle the maximum possible number of concurrent Adabas requests.
PLINTWA Y (yes) N if the Adabas parameter list is passed in register 1 instead of at offset 0 in the Shadow TWA.
LNUINFO 0 Length for the user data to be passed from the ADALNS link routine to the Adabas user exit 4.

Shadow Table Entry for ADALNS

The user must specify the following entry in the Shadow PCT table:

PCT PROG=ADABAS,DISP=INITL,LANG=BAL,SAVE=YES,PURGE=YES

It is important that Adabas be made resident. Under Shadow, the ADABAS parameter is normally passed in the first 24 bytes of the TWA.

The user exit called from ADALNS gains control before the Adabas call (UEXITB), and can be used to modify the eight-byte UBUID field. This allows users who process the command log to have a unique terminal, since the command log presently contains only a four-byte field. This field does not contain a unique ID. The user exit could then be used to make the first four bytes unique. The user exit must create a unique user exit for each user. For Shadow, the UBUID field normally contains the constant “SHAD” in the high-order four bytes, followed by the value from ITRMTYPE.

Top of page

Installing Adabas with Batch / TSO

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

The Adabas Version 7.4 ADALNK is UES-enabled as distributed. See the section Connecting UES-Enabled Databases 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

ADALNKR : Reentrant Batch Link Routine

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

Notes:

  1. For Adabas 7.2.2 and above, the ADALNKR source module should be assembled separately to obtain the reentrant version of the batch/TSO link routine.
  2. The ADALNKR routine differs somewhat from the nonreentrant ADALNK routine provided in the Adabas source library. It is no longer sufficient to set the &RENT Boolean variable to 1 in the ADALNK module to obtain a reentrant version which is compatible with Adabas 7.2.2 and above.
  3. Software AG still recommends that batch application programs be linked with the ADAUSER module, not ADALNK or ADALNKR. The ADAUSER load module is not reentrant, but the ADALNKR module may be linked with it as long as the application program conforms to the calling requirements described below.

Top of page