IMS Essentials |
DL/I Subsystems |
When the SAS/ACCESS interface to IMS accesses DL/I databases, it executes within a DL/I subsystem. DL/I subsystems are either batch or online:
Usually, an online DL/I subsystem is used by multiple terminals or programs at the same time, and databases are shared by the users. The terminal users (for example, bank tellers or airline reservation agents) execute preprogrammed applications to access DL/I databases. These users might be executing the same SAS program or different SAS programs.
In a batch DL/I subsystem, only one program executes at a time, and it has exclusive use of the databases. Batch subsystems are typically used when one or more functions must be executed repetitively (for example, printing customers' monthly bank statements), and the database is not required for concurrent access by another subsystem.
Batch and online DL/I subsystems can execute concurrently. For example, a bank might run an online subsystem to which all the bank teller terminals are connected. As customers make deposits and withdrawals during the day, the tellers use checking and savings application functions to record these transactions and update a database such as the ACCTDBD database. Simultaneously, a batch DL/I subsystem might execute a SAS program to print a report of all loans with overdue payments from a loan database.
It is important to know how the SAS system options for the SAS/ACCESS interface to IMS are set at your site. These SAS system options determine the execution mode of the SAS/ACCESS interface, which must be consistent with your IMS system configuration.
Outline of a Batch DL/I Subsystem |
In a batch DL/I subsystem, a batch region is a processing environment for running batch mode jobs using a local batch control program. The batch region is initialized by a region controller, which is the primary entry point for all DL/I executions. The region controller initializes the batch region according to JCL (job control language) specifications made when the user's SAS program is submitted.
When the program runs in the batch region, the SAS/ACCESS interface to IMS communicates with DL/I to access DL/I databases and to issue calls against databases. DL/I also handles the DL/I log, which contains information that is needed to recover changes to the database if the program terminates abnormally.
The batch region in which the SAS/ACCESS interface executes is either a DLI region or DBB region. The use of these regions depends on the operating system. Under z/OS, a DBB region uses the Application Control Block library (ACBLIB) to get the DBDs and PSBs. A DLI region uses the Database Description library (DBDLIB) and Program Specification Block library (PSBLIB) to get the DBDs and PSBs. The following figure shows the typical batch DL/I subsystem.
The following steps are performed when a SAS program is executed in the batch DL/I subsystem:
The operating system passes control to SAS. When the SAS/ACCESS interface initializes, it attaches a subtask to execute the DL/I region controller. Parameters that are passed to the region controller specify the type of batch region to execute (DLI or DBB), the name of the program (IMSEXEC under z/OS), PSB to use, and other execution options.
The region controller establishes the DL/I region environment and passes control to the SAS/ACCESS interface.
The SAS/ACCESS interface receives pointers to the PCBs in the PSB. It uses these PCBs in DL/I calls.
The SAS/ACCESS interface formats a DL/I call and passes control to DL/I to access DL/I databases.
DL/I accesses the database data sets, performs the requested call function, and logs any information required for recovery in the DL/I log.
A return code and other information for the PCB mask are placed in the PCB, and control returns to the SAS/ACCESS interface.
Steps 4 through 6 are repeated until the SAS procedure or SAS DATA step is completed. The region controller subtask is detached and SAS continues to process the other SAS PROC or DATA steps.
Outline of an Online DL/I Subsystem |
In an online DL/I subsystem, an online control region is initialized and uses JCL specifications to set up the environment in which user programs execute. Under z/OS, types of online control regions include IMS/ESA DB/DC regions or CICS regions.
An online control region also allocates and controls access to DL/I database data sets for multiple-user programs, ensuring the integrity of the databases being used by many programs. Normally, the online control region obtains exclusive control of the database data sets so that other DL/I subsystems do not update the database data sets concurrently. This preserves database integrity within the overall system.
When the online control region allocates a database, it is referred to as an online database. The ACCTDBD database is an online database when it is allocated to an online subsystem. When the online control region is terminated, any associated databases can be used in a batch processing region. Databases can be freed to access by a batch program concurrent with online control region execution. Alternatively, batch and online processing can concurrently share access to databases by using IMS/ESA data sharing support.
The SAS/ACCESS interface to IMS interacts with an online control region through a DL/I online access region. The online access region is used when a batch program requires access to a database allocated by the online control region, that is, to an online database. There are two types of online access regions under z/OS:
a BMP region is used to access an IMS/ESA DB/DC online control region
a BMP region is used to access a CICS region (the DBCTL facility of IMS/ESA provides this functionality).
For example, the ACCTDBD database must be updated periodically with another database, which contains information about transactions using automated teller machines (ATMs). There is a batch program to read this transactions database and update the ACCTDBD database. However, because the ACCTDBD and transaction database data sets are allocated exclusively to the online subsystem for the tellers, a batch subsystem cannot allocate the data sets. This kind of conflict is resolved by an online access region, in which a batch program executes but issues the DL/I calls under the control of the online control region. This method preserves the integrity of the online databases.
The typical online access region and online control region interaction is depicted in the following figure.
Summary of Region Types |
The following table summarizes the region types that are used in the various DL/I subsystems discussed in this section.
IBM Product | Type of Subsystem | Database Controlled by | Batch Region | Online Access Region |
---|---|---|---|---|
IMS/ESA DB | batch | region controller | DLI or DBB |
|
IMS/ESA DB/DC | online | control region |
|
BMP |
CICS | online | control region |
|
BMP |
Copyright © 2007 by SAS Institute Inc., Cary, NC, USA. All rights reserved.