How to use the SYSMDUMP DD to create a CA Datacom SVC Dump

book

Article ID: 142771

calendar_today

Updated On:

Products

CA Datacom CA Datacom - AD CA Datacom/DB CA Datacom/AD

Issue/Introduction

We would like to create a SYSMDUMP file in our JCL in case our CA Datacom processing fails and tries to create an SVC Dump.

How do I code the DD statement in the JCL, and what parameters do I need for the dump?

Environment

Component : CA DATACOM/DB, CA DATACOM/AD, CA DATACOM

Resolution

First, note that through JCL, there are three different dump DD statements you can use to create a dump, If you code more than one of these in your JCL, the last DD statement specified is the one that is used. The three dump types are:

  • SYSUDUMP -  creates a simple dump of user areas. This is formatted for print.
  • SYSABEND - creates a more detailed dump, containing user and system areas. It contains all that is in a SYSUDUMP plus LSQA and I/O control blocks (IOS), and is also formatted for print.
  • SYSMDUMP - creates an unformatted, machine readable dump that must be processed using IPCS or an equivalent tool.

If you want to use SYSMDUMP, and your application creates multiple dumps, you can avoid creating multiple redundant files by using a special DSN of SYS1.SYSMDPxx (xx = 00 through FF). This requires special handling, and the file must be preallocated with an end-of-file mark on the first record. For more information about this,  please refer to the IBM Documentation to "Preallocate data sets for SYSMDUMP dumps."

There is a comprehensive article that discusses the overall operating system settings used for dump management, where the data areas/memory areas are discussed. Please review Knowledge Base article 30191, titled "IBM MVS dump options to check to assure that you are providing a complete dump."

In addition, if you want to customize the contents of your SYSMDUMP, there are several ways to make the change on a temporary or a more permanent basis. Please refer to the IBM documentation for "Customizing SYSMDUMP dump contents" or the "CHNGDUMP command" webpages.

Now, if you want to set the specific data areas in your PARMLIB member IEADMR00, you can use these for Datacom:
SDATA=(CSA,LPA,LSQA,NUC,PSA,RGN,SQA,SUM,SWA,TRT)

Note that to complete dump using the above DD statements, you need to disable other dump formatters in the job/proc you are running. You will need to add one of these below DD statements to turn off the formatters:

//IDIOFF   DD  DUMMY   TURN OFF IBM FAULT ANALYZER
//ABNLIGNR DD  DUMMY   TURN OFF ABEND-AID
//ESPYIBM  DD  DUMMY   TURN OFF EYE-SPY
//CAOESTOP DD  DUMMY   TURN OFF CA-OPT II & CA-SYMDUMP
//DMBENAN  DD  DUMMY   TURN OFF DUMPMASTER
//PSPOFF   DD  DUMMY   TURN OFF SOFTWORKS PERFORMANCE ESSENTIAL

Finally, in terms of the SYSMDUMP allocation for CA Datacom processing, the dump file could require a lot of space (or you can write the dump to tape). It is not possible to know specifically how much, as it depends on the amount of storage that has been allocated to the MUF at the time of the dump. Since we dynamically allocate and release storage as needed, you will not be able to get an absolute value. Recent dumps that we have received were 4000 to 60000 tracks (250 to 4000 cylinders), with one file using 81000 tracks (5400 cylinders).

To add this to your JCL, use a DD statement like this:

//SYSMDUMP DD DISP=(NEW,DELETE,CATLG),
//        DSN=your.file.name,
//         RECFM=FB,LRECL=4160,BLKSIZE=0,     
//         SPACE=(CYL,(3000,200),RLSE),                  
//>choose> UNIT=(SYSDA,##),VOL=SER=volume
//>choose> MGMTCLAS=xxxxxxxx,STORCLAS=xxxxxxxx,DATACLAS=xxxxxxxx

Notes on the JCL:

  1. Note that if you are allocating a new dump file in the job, you should use a disposition of NEW,DELETE,CATLG, so that any dump file not needed because of a normal run is automatically deleted, and large amounts of space are not held for an empty file. You will then need some process to handle this file and delete it before the next job execution so that you do not get a Duplicate File error.
  2. As noted above, if your job produces multiple abends, you can use the special SYS1.SYSMDPxx file to only capture the first dump. Alternatively, you could specify the filename as a Generation Dataset (GDS), or you can use dynamic system symbols like &LYYMMDD and &LHHMMSS (if allowed) or other in-house-defined JCL symbols to embed the date and/or time into the file name.
    (For example, DSN=PROD.BATCHJOB.D&LYYMMDD..T&LHHMMSS..SYSMDUMP)
  3. If using a DASD device, you can specify that multiple esoteric devices are used on the UNIT parameter if needed.
  4. Any file allocated to SYSABEND, SYSUDUMP or SYSMDUMP can take advantage of system processing to use Striping and/or Compression. Striping will complete the write of the dump more quickly, and compression will reduce the size of the file (and therefore will use less I/O resources). You can also use Extended Format definitions or DSNTYPE=LARGE to deal with a large dump file.

With this information, your dump files should be much more useful and your diagnosis of the problem will hopefully be easier.

Additional Information

As always, please contact CA Technologies support for CA Datacom if you have further questions.