Code Debug Service Provider PROC and JCL
Related topics
The Code Debug Service Provider can be executed as a started task or as a batch job. If the Service Provider is started during the IPL process and gains control before TCP/IP has started, then the TCP link between Service Providers will not be established automatically, and an error message (XSP3002E DBUGTCP cannot locate TCP/IP) will be written to the Service Provider JESLOG. If this scenario occurs, you can issue Operator Command INITTCP to manually establish the TCP link between Service Providers after TCP/IP has been started.
Perform the applicable following task to configure the Code Debug Service Provider as either a started task or as a batch job.
Task 14.1 Executing as a Started Task
The PROC in member XDSSPROC provided in CPWR.cMXD170.SMXDSAMP (where c represents the CICS release) (displayed in the following figure) is used to execute the Code Debug Service Provider as a started task.
Sample PROC to Execute the Code Debug Service Provider as a Started Task
// DESCSP=512KB,
// COMSP=20MB,
// THREADS=12,
// XMTASKS=128,
// TRACE=128KB,
//* MEMBER=, <== (1) uncomment if needed.
//* PORT=, <== (1) uncomment if needed.
// OVERRIDE=,
// DEBUG=,
// ARM=
//***********************************************************************
//* *
//* *
//* B M C C O R P O R A T I O N *
//* *
//* C o d e D e b u g S e r v i c e P r o v i d e r *
//* --------------- ------------- --------------- *
//* *
//* *
//* This Procedure contains the JCL required to execute the Code Debug *
//* Service Provider Subsystem. The Code Debug Service Provider can *
//* be executed as a Started Task (STC) or a Batch Job (Batch). The *
//* following describes the parameters used to configure the Code Debug *
//* Service Provider address space, for a complete explanation see *
//* the Code Debug CICS Installation Guide. *
//* *
//* *
//* (1) The Service Provider can be connected to other Service *
//* Providers on other LPARs via TCP. This optional capability *
//* allows Code Debug CICS to support CP/SM environments that *
//* include multiple LPARs. If you need this capability, then *
//* uncomment the JCL statements identified with the (1) tag. *
//* *
//* *
//* Parameter Description of parameter value *
//* --------- ---------------------------------------------------- *
//* SSID Subsystem Identifier *
//* DESCSP Descriptor Storage Subpool Size *
//* COMSP Common Storage Subpool Size *
//* THREADS Local Address Space Thread Limit *
//* XMTASKS Subsystem Cross Memory Task Limit *
//* TRACE Internal Trace Table Size *
//* MEMBER Dataset TPCONFIG member name to read (sample CFGXDSS) *
//* PORT TCP Port Number for Service Provider *
//* OVERRIDE Subsystem Emergency Override Parameter *
//* DEBUG Subsystem Diagnostic Mode Parameter *
//* ARM Automatic Restart Manager Enable Parameter *
//* *
//***********************************************************************
//DBUGSTC EXEC PGM=DBUGSTC,PARM=(&SSID,
// 'DESCSP=&DESCSP',
// 'COMSP=&COMSP',
// 'THREADS=&THREADS',
// 'XMTASKS=&XMTASKS',
// 'TRACE=&TRACE',
//* 'MEMBER=&MEMBER', <== (1) uncomment if needed.
//* 'PORT=&PORT', <== (1) uncomment if needed.
// '&OVERRIDE',
// '&DEBUG',
// '&ARM')
//STEPLIB DD DISP=SHR,DSN=COMPWARE.cMXDnnn.SMXDAUTH <== Check DSNAME
//** (1) uncomment the following if needed. *
//* DD DISP=SHR,DSN=TCPIP.SEZALOAD <== (1), Check DSNAME
//*TPCONFIG DD DISP=SHR,DSN=XPED.TPCONFIG <== (1), Check DSNAME
Substitute parameter values on the MVS operator START command. See above figure for an explanation of valid values.
The STEPLIB DD statement must be supplied, and it must point to the data set to which the Code Debug CICS APF authorized modules were linked. The default is CPWR.cMXD170.SMXDAUTH where c varies by CICS release.
Task 14.2 Executing as a Batch Job
The JCL in member XDSSJCL provided in SMXDSAMP member (following figure) is used to execute the Code Debug Service Provider as a batch job.
Sample JCL to Execute the Code Debug Service Provider as a Batch Job
//***********************************************************************
//* *
//* *
//* B M C C O R P O R A T I O N *
//* *
//* C o d e D e b u g S e r v i c e P r o v i d e r *
//* --------------- ------------- --------------- *
//* *
//* *
//* This Job executes the Code Debug Service Provider Subsystem. The *
//* following describes the parameters used to configure the Code Debug *
//* Service Provider address space, for a complete explanation see *
//* the Code Debug CICS Installation Guide. *
//* *
//* *
//* (1) The Service Provider can be connected to other Service *
//* Providers on other LPARs via TCP. This optional capability *
//* allows Code Debug CICS to support CP/SM environments that *
//* include multiple LPARs. If you need this capability, then *
//* uncomment the JCL statements identified with the (1) tag in *
//* this member and also in the PROC (XDSSPROC). *
//* *
//* *
//* Parameter Description of parameter value *
//* --------- ---------------------------------------------------- *
//* SSID Subsystem Identifier *
//* DESCSP Descriptor Storage Subpool Size *
//* COMSP Common Storage Subpool Size *
//* THREADS Local Address Space Thread Limit *
//* XMTASKS Subsystem Cross Memory Task Limit *
//* TRACE Internal Trace Table Size *
//* MEMBER Dataset TPCONFIG member name to read (sample CFGXDSS) *
//* PORT TCP Port Number for Service Provider *
//* OVERRIDE Subsystem Emergency Override Parameter *
//* DEBUG Subsystem Diagnostic Mode Parameter *
//* ARM Automatic Restart Manager Enable Parameter *
//* *
//***********************************************************************
//XDSUBSYS EXEC XDSSPROC,
// SSID=XDSS,
// DESCSP=512KB,
// COMSP=20MB,
// THREADS=12,
// XMTASKS=128,
// TRACE=128KB,
//* MEMBER=, <== (1) uncomment if needed.
//* PORT=, <== (1) uncomment if needed.
// OVERRIDE=,
// DEBUG=,
// ARM=
//
Replace the JOB card, substitute parameter values on the XDSSPROC procedure statement, and submit the JCL. See above figure, for an explanation of valid XDSSPROC parameter values.
Task 14.3 Implement Automatic Restart Management (ARM) Support
The Code Debug Service Provider’s ARM execution parameter value must be set to ARM in the XDSSPROC to implement ARM support. For details, see Code Debug Service Provider PROC and JCL.
The Code Debug Service Provider should be assigned to the IBM restart level 1 (SYSLVL1), which will guarantee the Service Provider is available for the CICS regions which are assigned to the IBM restart level 2 (SYSLVL2). The Code Debug Service Provider will only restart on address space level failures, not LPAR failures, which allows for the same subsystem identifier (SSID) across the Sysplex. The element name that is utilized by the Code Debug Service Provider is
XSP_ssid_mvsid
where ssid is the four-character Subsystem Identifier for the Code Debug Service Provider, and mvsid is the four-character MVS identifier utilized System Management Facility (SMF).
Task 14.4 Configure Service Provider Usage of the TP Configuration File
The Code Debug TP configuration file (TPCONFIG) is used for two purposes:
- To identify Code Debug Service Providers that are to share CICSPlex information
- To identify all of the CICS regions that should be contacted by the Batch Interface to Code Debug CICS NEWCOPY. For more information, see Installing and Customizing the Batch Interface to CICS NEWCOPY.
Efficiency Considerations
Technically, each member of the TPCONFIG partitioned data set may contain entries for both possible uses mentioned above. This is because each record within a member starts with a record identifier, and records with an identifier for a different purpose are ignored. However, even though it is technically feasible to have all of the information in one member, doing so would be inefficient.
Even assuming shared DASD that all required LPARs can access, lumping all Service Provider (XDSS) records into one TPCONFIG member would cause the Code Debug Service Providers to communicate unnecessary data to other Service Providers outside of their CICSPlex, and force them to maintain the unnecessary data received from those outside Service Providers. For efficiency, BMC recommends that Service Provider records be grouped in TPCONFIG members named for each CICSPlex used at your site, with one TPCONFIG member per CICSPlex. You will need multiple TPCONFIG data set “clones” if shared DASD cannot be accessed by all required LPARs.
Service Provider Record Identifiers
Records in an TPCONFIG member with an asterisk in position one are considered comment records and are ignored. Records that have a blank in position one are scanned for a following record identifier.
The record identifier for Code Debug Service Provider records is XDSS. Each Code Debug Service Provider that controls any portion of a CICSPlex should have a record in the member that represents that CICSPlex.
Following the XDSS record identifier are:
- one or more blanks
- the PORT number for that Service Provider to listen on
- one or more blanks
- the IP Address for that Service Provider.
The PORT number should be assigned by your TCP Systems Programmer. If a Domain Name Server is available for GETHOSTBYNAME calls, then the Domain Name may be specified instead of the IP Address.