- PRDBATHI
- High-priority batch
- PRDBATMD
- Medium-priority batch
- PRDBATLO
- Low-priority batch
Saturday, October 17, 2026
𝗧𝗵𝗲 𝗖𝘂𝗿𝗶𝗼𝘂𝘀 𝗖𝗮𝘀𝗲 𝗼𝗳 𝗜𝗻𝘁𝗲𝗿𝗺𝗶𝘁𝘁𝗲𝗻𝘁 𝗦𝗙𝗧𝗣 𝗧𝗶𝗺𝗲𝗼𝘂𝘁𝘀 𝗶𝗻 𝗠𝗮𝗶𝗻𝗳𝗿𝗮𝗺𝗲 𝗣𝗿𝗼𝗱𝘂𝗰𝘁𝗶𝗼𝗻 𝗝𝗼𝗯𝘀
Tuesday, October 6, 2026
𝗪𝗵𝘆 𝗔𝗿𝗲 𝗦𝗼𝗺𝗲 𝗝𝗼𝗯𝘀 𝗣𝘂𝗿𝗴𝗲𝗱 𝗳𝗿𝗼𝗺 𝗝𝗛𝗦 𝗘𝗮𝗿𝗹𝗶𝗲𝗿 𝗧𝗵𝗮𝗻 𝗢𝘁𝗵𝗲𝗿𝘀?
The name of the JHS exit that assigns the Job Group number to jobs can be found in HLQ.JHS.PARMLIB(EXITS).
HLQ.JHS.PARMLIB(EXITS)
<EXIT>
<TYPE>JOBGROUP</TYPE>
<MODULE>JHSGRPM1</MODULE>
</EXIT>
The sample code for the JHS exit JHSGRPM1 can be found in:
HLQ.JHS.JHSASM(JHSGRPM1)
IF NAME=-------D
GROUP 0
ENDIF
IF NAME=-------W
GROUP 0
ENDIF
IF NAME=BXXXXXXD
GROUP 4
ENDIF
IF NAME=MXXXXXXW
GROUP 14
ENDIF
In PARMLIB(JHSPARMS), each Job Group is associated with a retention period specified in number of days.
HLQ.JHS.PARMLIB(JHSPARMS)
* NUMBER OF DAYS RETENTION OF JOB SUMMARY DATA
RETAIN 010 JOB GROUP 0
RETAIN1 005 JOB GROUP 1
RETAIN2 007 JOB GROUP 2
RETAIN3 012 JOB GROUP 3
RETAIN4 014 JOB GROUP 4
RETAIN5 018 JOB GROUP 5
RETAIN6 020 JOB GROUP 6
RETAIN7 022 JOB GROUP 7
RETAIN8 024 JOB GROUP 8
RETAIN9 030 JOB GROUP 9
RETAIN10 060 JOB GROUP 10
RETAIN11 091 JOB GROUP 11
RETAIN12 120 JOB GROUP 12
RETAIN13 150 JOB GROUP 13
RETAIN14 160 JOB GROUP 14
RETAIN15 170 JOB GROUP 15
Therefore, jobs assigned to different Job Groups can have different retention periods in JHS, which explains why some jobs are purged sooner than others.
Thursday, October 1, 2026
𝗕𝗟𝗞𝗦𝗜𝗭𝗘 𝗠𝘆𝘀𝘁𝗲𝗿𝘆: 𝗦𝗮𝗺𝗲 𝗖𝗢𝗕𝗢𝗟 𝗮𝗻𝗱 𝗝𝗖𝗟, 𝗯𝘂𝘁 𝗗𝗶𝗳𝗳𝗲𝗿𝗲𝗻𝘁 𝗩𝗮𝗹𝘂𝗲𝘀 𝗳𝗼𝗿 𝗗𝗜𝗦𝗞 𝗮𝗻𝗱 𝗧𝗔𝗣𝗘
- NOBLOCK0 compiler option was in effect.
- The FD definition did not contain BLOCK
CONTAINS 0.
- With BLKSIZE=0 in JCL → BLKSIZE was assigned the same
value as LRECL.
- Without BLKSIZE=0 in JCL → BLKSIZE was still assigned
the same value as LRECL.
Regardless of whether BLKSIZE=0 was specified in the JCL, the system assigned an appropriate BLKSIZE as expected.
Sunday, September 20, 2026
𝗖𝗢𝗕𝗢𝗟 𝗣𝗿𝗼𝗴𝗿𝗮𝗺 𝗔𝗯𝗲𝗻𝗱𝘀 𝘄𝗶𝘁𝗵 𝗦𝗕𝟯𝟳 𝘄𝗵𝗶𝗹𝗲 𝗖𝗟𝗢𝗦𝗶𝗻𝗴 𝘁𝗵𝗲 𝗳𝗶𝗹𝗲
PROGRAM-ID. TESTPGM.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT OUTPUT-FILE ASSIGN TO OUTFILE.
DATA DIVISION.
FILE SECTION.
FD OUTPUT-FILE.
01 OUTPUT-REC PIC X(30).
WORKING-STORAGE SECTION.
01 WS-GRP.
05 FILLER PIC X(05) VALUE 'WS-I:'.
05 WS-I PIC S9(8) COMP.
01 WS-VAR PIC 9(8).
PROCEDURE DIVISION.
ACCEPT WS-VAR
DISPLAY WS-VAR
OPEN OUTPUT OUTPUT-FILE
PERFORM VARYING WS-I FROM 1 BY 1 UNTIL WS-I > WS-VAR
WRITE OUTPUT-REC
END-PERFORM
DISPLAY 'WS-I ' WS-I
CLOSE OUTPUT-FILE
GOBACK.
//SYSOUT DD SYSOUT=*
//OUTFILE DD DSN=USERID.TESTFIL,
// LRECL=30,RECFM=FB,VOL=(,,,1),
// DISP=(,CATLG,CATLG),
// SPACE=(TRK,(1,1),RLSE),BUFNO=5
//*
//SYSIN DD *
00034520
//*
BLKSIZE = 27,990
SPACE = TRK,(1,1) = 1 Primary + 15 secondary tracks = total 16 tracks
BUFNO = 5
- 36 complete blocks
- 1 partial block containing 932 records
IGZ0034W The file with system-name OUTFILE could not be extended. Secondary extents were not specified or were not available. The last WRITE was at offset X'E23156CC' in program TESTPGM.
Tuesday, September 15, 2026
Don't Trust Connect Time in SMF Type 30 for FICON Environments
Per IBM's documentation on the SMF 30 record's IO_CONNECT_SEC field: "The value of RqsvAIC for the FICON® channel utilization cannot be calculated. In this case, the system adjusts the connect time for FICON DASD to be 1 millisecond per request." (source https://www.ibm.com/docs/en/z-logdata-analytics/5.1.0?topic=data-smf-30-v2-record-type)
Years ago, when average I/O response times were around 3ms, that 1ms floor was a reasonable stand-in. Today, with response times often well under 1ms (some experts suggest 0.1–0.2ms is closer to reality) that artificial 1ms number is now larger than many actual total response times. It throws off any comparison against more granular records like Type 42 (datasets) or Type 101 (DB2).
Bottom line: Don't rely on Type 30 connect time in FICON environments to judge batch I/O performance - use Type 42, Type 101, or other record types that capture true connect time instead.
Sunday, September 13, 2026
𝗤𝘂𝗶𝗰𝗸𝗹𝘆 𝗘𝘀𝘁𝗶𝗺𝗮𝘁𝗶𝗻𝗴 𝘁𝗵𝗲 𝗦𝗶𝘇𝗲 𝗼𝗳 𝗬𝗼𝘂𝗿 𝗣𝗿𝗼𝗱𝘂𝗰𝘁𝗶𝗼𝗻 𝗗𝗕𝟮 𝗗𝗮𝘁𝗮𝗯𝗮𝘀𝗲𝘀
- Total
Space
- Free Space
Saturday, September 12, 2026
𝗧𝗵𝗲 𝗠𝘆𝘀𝘁𝗲𝗿𝘆 𝗼𝗳 𝘁𝗵𝗲 𝟵𝟵% 𝗦𝘁𝗼𝗿𝗮𝗴𝗲 𝗚𝗿𝗼𝘂𝗽 𝗙𝘂𝗹𝗹 𝗔𝗹𝗲𝗿𝘁: 𝗔 𝗜𝗻𝘃𝗲𝘀𝘁𝗶𝗴𝗮𝘁𝗶𝗼𝗻 𝗦𝘁𝗼𝗿𝘆
Now there were two mysteries to solve:
- What caused the sudden spike in storage consumption?
- Why did utilization return to normal so quickly?
Sunday, September 6, 2026
𝗧𝗿𝗮𝗻𝘀𝗳𝗼𝗿𝗺𝗶𝗻𝗴 𝗮 𝗖𝗢𝗕𝗢𝗟 𝗔𝗿𝗿𝗮𝘆 𝗶𝗻𝘁𝗼 𝗮 𝗧𝗲𝗺𝗽𝗼𝗿𝗮𝗿𝘆 𝗧𝗮𝗯𝗹𝗲 𝗮𝗻𝗱 𝗝𝗼𝗶𝗻𝗶𝗻𝗴 𝘄𝗶𝘁𝗵 𝗮 𝗗𝗕𝟮 𝘁𝗮𝗯𝗹𝗲
- Only one
SQL statement is executed.
- DB2
can optimize the join operation internally.
- Database
round trips are eliminated.
- CPU
and elapsed time are significantly reduced, especially when the list
contains many values.
- The
solution scales better as the number of diagnosis codes grows.
Thursday, August 13, 2026
𝘇/𝗢𝗦 𝟯.𝟮 𝗗𝗲𝗳𝗲𝗰𝘁 : 𝟭𝟯 𝗦𝘁𝗲𝗽𝘀 𝗞𝗲𝗽𝘁 𝗔𝗽𝗽𝗲𝗻𝗱𝗶𝗻𝗴 𝗥𝗲𝗰𝗼𝗿𝗱𝘀 𝘁𝗼 𝘁𝗵𝗲 𝗗𝗮𝘁𝗮𝘀𝗲𝘁, 𝗯𝘂𝘁 𝗢𝗻𝗹𝘆 𝟳𝟬𝗠 𝗼𝗳 𝘁𝗵𝗲 𝗘𝘅𝗽𝗲𝗰𝘁𝗲𝗱 𝟱𝟵𝟰𝗠 𝗥𝗲𝗰𝗼𝗿𝗱𝘀 𝗔𝗿𝗲 𝗣𝗿𝗲𝘀𝗲𝗻𝘁
- RECFM: FB
- LRECL: 21
- BLKSIZE: 27,993
|
Step |
Records Written |
|
STEP100 |
37,923,095 |
|
STEP110 |
44,967,733 |
|
STEP120 |
57,202,964 |
|
STEP130 |
44,714,138 |
|
STEP140 |
43,599,256 |
|
STEP150 |
43,838,386 |
|
STEP160 |
45,313,346 |
|
STEP170 |
46,349,138 |
|
STEP180 |
45,525,353 |
|
STEP190 |
46,162,534 |
|
STEP200 |
46,518,402 |
|
STEP210 |
45,979,524 |
|
STEP220 |
46,381,066 |
Total records written from STEP100 to STEP220 : 594,474,935
Dataset Track Limitation
- The system can no longer
correctly address the entire dataset.
- It effectively treats
the dataset as if it contains only the records corresponding to the
overflowed tracks at the beginning of the file.
- Existing records are
overwritten as additional data is appended.
- Consequently, part of the previously accumulated data is lost.
First Overflow Event (After STEP130)
|
Step |
Records Written |
Running Record Count |
Calculated Tracks |
|
STEP100 |
37,923,095 |
37,923,095 |
14,225 |
|
STEP110 |
44,967,733 |
82,890,828 |
31,092 |
|
STEP120 |
57,202,964 |
140,093,792 |
52,549 |
|
STEP130 |
44,714,138 |
184,807,930 |
69,321 |
|
Step |
Records
Written |
Running
Record Count |
Calculated
Tracks |
|
STEP100 |
10,090,810 |
|
3,785 |
|
STEP140 |
43,599,256 |
53,690,066 |
20,139
|
|
STEP150 |
43,838,386 |
97,528,452 |
36,582 |
|
STEP160 |
45,313,346 |
142,841,798 |
53,579 |
|
STEP170 |
46,349,138 |
189,190,936 |
70,965 |
- First 10,090,810 records written from STEP100
- First 4,384,237
records written from STEP140
|
Step |
Records
Written |
Running
Record Count |
Calculated
Tracks |
|
STEP100 |
10,090,810 |
|
3,785 |
|
STEP140 |
4,384,237 |
|
1,645 |
|
STEP180 |
45,525,353 |
60,000,400 |
22,506 |
|
STEP190 |
46,162,534 |
106,162,934 |
39,821 |
|
STEP200 |
46,518,402 |
152,681,336 |
57,270 |
|
STEP210 |
45,979,524 |
198,660,860 |
74,517 |
- First 10,090,810 records written from STEP100
- First 4,384,237 records written from STEP140
- First 9,469,632 records written from STEP180
|
Step Contribution Retained
in Final Dataset |
Record Count |
|
STEP100 |
10,090,810 |
|
STEP140 |
4,384,237 |
|
STEP180 |
9,469,632 |
|
STEP220 |
46,381,066 |
|
Total Records in Final Dataset |
70,325,745 |