Information
Space announcement This documentation space provides the same content as before, but the organization of the content has changed. The content is now organized based on logical branches instead of legacy book titles. We hope that the new structure will help you quickly find the content that you need.

Code Debug Service Provider PROC and JCL


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

//XDSSPROC PROC 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=
//***********************************************************************
//*                                                                     *
//*                                                                     *
//*                     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

// YOUR JOB CARD HERE
//***********************************************************************
//*                                                                     *
//*                                                                     *
//*                  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.

Warning

Important

The STEPLIB DD statement in procedure XDSSPROC (see Sample PROC to Execute the Code Debug Service Provider as a Started Task) must point to the data set to which the Code Debug CICS APF authorized modules were linked. The default is SMXDAUTH member.

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

Warning

Important

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 do not need this capability, this task can be skipped

The Code Debug TP configuration file (TPCONFIG) is used for two purposes:

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.

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*

BMC AMI DevX Code Debug for CICS 17.02