BPE exit list members of the IMS PROCLIB data set
Use the members of the IMS PROCLIB data set specified by the EXITMBR= parameter in the BPE configuration parameter member of the IMS PROCLIB data set to define user exit routines to BPE.
BPE exit list members of the IMS PROCLIB data set are IMS-component specific. In the BPE configuration parameter member of the IMS PROCLIB data set, specify one EXITMBR statement for each IMS component that provides user exit routines through BPE services. Each EXITMBR statement specifies the name of an IMS PROCLIB data set member that contains the definitions for exit routines for that IMS component. You can have a separate exit list member for each IMS component, or you can share one exit list member among several IMS components.
A BPE exit list 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 member is processed by BPE during
address space initialization. It is also processed when you enter
a REFRESH USEREXIT
command (see IMS Version 15.4 Commands, Volume 2: IMS Commands N-V for
more information about BPE USEREXIT commands).
Environments
The BPE exit list member of the IMS PROCLIB data set can be used whenever you are using an IMS address space that uses BPE, such as CQS, DBRC, ODBM, OM, RM, SCI, and IMS Connect.
BPE EXITMBR= EXITDEF syntax
You can use the IMS Syntax Checker to modify this member of the IMS PROCLIB data set.
Usage
The EXITDEF statement associates an exit routine type with a list of one or more exit routine modules to be called. 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.
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.
BPE EXITMBR= EXITDEF parameters
- TYPE=type
- Specifies the type of exit routine. The IMS component defined on COMP= determines the
types of exit routines that are supported. Refer to IMS Version 15.4 Exit Routines for
more information about these types of exit routines.
BPE exit routine types
All BPE-owned user exit routines are available to all IMS address spaces running with BPE.
- INITTERM
- An exit routine that is called once during early BPE initialization, and once during normal termination.
- STATS
- An exit routine that is called periodically (it is timer-driven), and is called once during normal address space shut down, with statistics about BPE system functions. Optionally, the IMS component that is running on BPE can provide statistics specific to its operation.
CQS exit routine types
- CLNTCONN
- An exit routine that is called during client connect and disconnect processing.
- INITTERM
- An exit routine that is called during various phases of initialization and termination.
- OVERFLOW
- An exit routine that is called during overflow threshold processing to select queue names for overflow processing.
- STRSTAT
- An exit routine that is called during checkpoint processing to allow you to gather structure statistics.
- STREVENT
- An exit routine that is called for various structure events. For certain structure events, it also allows you to gather structure statistics like the STRSTAT exit routine.
DBRC exit routine types
- RECONIO
- An exit routine that is called to allow for auditing of DBRC RECON data set I/O. If this exit routine is specified, the standard RECON I/O exit routine, DSPCEXT0, is not called.
- REQUEST
- An exit routine that is called at start and end of DBRC request processing.
- SECURITY
- An exit routine that is called to allow user security checking before command execution. If this exit routine is specified, the standard DBRC command authorization exit routine, DSPDCAX0, is called.
IMS Connect exit routine types
- ODBMAUTH
- IMS Connect DB security user exit, which enables users to access IMS database resources via ODBA from outside an IMS dependent region.
- ODBMROUT
- IMS Connect Routing exit for ODBM, which enables users to override the IMS alias or to select an ODBM.
- PORnnnnn
- IMS Connect Port Message Edit exit. nnnnn in the exit type name is the port number in decimal—for example, POR01234. The Port Message Edit exit is a BPE type-2 exit.
- XMLADAP
- An exit routine that is called to perform XML-to-COBOL data conversion in IMS Connect.
ODBM exit routine types
- CLNTCONN
- An exit routine that is called during client command registration and deregistration processing.
- INITTERM
- An exit routine that is called during various phases of initialization and termination.
- INPUT
- An exit routine that is called to view DL/I calls that are issued to IMS databases. This exit routine can either modify the command before execution or reject the command before it is processed.
- OUTPUT
- An exit routine that is called to view output (for example, ODBA call output) from ODBM to an ODBM client. The exit routine can modify the output before it is returned to the originator of the command.
OM exit routine types
- CLNTCONN
- An exit routine that is called during client command registration and deregistration processing.
- INITTERM
- An exit routine that is called during various phases of initialization and termination.
- INPUT
- An exit routine that is called to view command input to the Operations Manager. This exit routine can either modify the command before execution or reject the command before it is processed.
- OUTPUT
- An exit routine that is called to view output (for example, command response) from Operations Manager to an automation client. The exit routine can modify the output before it is returned to the originator of the command.
- SECURITY
- An exit routine that is called to allow user security checking before command execution.
RM exit routine types
- CLNTCONN
- An exit routine that is called during client connect and disconnect processing.
- INITTERM
- An exit routine that is called during various phases of initialization and termination.
SCI exit routine types
- CLNTCONN
- An exit routine that is called during client connect and disconnect processing.
- INITTERM
- An exit routine that is called during various phases of initialization and termination.
- 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. The default order is first to last (the first exit listed on the EXITS= parameter is the first exit to be called). However, for some exit types, the order is reversed (the last exit listed is the first to be called). Exit types that use a reverse call order explicitly state this in their documentation. Refer to IMS Version 15.4 Exit Routines for the specific exit type you are writing to determine the exit call order.
- ABLIM=limit
- A number from 0 to 2 147 483 647 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 abend limit.
- COMP=ims_component
- An optional parameter that specifies the type of the IMS component that owns the exit routine being
defined. Possible values are:
- BPE
- Base Primitive Environment
- CQS
- Common Queue Server
- DBRC
- Database Recovery Control
- HWS
- IMS Connect
- ODBM
- Open Database Manager
- OM
- Operations Manager
- RM
- Resource Manager
- SCI
- Structured Call Interface
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
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).
Examples
Several sample user exit list members of the IMS PROCLIB data set are provided.
Sample BPE user exit list member of the IMS PROCLIB data set
- One BPE init/term exit routine
- One BPE Statistics exit routine
********************************************************************
* 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)
#-----------------------------------------------------------------#
# Define 1 statistics exit for DBRC statistics : STATS01 #
#-----------------------------------------------------------------#
EXITDEF(TYPE=STATS,EXITS=(STATS01),COMP=BPE)
Sample CQS user exit list member of the IMS PROCLIB data set
- One client connection exit routine
- Two INITTERM user exit routines
- Four overflow exit routines
- One structure statistic exit routine
- One CQS structure event user exit routine
********************************************************************
* CQS USER EXIT LIST PROCLIB MEMBER *
********************************************************************
#-----------------------------------------------------------------#
# DEFINE 1 CLIENT CONNECTION EXIT: CLCONX00 #
#---------------------------------------------------------------- #
EXITDEF(TYPE=CLNTCONN,EXITS=(CLCONX00))
#-----------------------------------------------------------------#
# DEFINE 2 INITTERM USER EXITS: MYCQSIT0 AND OEMCQIT0 #
# WITH AN ABEND LIMIT OF 8.
#-----------------------------------------------------------------#
EXITDEF(TYPE=INITTERM,EXITS=(MYCQSIT0,OEMCQIT0),ABLIM=8)
#-----------------------------------------------------------------#
# DEFINE 4 OVERFLOW EXITS: OVERFL01, OVERFL02, OVERFL03, OVERFL04 #
#-----------------------------------------------------------------#
EXITDEF(TYPE=OVERFLOW,EXITS=(OVERFL01,
OVERFL02,
OVERFL03,
OVERFL04))
#-----------------------------------------------------------------#
# DEFINE 1 STRUCTURE STATISTIC EXIT: STRSTAT0 #
#-----------------------------------------------------------------#
EXITDEF(TYPE=STRSTAT,EXITS=(STRSTAT0))
#-----------------------------------------------------------------#
# DEFINE 1 CQS STRUCTURE EVENT USER EXIT (STREVNT0) WITH #
# NO ABEND LIMIT #
#-----------------------------------------------------------------#
EXITDEF(TYPE=STREVENT,EXITS=(STREVNT0),ABLIM=0)
Sample DBRC user exit list member of the IMS PROCLIB data set
- One RECON I/O exit routine
- An abend limit of 8.
- Three DBRC security exit routines
/*****************************************************************/
/* DBRC USER EXIT LIST PROCLIB MEMBER */
/*****************************************************************/
#-----------------------------------------------------------------#
# Define 1 DBRC RECON I/O exit: RECONIO1 #
#-----------------------------------------------------------------#
EXITDEF(TYPE=RECONIO,EXITS=(RECONIO1),ABLIM=8,COMP=DBRC)
#-----------------------------------------------------------------#
# Define 3 DBRC security exits: SECUIRE01, SECURE02, and SECURE03 #
#-----------------------------------------------------------------#
EXITDEF(TYPE=SECURITY,EXITS=(SECURE03,SECURE01,SECURE02),COMP=DBRC)
Sample ODBM user exit list member of the IMS PROCLIB data set
- One ODBM initialization/termination exit routine
- An abend limit of 8.
- One ODBM output exit routine
********************************************************************
* ODBM USER EXIT LIST PROCLIB MEMBER *
********************************************************************
#-----------------------------------------------------------------#
# DEFINE 1 ODBM INIT/TERM USER EXIT: ZDINTM00 #
#-----------------------------------------------------------------#
EXITDEF(TYPE=INITTERM,EXITS=(ZDINTM00),COMP=ODBM)
#-----------------------------------------------------------------#
# DEFINE 1 ODBM INPUT USER EXIT: ZINPUT00 #
# WITH AN ABEND LIMIT OF 8. #
#-----------------------------------------------------------------#
EXITDEF(TYPE=INPUT,EXITS=(ZINPUT00),ABLIM=8,COMP=ODBM)
#-----------------------------------------------------------------#
# DEFINE 1 ODBM OUTPUT USER EXIT: ZOUTPUT0 #
#-----------------------------------------------------------------#
EXITDEF(TYPE=OUTPUT,EXITS=(ZOUTPUT0),COMP=ODBM)
Sample IMS Connect user exit list member of the IMS PROCLIB data set
The sample IMS Connect user exit list member of the IMS PROCLIB data set shown below defines the XML adapter system routine.
********************************************************************
* HWS USER EXIT LIST PROCLIB MEMBER *
********************************************************************
#-----------------------------------------------------------------#
# Define XML Adapter system routine: HWSXMLA0 #
#-----------------------------------------------------------------#
EXITDEF(TYPE=XMLADAP,EXITS=(HWSXMLA0),ABLIM=8,COMP=HWS)
Sample OM user exit list member of the IMS PROCLIB data set
- One OM init/term exit routine
- Two OM client connection exit routines
- One OM command input exit routine
- One OM command output exit routine
- Three OM security exit routines
********************************************************************
* OM USER EXIT LIST PROCLIB MEMBER *
********************************************************************
#-----------------------------------------------------------------#
# Define one OM init/term exit: OMINITRM. #
#-----------------------------------------------------------------#
EXITDEF(TYPE=INITTERM,EXITS=(OMINITRM))
#-----------------------------------------------------------------#
# Define 2 OM client connection exits: OMCLCN00 and OEMCLI00 #
# with an abend limit of 2. #
#-----------------------------------------------------------------#
EXITDEF(TYPE=CLNTCONN,EXITS=(OMCLCN00,OEMCLI00),ABLIM=2)
#-----------------------------------------------------------------#
# Define one OM command input exit: MYCMI000 #
# with no abend limit. #
#-----------------------------------------------------------------#
EXITDEF(TYPE=INPUT,EXITS=(MYCMI000),ABLIM=0)
#-----------------------------------------------------------------#
# Define one OM command output exit: MYCMO000 #
# with no abend limit. #
#-----------------------------------------------------------------#
EXITDEF(TYPE=OUTPUT,EXITS=(MYCMO000),ABLIM=0)
#-----------------------------------------------------------------#
# Define 3 OM security exits: OMSEC000,OMSEC001, and ZZZSEC00 #
#-----------------------------------------------------------------#
EXITDEF(TYPE=SECURITY,EXITS=(OMSEC000,
OMSEC001,
ZZZSEC00))
Sample RM user exit list member of the IMS PROCLIB data set
- One RM init/term exit routine
- Two RM client connection exit routines
********************************************************************
* RM USER EXIT LIST PROCLIB MEMBER *
********************************************************************
#-----------------------------------------------------------------#
# Define one RM init/term exit: RMINITRM. #
#-----------------------------------------------------------------#
EXITDEF(TYPE=INITTERM,EXITS=(RMINITRM))
#-----------------------------------------------------------------#
# Define 2 RM client connection exits: RMCLCN00 and XYZCLCN0 #
# with an abend limit of 6. #
#-----------------------------------------------------------------#
EXITDEF(TYPE=CLNTCONN,EXITS=(RMCLCN00,XYZCLCN0),ABLIM=6)
Sample SCI user exit list member of the IMS PROCLIB data set
- One SCI init/term exit routine
- Three SCI client connection exit routines
********************************************************************
* SCI USER EXIT LIST PROCLIB MEMBER *
********************************************************************
#-----------------------------------------------------------------#
# Define one SCI init/term exit: SCINITRM. #
#-----------------------------------------------------------------#
EXITDEF(TYPE=INITTERM,EXITS=(SCINITRM))
#-----------------------------------------------------------------#
# Define 3 SCI client connection exits: SCCLCN00, SCCLCN10, #
# and SCCLCN20 with an abend limit of 9. #
#-----------------------------------------------------------------#
EXITDEF(TYPE=CLNTCONN,EXITS=(SCCLCN00,SCCLCN10,SCCLCN20),ABLIM=9)
Sample combined user exit list member of the IMS PROCLIB data set
- BPE exit routines
- CQS user exit routines
- DBRC user exit routines
- IMS Connect user exit routines
- OM user exit routines
- RM user exit routines
- SCI user exit routines
*********************************************************************
* BPE EXIT DEFINITIONS *
*********************************************************************
EXITDEF=(TYPE=INITTERM,EXITS=(MYINIT00),COMP=BPE)
EXITDEF=(TYPE=STATS,EXITS=(HHGSTAT0),ABLIM=42,COMP=BPE)
*********************************************************************
* CQS USER EXIT ROUTINE DEFINITIONS *
*********************************************************************
EXITDEF=(TYPE=CLNTCONN,EXITS=(CLCONX00),COMP=CQS)
EXITDEF=(TYPE=INITTERM,EXITS=(MYCQSIT0,OEMCQIT0),ABLIM=8,COMP=CQS)
EXITDEF=(TYPE=OVERFLOW,EXITS=(OVERFL01,
OVERFL02,
OVERFL03,
OVERFL04),COMP=CQS)
EXITDEF=(TYPE=STRSTAT,EXITS=(STRSTAT0),COMP=CQS)
EXITDEF=(TYPE=STREVENT,EXITS=(STREVENT),ABLIM=0,COMP=CQS)
/*****************************************************************/
/* DBRC USER EXIT LIST PROCLIB MEMBER */
/*****************************************************************/
#-----------------------------------------------------------------#
# DEFINE 1 RECON I/O EXIT: ZDBRCIO0 #
# WITH AN ABEND LIMIT OF 8. #
#-----------------------------------------------------------------#
EXITDEF(TYPE=RECONIO,EXITS=(ZDBRCIO0),ABLIM=8,COMP=DBRC)
#-----------------------------------------------------------------#
# DEFINE 1 DBRC SECURITY EXIT: ZDBRCSE0 #
#-----------------------------------------------------------------#
EXITDEF(TYPE=SECURITY,EXITS=(ZDBRCSE0),COMP=DBRC)
********************************************************************
* HWS USER EXIT LIST PROCLIB MEMBER *
********************************************************************
EXITDEF(TYPE=XMLADAP,EXITS=(HWSXMLA0),ABLIM=8,COMP=HWS)
*********************************************************************
* OM USER EXIT ROUTINE DEFINITIONS *
*********************************************************************
EXITDEF=(TYPE=INITTERM,EXITS=(OMINITRM),COMP=OM)
EXITDEF=(TYPE=CLNTCONN,EXITS=(OMCLCN00,OEMCLI00),ABLIM=2,COMP=OM)
EXITDEF=(TYPE=INPUT,EXITS=(MYCMI000),ABLIM=0,COMP=OM)
EXITDEF=(TYPE=OUTPUT,EXITS=(MYCMO000),ABLIM=0,COMP=OM)
EXITDEF=(TYPE=SECURITY,EXITS=(OMSEC000,
OMSEC001,
ZZZSEC00),COMP=OM)
*********************************************************************
* RM USER EXIT ROUTINE DEFINITIONS *
*********************************************************************
EXITDEF=(TYPE=INITTERM,EXITS=(RMINITRM),COMP=RM)
EXITDEF=(TYPE=CLNTCONN,EXITS=(RMCLCN00,XYZCLCN0),ABLIM=6,COMP=RM)
*********************************************************************
* SCI USER EXIT ROUTINE DEFINITIONS *
*********************************************************************
EXITDEF=(TYPE=INITTERM,EXITS=(SCINITRM),COMP=SCI)
EXITDEF=(TYPE=CLNTCONN,EXITS=(SCCLCN00,SCCLCN10,SCCLCN20),ABLIM=9,
COMP=SCI)
#
# User exit list PROCLIB member specifications
#
EXITMBR=(SHREXIT0,BPE) /* BPE user exit definitions */
EXITMBR=(SHREXIT0,CQS) /* CQS user exit definitions */
EXITMBR=(SHREXIT0,OM) /* OM user exit definitions */
EXITMBR=(SHREXIT0,RM) /* RM user exit definitions */
EXITMBR=(SHREXIT0,SCI) /* SCI user exit definitions */