Task 2.6: Configuring Additional and Alternate Code Debug IMS features
This section contains information on:
- The remaining three methods that can be used to provide Transaction Code Lockout relief. It is strongly recommended that you use the DFSMSCE0 method (documented in the Code Debug TSO and Code Debug IMS Installation and Configuration Guide) for Transaction Code Lockout relief.
- Configuring Code Debug IMS Shared Queue support.
- Complete information on the Code Debug IMS User ID Intercept Utility.
Task 2.6.1: Alternative Methods to Provide Transaction Code Lockout Relief
There are three alternative ways to provide transaction code lockout relief described in this task:
- IMS User ID Support (DFSCTRN0)
- IMS User ID/Data Trap Support (DFSMSCE0)
- Long Running Batch Message Processing (BMP) Region.
The following people are required:
- Code Debug TSO and Code Debug IMS Installer
- IMS DBA.
IMS User ID Support
Code Debug IMS provides the ability to trap transactions based on IMS user ID. This allows multiple users to debug the same transaction and provides transaction code lockout relief.
IMS User ID Support requires use of IMS exit DFSCTRN0.
This IMS User ID Support in Code Debug IMS will alter the transaction code from the original to a predefined dummy trancode reserved for Code Debug’s use. The IMS user ID to intercept is specified on the MPP test screen (2.8). In order for Code Debug to alter the transaction code, the Code Debug IMS User ID Intercept must be activated. Specify YES for the PARMLIB keyword CTLIMSUS.
IMS Requirements for DFSCTRN0
If your installation has a DFSCTRN0 exit, it must be renamed to XPIMSRN0. The XPIMSRN0 program will be invoked prior to the Code Debug DFSCTRN0 program. See to the IBM manual entitled IMS Exit Routines for instructions on how to install the DFSCTRN0 exit.
Code Debug DFSCTRN0 Exit
The Code Debug supplied IMS Transaction Authorization exit, DFSCTRN0, must be installed. This is done by customizing and running job JCLCTRN0 located in the SLXTINST library. The changes can be made manually, or if you have previously configured the XTUPDATE ISPF Edit macro, you can use it to customize this JCL member. To use the Code Debug version of the DFSCTRN0 exit, the linkedit JCL must be modified to include the SLXTLOAD library and the IMS RESLIB in the SYSLIB. The SYSLMOD library must be authorized and be either the IMS RESLIB or a library concatenated to the RESLIB in the IMS Control region JCL.
APPLCTN Macro
IMS must be able to schedule the application Program Specification Block (PSB) when additional transactions are received, even though the PSB is already scheduled in the user’s Code Debug IMS debugging session. The relevant IMS sysgen parameter is SCHDTYPE.
The APPLCTN macro for the application PSB must specify SCHDTYPE=PARALLEL. The IMS gen default is SCHDTYPE=SERIAL. This default does not allow IMS to schedule more than one instance of a particular PSB at a time. An IMS gen is required to change this parameter.
IMS Cold Start
IMS must be cold started and parameters TRN=Y and RCF=Y must be specified.
CA-Top Secret Considerations
For CA-Top Secret users, solution #391 may need to be applied to invoke DFSCTRN0.
IMS User ID/Data Trap Support
Code Debug IMS provides the ability to trap transactions based on IMS user ID and/or data that is passed to the transaction when it is initiated. This method allows for a “generic” (all user IDs) match if the UserID field is a single character asterisk (*). The Data field can be used to restrict selection of transactions to those that contain the specified data in the transaction buffer. This allows multiple users to debug the same transaction and provides transaction code lockout relief.
IMS User ID/Data Trap Support requires use of IMS exit DFSMSCE0.
This IMS User ID/Data Trap Support in Code Debug IMS will alter the transaction code from the original to a predefined dummy trancode reserved for Code Debug’s use. The IMS user ID to intercept is specified on the MPP test screen (2.8). In order for Code Debug to alter the transaction code, the Code Debug IMS User ID Intercept must be activated. Specify YES for the PARMLIB keyword CTLIMSUS.
IMS Requirements for DFSMSCE0
The Code Debug supplied IMS TM and MSC Message Routing and Control exit, DFSMSCE0, must be installed in all IMS control regions in which User ID/Data Value Intercept Support is to be implemented. If your installation already has a DFSMSCE0 exit, your version of the exit should be renamed to XPIMSCE0. The Code Debug IMS version will locate and invoke XPIMSCE0 (if present) after determining that a transaction is not to be routed to a Code Debug region.
For IMS 14.1 and Older Releases:
- Member DFSMSCE0 can simply be copied from the SLXTLOAD library to either the IMS RESLIB or a library concatenated to the RESLIB in the IMS control region JCL.
- Shut down and restart the IMS control region to finish implementation.
For IMS 15.1 and Newer Releases:
- Copy the member JCLMSCE0 from the SLXTINST library to a library of your choice.
- Follow the instructions in the JCLMSCE0 member to customize the JCL.
- Make sure the SYSLMOD library is authorized. It can be either the IMS RESLIB or a library concatenated to the RESLIB in the IMS control region JCL.
- Submit the job. It should complete with a condition code of 0.
- Shut down and restart the IMS control region to finish implementation.
APPLCTN Macro
IMS must be able to schedule the application Program Specification Block (PSB) when additional transactions are received, even though the PSB is already scheduled in the user’s Code Debug IMS debugging session. The relevant IMS sysgen parameter is SCHDTYPE.
The APPLCTN macro for the application PSB must specify SCHDTYPE=PARALLEL. The IMS gen default is SCHDTYPE=SERIAL. This default does not allow IMS to schedule more than one instance of a particular PSB at a time. An IMS gen is required to change this parameter.
Long Running Batch Message Processing (BMP) Region
This method of transaction code lockout relief allows a transaction program to run in its usual message region at the same time as a Code Debug IMS debugging session for the same program. This should provide some relief in non-debugging sessions from getting locked out while a Code Debug session is active.
Default behavior:
- When a Code Debug IMS session is entered, the transaction codes specified on the MPP test screen (2.8) are assigned to the transaction class associated with the user’s debugging session.
- The transactions are reassigned to their original transaction classes when the debugging session ends, and any queued transactions are processed at that time.
General Information
This facility allows the class reassignment to occur as soon as the Code Debug IMS debugging session has intercepted the maximum number of transactions that were requested on the MPP test screen (2.8) for that particular transaction code. For example, if the START and MAX values are both set to 1, Code Debug IMS will only reassign the transaction class for that transaction to the debugger until the first transaction has been intercepted, which should happen within a few seconds. After that first transaction has been captured, normal transaction processing can resume for that transaction code.
Procedural Requirements
Three requirements must be met to take advantage of the transaction lockout relief in this facility:
- A Batch Message Processing (BMP) program named ADSIM013 must be signed on to the same IMS subsystem as the Code Debug IMS user. This BMP could be started and stopped by the same mechanism that is used to start and stop the message regions for this IMS subsystem.
- The Code Debug IMS user must specify a MAX value on the MPP test screen (2.8) to limit the number of transactions that will be intercepted. If this field is left blank, every transaction in the region will be intercepted.
- IMS must be able to schedule the application Program Specification Block (PSB) when additional transactions are received, even though the PSB is already scheduled in the user’s Code Debug IMS debugging session. The relevant IMS sysgen parameters are SCHDTYPE, PARLIM, and MAXRGN:
- The APPLCTN macro for the application PSB must specify SCHDTYPE=PARALLEL. The IMS gen default is SCHDTYPE=SERIAL. This default does not allow IMS to schedule more than one instance of a particular PSB at a time. An IMS gen is required to change this parameter.
- The TRANSACT macro for the affected transaction code must specify PARLIM=0 to allow scheduling of multiple instances of the PSB even though no queue has built up for the transaction code. The IMS gen default is PARLIM=NONE. The BMP will automatically reassign PARLIM to 0 at the same time it reassigns the transaction class to its original value. This happens after the debugger has intercepted the last transaction for that transaction code. Code Debug IMS will reassign the transaction PARLIM back to its original value when the debugging session ends.
- The TRANSACT macro for the affected transaction code must not specify MAXRGN=1. The IMS gen default is 0, which means unlimited. This parameter is unlikely to cause problems and can be reassigned by the IMS master terminal operator, if desired.
To summarize the IMS gen requirements: the new reassignment facility is only effective for applications whose PSB is eligible for parallel scheduling because that PSB’s APPLCTN macro specifies SCHDTYPE=PARALLEL. There are no requirements to specify any of the parameters on the TRANSACT macro related to load balancing or to enable parallel scheduling for any transactions. These details are handled by Code Debug IMS for any transaction whose PSB allows parallel scheduling, and the parameters are reset to their original values when the Code Debug IMS session completes.