BPE exit list PROCLIB member

Use the PROCLIB members that are specified by the EXITMBR= parameter in the BPE configuration parameter PROCLIB member to define user exit routines to BPE.

BPE Exit List PROCLIB members are IMS-component specific. You specify one EXITMBR statement for each IMS component that provides user exit routines through BPE services.

Each EXITMBR statement specifies the name of a PROCLIB member that contains the definitions for exit routines for that IMS component.

You can have a separate exit list PROCLIB member for each IMS component, or you can share one exit list PROCLIB member among several IMS components.

A BPE exit list PROCLIB member associates a user exit routine type with a list of one or more user exit routines. Use the EXITDEF statement to define the exit routine modules to be called for a particular exit routine type.

The BPE exit list PROCLIB member is processed by BPE during address space initialization. The BPE exit list PROCLIB member is also processed when you enter a REFRESH USEREXIT command.

Recommendation: Avoid coding statements in the BPE exit routine list member that specify definitions for the same exit routine type multiple times. BPE always uses the last statement that it encounters in the member for a particular exit routine. Any earlier statements for the same exit routine are ignored. Message BPE0017I is issued for each duplicate statement found.

If you code the same user exit routine name more than once in the exit routine list (EXIT=) of any single EXITDEF= statement, BPE always uses the first occurrence of the exit routine module name to determine the order for calling the exit routines. Duplicate names are ignored, and a message, BPE0018I is issued for each duplicate name.

EXITDEF parameter

The EXITDEF statement associates an exit routine type with a list of one or more exit routine modules to be called.

The syntax of the BPE EXITMBR= EXITDEF parameter is as follows:

Read syntax diagramSkip visual syntax diagram EXITDEF = (TYPE= type,EXITS=(,exitname) ,ABLIM= limit ,COMP= ims_component )

The modules are called in the order listed. The EXITDEF statement consists of a sublist (enclosed in parentheses) containing the keywords TYPE, EXITS, ABLIM, and COMP.

TYPE=type
Specifies the type of exit routine. The IMS component defines the types of exit routines that are supported.
EXITS=(exitname,...)
Specifies a list of one or more exit routine module names. The position of the exit routine in the list determines the order in which the exit routine is driven. When an exit routine returns to its caller, the exit routine indicates whether additional exit routines are to be called.
ABLIM=limit
A number from 0 to 2147483647 that specifies the abend limit for the type of exit routine being defined. If the number of abends for an exit routine module reaches the abend limit for the exit routine type, the module is removed from the exit routine list and is not called until the exit routine type is refreshed.

This parameter is optional; the default is 1. If you specify a value of 0, there is no limit to the number of abends that can occur for the type of exit routine that you are defining.

COMP =ims_component
An optional parameter that specifies the type of IMS component that owns the exit routine being defined. Possible values are:
BPE
Base Primitive Environment
BPE processes only EXITDEF statements that:
  • Do not have COMP coded
  • Have COMP=ims_component coded, where ims_component matches the IMS component specified on the EXITMBR statement that points to the BPE user exit PROCLIB member that is currently being processed.

    For example, if BPE were processing the BPEEXIT0 PROCLIB member specified on the EXITMBR=(BPEEXIT0,BPE) statement, it would only process EXITDEF statements that had no COMP= specified, and those that had COMP=BPE specified.

    If BPE were processing the CQSEXIT0 PROCLIB member specified on the EXITMBR=(CQSEXIT0,CQS) statement, it would only process EXITDEF statements that had no COMP= specified, and those that had COMP=CQS specified.

    For any given IMS component address space, BPE only processes BPE user exit PROCLIB members for EXITMBR statements that specify BPE, and those that specify the IMS component name of the address space that is running (for example, CQS, DBRC, HWS, ODBM, OM, RM, or SCI).

The EXITDEF types provided by the various IMS components are described in the following topic.

BPE EXITDEF types

Two types of BPE EXITDEF types are supported.

INITTERM
Called once during early BPE initialization, and once during normal termination.
STATS
Called periodically (timer-driven) and once during normal address space shutdown with statistics about BPE system functions. Optionally, the IMS component running on top of BPE can provide statistics that are specific to its operation.
Important: All BPE-owned user exit routines are available to all IMS address spaces which are running with BPE.

Sample BPE user exit list PROCLIB member

The BPE user exit list PROCLIB member defines the BPE initialization/termination and statistics exit routines.

A sample BPE user exit list PROCLIB member is shown in the following example. The sample defines the following exit routines:

  • One BPE initialization/termination exit routine
  • One BPE statistics exit routine
Figure 1. Example of a BPE user exit routine list PROCLIB member
******************************************************************** 
* BPE USER EXIT LIST PROCLIB MEMBER                                * 
******************************************************************** 
#------------------------------------------------------------------# 
# Define one BPE init/term exit: MYINIT00.                         # 
#------------------------------------------------------------------# 
EXITDEF(TYPE=INITTERM,EXITS=(MYINIT00)) 
#------------------------------------------------------------------# 
# Define 1 BPE Statistics exit: HHGSTAT0 with an abend limit of 42 # 
#------------------------------------------------------------------# 
EXITDEF(TYPE=STATS,EXITS=(HHGSTAT0),ABLIM=42)