- Can I email the FAQ writer to help me shoot a dump in IPCS?
Please read my contact page. Sending me
email asking how to shoot your dumps in IPCS is an exercise in futility.
That being said, I'd love to get tips you might have to put here to share with others.
- How do I learn how to shoot dumps using IPCS?
Some suggestions but not a complete list:
- How do I change the width of the IPCS output?
There's trouble in paradise. You have this gorgeous widescreen monitor and you're using
more than 80 columns in IPCS but then you'd like to copy&paste some IPCS output into an email.
Use the following command to change the output of some IPCS commands:
IP PROFILE LINESIZE(80)
And to set it back to max out to your terminal width:
IP PROFILE NOLINESIZE
Hint #1: IP PROFILE LIST shows the profile settings.
Hint #2: I've found that IP VERBX MTRACE displays better with IP PROFILE NOLINESIZE
after the recent z/OS level that added the better formatting.
- How do I suppress that annoying BLS18160D prompt?
With the IPCS default setting, everytime you initialize a dump, there's a prompt:
BLS18160D May summary dump data be used by dump access? Enter Y to use, N to bypass.
99% of the time, you want the summary dump so you can eliminate this prompt by issuing this command:
IP SETDEF NOCONFIRM
Hint: You'll need to reissue the command if you reinit your dump directory.
- How do I change the default length of the LIST command?
The default is a huge 4 bytes! Change it so you don't have to add "LENGTH(xxx)" on
every LIST command:
IP SETDEF LENGTH(4096)
Hint: You'll need to reissue the command if you reinit your dump directory.
- How do I see the storage key on the LIST command?
Use the SETDEF command to display Machine information:
IP SETDEF DISPLAY(MACHINE)
Here's an example showing that the ECVT resides in Key 0 memory:
IP LIST ECVT
ECVT - Extended Communications Vector Table
LIST 019C7018. ASID(X'0001') LENGTH(X'0388') STRUCTURE(Ecvt)
ASID(X'0001') ADDRESS(019C7018.) KEY(00) ABSOLUTE(17F99018.)
+00000 019C7018. C5C3E5E3 02821528 | ECVT.b..|
Hint: You'll need to reissue the command if you reinit your dump directory.
- How do I change the dump directory volume when I allocate the IPCS dump directory?
The IBM CLIST that allocates the dump directory has a volume name of VSAM01 and if
you use the ISPF IPCS dialog, you'll probably have an error. Here's the command
that allocates the IPCS dump directory that you can invoke outside of the IPCS dialog
to specify allocation attributes:
TSO %BLSCDDIR VOLUME(volume)
In addition to the volume, here are the current keywords that BLSCDDIR takes:
BUFFERSPACE() DATACLAS() DSNAME() FILE() MGMTCLAS() NDXCISZ() RECORDS() STORCLAS()
- What commands should I issue after creating a new IPCS dump directory?
These are subject to your needs but here's what I do:
IP SETDEF NOCONFIRM
IP SETDEF LENGTH(4096)
IP SETDEF DISPLAY(MACHINE)
- How do I speed up IPCS performance?
- How do I format STCK values?
In z/OS 1.4 and higher there is a new LISTTOD command available:
IP LISTTOD tod_hex_string
This is the older method which also works in later releases:
IP CBF address STR(TODCLOCK)
- How do I see offsets with the IPCS LIST command?
Here's a sample LIST command:
IP LIST 0189F340. LENGTH(128)
0189F340. C5C3E5E3 020467D0 E2E5E2C3 D7D3C5E7 |ECVT...}SVSCPLEX|
0189F350. 00000000 00000000 0157D510 0157D5EA |..........N...N.|
0189F360. 0157D6D0 0157D7DA 29C78228 00000000 |..O}..P..Gb.....|
0189F370. 80000000 A9D48040 00000000 00000000 |....zM. ........|
0189F380. 00000000 00000000 00000000 022F0048 |................|
Although not obvious, at least to me from reading the IPCS manual, you can simply
add "STR" to the end of the LIST command to see offsets displayed on each line:
IP LIST 0189F340. LENGTH(128) STR
+00000 0189F340. C5C3E5E3 020467D0 E2E5E2C3 D7D3C5E7 |ECVT...}SVSCPLEX|
+00010 0189F350. 00000000 00000000 0157D510 0157D5EA |..........N...N.|
+00020 0189F360. 0157D6D0 0157D7DA 29C78228 00000000 |..O}..P..Gb.....|
+00030 0189F370. 80000000 A9D48040 00000000 00000000 |....zM. ........|
+00040 0189F380. 00000000 00000000 00000000 022F0048 |................|
- How do I find out the ASID for a jobname?
To see a list of ASIDs with jobnames, use this command:
IP SELECT ALL
Here is some example output:
ASID JOBNAME ASCBADDR SELECTION CRITERIA
---- -------- -------- ------------------
0001 *MASTER* 00FD9B00 ALL
0002 PCAUTH 00F59500 ALL
0003 RASP 00F59380 ALL
...
003F PORTMAP 00FC4900 ALL
- How do I process dumps that don't match the OS I'm using IPCS on?
For example, the SYSTRACE command fails with an error like this:
******** INVALID CONTROL BLOCK TOB /02 AT 019721F8 = E3D6C240/01.
******** ERROR OBTAINING TTCH/03 AT 7F06B000 RC = 04.
******** SYSTEM TRACE PROCESSING IS TERMINATED.
You need to use the SYS1.MIGLIB that matches the operating system level where the dump was
taken. For example, run IPCS in batch and steplib to the correct SYS1.MIGLIB. Where I
work, we copy SYS1.MIGLIB to a dataset that has the OS level in it and a front end panel
allows us to select the right level for the dump.
IBM recommends that you use the IPCS that matches the operating system level.
- How do create my own definitions for the CBFORMAT command?
You use the BLSQMDEF and BLSQMFLD macros. See the Saver example
made from the IHASAVER macro.
IP CBF 6F50. MODEL(SAVER)
SaveArea: 00006F50
+0000 PLI...... 00000000 PREV..... 00000000 NEXT..... 07D09FFC
+000C GRS14.... 80FDFF08 GRS15.... 87D04560 GRS0..... FD000014
+0018 GRS1..... 00006FE8 GRS2..... 00000040 GRS3..... 007E7AD4
+0024 GRS4..... 007E7AB0 GRS5..... 007FFB00 GRS6..... 007D9FE0
+0030 GRS7..... FD000000 GRS8..... 007FCD88 GRS9..... 007FF2E0
+003C GRS10.... 00000000 GRS11.... 007FFB00 GRS12.... 8351FBAA
I prefer the IHASAVER names for the non-register fields instead of the ones in the standard
provided method of displaying the register save area:
ip cbf 6F50. STR(regsave)
SA: 00006F50
WD1...... 00000000 HSA...... 00000000 LSA...... 07D09FFC
RET...... 80FDFF08 EPA...... 87D04560 R0....... FD000014
R1....... 00006FE8 R2....... 00000040 R3....... 007E7AD4
R4....... 007E7AB0 R5....... 007FFB00 R6....... 007D9FE0
R7....... FD000000 R8....... 007FCD88 R9....... 007FF2E0
R10...... 00000000 R11...... 007FFB00 R12...... 8351FBAA
- How do I fix "IPCSPR00 not found" error?
You get this error message after invoking IPCS:
BLS04017I parmlib member IPCSPR00 not found
One thing you can do is to create a personal parmlib dataset with a
bare bones IPCS parmlib member in it. I allocate two libraries to
ddname IPCSPARM:
//IPCSPARM DD DISP=SHR,DSN=userid.PARMLIB
// DD DISP=SHR,DSN=SYS1.IBM.PARMLIB
In my userid.PARMLIB PDS there is the IPCSPR00 member:
/* BARE BONES IPCS PARMLIB MEMBER - 2007-01-31 */
LINELENGTH(137) PAGESIZE(60) NODSD NOPDR;
- How can I undermine my dump taking and viewing?
One key way to hurt these processes is to have the incomplete and out of date dump parmlib members.
These are usually the BLSxxxxx and the xxxIPCSP members.
- How can I ensure I have the correct parmlib members for dumps?
The best way, in the FAQ writer's opinion, is a MVS parmlib concatenation. The
first library in the PARMLIB concatenation has all of the installation's overrides to
the IBM default members. There will be no IPCS parmlib members in this library. The second
library is the distributed parmlib from IBM specific for that release. You avoid
having to copy all of the members needed by dump processing for each release by
always getting the correct members as the come from IBM.
Steps to achieve this:
- Add parmlib statements to your LOADxx member:
* |<------------- DATASET NAME ------------->| VOLUME
*---+----1----+----2----+----3----+----4----+----5----+----6
PARMLIB SYS1.PARMLIB *MCAT*
PARMLIB SYS1.IBM.PARMLIB ******
- IPL and then ensure that the concatenation is in use:
D PARMLIB
IEE251I 09.11.01 PARMLIB DISPLAY 003
PARMLIB DATA SETS SPECIFIED
AT IPL
ENTRY FLAGS VOLUME DATA SET
1 S MCAT01 SYS1.PARMLIB <-- Usually on master cat volume
2 S ZOSAR1 SYS1.IBM.PARMLIB <-- On SYSRES
- Rather than delete them, I prefer a 3.3 move of the dump processing members
out of the first parmlib dataset into a temporary library so you can recover a
member if you select the wrong one.
- IPL again or issue this command to fix non-IPCS dump processing:
S BLSJPRMI,SUB=MSTR
Note: your BLSJPRMI started task may be old and you need the latest one from the IBM
provided SYS1.PROCLIB. The new one removes the hard coded SYS1.PARMLIB so it can use the
PARMLIB concatenation.
Tip: On a related note, I also recommend applying this technique to the PROCLIBs too:
- Add SYS1.IBM.PROCLIB to the IEFPDSI concatenation after SYS1.PROCLIB in the Master JCL.
Doing this ensures that all SUB=MSTR procs are found. All installation changed or added
procs are in SYS1.PROCLIB. SYS1.IBM.PROCLIB has the procs as they come from IBM unmodified.
- Add SYS1.IBM.PROCLIB to the JES2 or JES3 proclib concatenation after SYS1.PROCLIB
- How can I tell which control block models I have?
It's listed in the Friendly manual of course. But another way to see what the current IBM
supplied definitions at the operating system level is to browse the BLSCECT member in
the parmlib. This also allows you to see how IPCS works.
- Is the dump a complete dump?
It's not so much of a problem now with non-static dumps but there is always the danger with
the pre-allocated SYS1.DUMPxx datasets to get a partial dump.
IP LIST E0. BLOCK(0) L(16)
If its all zeros, then the dump was completely taken.
- When was the system IPL'd?
IP IPLDATA
- What are some new IBM IPCS functions?
- z/OS 1.10 -
IPCS support for VTAM display commands
TSO DNET ID(TSO),E
========================== Display Command Interface =================
CMD ===>
IKV0016I SYS1.DUMP01 (Dump of z/OS)
IKV0017I DNET ID(TSO),E
----------------------------------------------------------------------
IST097I DISPLAY ACCEPTED
IST075I NAME = TSO , TYPE = APPL
IST486I STATUS= ACTIV , DESIRED STATE= ACTIV
IST1447I REGISTRATION TYPE = NO
...
Quirks (maybe fixed by maintenance by the time you read this):
- Pay attention to the name of the dump on the IKV0016I message. I've
seen twice where I had do a SETDEF again to get DNET to work. You get the
message "IKV0003I DNET could not locate the VTAM CPVCB in the dump" even though
you did a setdef to a dump with the VTAM private region.
- The DNET command is a 24x80 application and doesn't use your TSO session to it's
fullest rows and columns.
- z/OS 1.10 -
GRS IPCS enhancements
- How do I run IPCS in batch?
If don't want to tie up your TSO session on a huge Stand Alone Dump or to quickly
format the SYSTRACE for a dump from an earlier operating system, you can run IPCS
in Batch:
// job card here
//*
//IPCSBTCH EXEC PGM=IKJEFT01,DYNAMNBR=20,REGION=4M,TIME=1439
//*STEPLIB DD DISP=SHR,DSN=SYS1.MIGLIB,UNIT=3390,VOL=SER=pack <- optional
//SYSPROC DD DISP=SHR,DSN=SYS1.SBLSCLI0
//SYSTSPRT DD SYSOUT=*
//IPCSPRNT DD SYSOUT=*
//*IPCSPARM DD DISP=SHR,DSN=userid.PARMLIB <-optional
//* DD DISP=SHR,DSN=SYS1.IBM.PARMLIB <-optional
//SYSTSIN DD *
PROFILE MSGID
DELETE SPFTEMP1.IPCSBAT.SAD.DDIR
BLSCDDIR DSNAME(userid.SPFTEMP1.IPCSBAT.SAD.DDIR) +
VOLUME(vvvvvv) +
RECORDS(25000)
IPCS
SETDEF DSNAME('your.dump.dsname') +
LIST NOCONFIRM LENGTH(4096) DISPLAY(MACHINE)
VERBX SADMPMSG /* TRIVIA ABOUT THE DUMP PROCESS */
COPYCAPD /* SHOW CAPTURED DUMPS (IF ANY) */
SYSTRACE TIME(LOCAL)