- Total
Space
- Free Space
Mainframe Tips, Tricks And Tutorials
Mainframe tips
Sunday, September 13, 2026
𝗤𝘂𝗶𝗰𝗸𝗹𝘆 𝗘𝘀𝘁𝗶𝗺𝗮𝘁𝗶𝗻𝗴 𝘁𝗵𝗲 𝗦𝗶𝘇𝗲 𝗼𝗳 𝗬𝗼𝘂𝗿 𝗣𝗿𝗼𝗱𝘂𝗰𝘁𝗶𝗼𝗻 𝗗𝗕𝟮 𝗗𝗮𝘁𝗮𝗯𝗮𝘀𝗲𝘀
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 |
Sunday, August 9, 2026
𝗣𝗼𝘁𝗲𝗻𝘁𝗶𝗮𝗹 𝘇/𝗢𝗦 𝟯.𝟮 𝗗𝗲𝗳𝗲𝗰𝘁: 𝗕𝗮𝘀𝗶𝗰 𝗙𝗼𝗿𝗺𝗮𝘁 𝗦𝗲𝗾𝘂𝗲𝗻𝘁𝗶𝗮𝗹 𝗗𝗮𝘁𝗮𝘀𝗲𝘁𝘀 𝗘𝘅𝗰𝗲𝗲𝗱𝗶𝗻𝗴 𝘁𝗵𝗲 𝟲𝟱𝗞 𝗧𝗿𝗮𝗰𝗸 𝗟𝗶𝗺𝗶𝘁
Friday, August 7, 2026
𝗪𝗵𝘆 𝗗𝗦𝗟𝗜𝗦𝗧(𝟯.𝟰) 𝗥𝗲𝗽𝗼𝗿𝘁𝗲𝗱 𝟲% 𝗮𝗻𝗱 𝟯% 𝗨𝘁𝗶𝗹𝗶𝘇𝗮𝘁𝗶𝗼𝗻 𝗼𝗻 𝗙𝘂𝗹𝗹𝘆 𝗢𝗰𝗰𝘂𝗽𝗶𝗲𝗱 𝗠𝘂𝗹𝘁𝗶-𝗩𝗼𝗹𝘂𝗺𝗲 𝗗𝗮𝘁𝗮𝘀𝗲𝘁𝘀: 𝗔 𝗗𝗙𝗦𝗢𝗥𝗧 𝗜𝗻𝘃𝗲𝘀𝘁𝗶𝗴𝗮𝘁𝗶𝗼𝗻
Tracks % XT Device Dsorg Recfm Lrecl Blksz Created Referred
-------------------------------------------------------------------------------
XY67890.PRODHIST.ORDRARCH.BACK.DATA XXX710
69745 6 16 3390 PS FB 228 27816 2026/08/07 2026/08/07
-------------------------------------------------------------------------------
XY67890.PRODHIST.ORDRARCH.BACK.DATA XXX674
67860 3 11 3390 PS FB 228 27816 2026/08/07 2026/08/07
-------------------------------------------------------------------------------
XY67890.PRODHIST.ORDRARCH.BACK.DATA XXX612
60320 100 14 3390 PS FB 228 27816 2026/08/07 2026/08/07
-------------------------------------------------------------------------------
XY67890.PRODHIST.ORDRARCH.BACK.DATA XXX678
60320 93 11 3390 PS FB 228 27816 2026/08/07 2026/08/07
Data Set Name . . . . : XY67890.PRODHIST.ORDRARCH.BACK.DATA
General Data Current Allocation
Management class . . : XXXACTX Allocated megabytes : 13,701
Storage class . . . : XXXX Allocated extents . : 52
Volume serial . . . : XXX710 +
Device type . . . . : 3390
Data class . . . . . : DCXXXXX
Organization . . . : PS Current Utilization
Record format . . . : FB Used megabytes . . : 6,532
Record length . . . : 228 Used extents . . . : 2
Block size . . . . : 27816
1st extent megabytes: 100
Secondary megabytes : 400 Dates
Data set name type : Creation date . . . : 2026/08/07
Data set encryption : NO Referenced date . . : 2026/08/07
Expiration date . . : ***None***
//SORTIN DD DSN=XY67890.PRODHIST.ORDRARCH.BACK.DATA,DISP=SHR
//SORTOUT DD DUMMY
//SYSOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=COPY
//*
//STEP020 EXEC PGM=SORT
//SORTIN DD DSN=XY67890.PRODHIST.ORDRARCH.BACK.DATA,DISP=SHR,
// VOL=(,,2)
//SORTOUT DD DSN=XY67890.PRODHIST.ORDRARCH.BACK.DATA.SNGLVOL2,
// DISP=(,CATLG),
// SPACE=(1,(200,200),RLSE),AVGREC=M
//SYSOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=COPY
//*
//STEP030 EXEC PGM=SORT
//SORTIN DD DSN=XY67890.PRODHIST.ORDRARCH.BACK.DATA,DISP=SHR,
// VOL=(,,3)
//SORTOUT DD DSN=XY67890.PRODHIST.ORDRARCH.BACK.DATA.SNGLVOL3,
// DISP=(,CATLG),
// SPACE=(1,(200,200),RLSE),AVGREC=M
//SYSOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=COPY
//*
//STEP040 EXEC PGM=SORT
//SORTIN DD DSN=XY67890.PRODHIST.ORDRARCH.BACK.DATA,DISP=SHR,
// VOL=(,,4)
//SORTOUT DD DSN=XY67890.PRODHIST.ORDRARCH.BACK.DATA.SNGLVOL4,
// DISP=(,CATLG),
// SPACE=(1,(200,200),RLSE),AVGREC=M
//SYSOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=COPY
//*
SORTIN : DSNAME=XY67890.PRODHIST.ORDRARCH.BACK.DATA
SORTOUT : DSNAME=NULLFILE
RCD IN 62025525, OUT 62025525
SORTOUT : DSNAME=XY67890.PRODHIST.ORDRARCH.BACK.DATA.SNGLVOL2
RCD IN 45007745, OUT 45007745
SORTOUT : DSNAME=XY67890.PRODHIST.ORDRARCH.BACK.DATA.SNGLVOL3
RCD IN 28449905, OUT 28449905
SORTOUT : DSNAME=XY67890.PRODHIST.ORDRARCH.BACK.DATA.SNGLVOL4
RCD IN 13731825, OUT 13731825
|
Volume |
Record
Count Calculation |
Records
in Volume |
|
XXX710 (Vol 1) |
62,025,525 −
45,007,745 |
17,017,780 |
|
XXX674 (Vol 2) |
45,007,745 −
28,449,905 |
16,557,840 |
|
XXX612 (Vol 3) |
28,449,905 −
13,731,825 |
14,718,080 |
|
XXX678 (Vol 4) |
Remaining Records |
13,731,825 |
|
Volume |
Dataset
Size (Bytes) |
Track
Calculation |
Tracks
Used |
|
XXX710(Vol 1) |
3,880,053,840 |
3,880,053,840 ÷ (2
× 27,816) |
69,745 |
|
XXX674(Vol 2) |
3,775,187,520 |
3,775,187,520 ÷ (2
× 27,816) |
67,860 |
|
XXX612(Vol 3) |
3,355,722,240 |
3,355,722,240 ÷ (2
× 27,816) |
60,320 |
|
XXX678(Vol 4) |
3,130,856,100 |
3,130,856,100 ÷ (2
× 27,816) |
56,278 |
Dataset Size (Bytes) = Records × LRECL
Tracks Used = Dataset Size ÷ (2 × BLKSIZE)
LRECL = 228
BLKSIZE = 27816
|
Volume |
DSLIST Tracks |
DSLIST Used % |
Calculated Tracks Used (DFSORT) |
Comparison |
|
XXX710 |
69,745 |
6% |
69,745 |
Exact
match |
|
XXX674 |
67,860 |
3% |
67,860 |
Exact
match |
|
XXX612 |
60,320 |
100% |
60,320 |
Exact
match |
|
XXX678 | 60,320 |
93% |
56,278 |
Close
match. 60,320 × 93% = 56,098 tracks, which is very close to the calculated
value of 56,278 tracks |
- Volume
XXX710: 69,745 tracks allocated
- Excess
tracks = 69,745 − 65,535 = 4,210
- DSLIST
reported utilization = 4,210 / 69,745 ≈ 6%
- Volume
XXX674: 67,860 tracks allocated
- Excess
tracks = 67,860 − 65,535 = 2,325
- DSLIST
reported utilization = 2,325 / 67,860 ≈ 3%