Chapter 4 Quiz: Dataset Management Deep Dive
Multiple Choice (Questions 1–8)
Question 1. An ICF catalog consists of which two components? a) Master Catalog Structure and Volume Catalog Structure b) Basic Catalog Structure (BCS) and VSAM Volume Dataset (VVDS) c) Index Component and Data Component d) Catalog Management Table and Volume Table of Contents
Question 2. When z/OS resolves a dataset name through the catalog hierarchy, what is the default search order (assuming no JOBCAT/STEPCAT)? a) User catalog → master catalog → VTOC b) Master catalog alias match → user catalog → VTOC c) High-level qualifier alias in master catalog → pointed-to user catalog; if no alias → master catalog d) VTOC → user catalog → master catalog
Question 3. Which SMS construct governs dataset backup frequency and migration eligibility? a) Storage class b) Management class c) Data class d) Storage group
Question 4. For a 3390 device with RECFM=FB and LRECL=80, which block size provides the best track utilization? a) 80 (unblocked) b) 3120 c) 6160 d) 27920
Question 5. A VSAM KSDS defined with SHAREOPTIONS(2 3) allows which of the following? a) Multiple writers and multiple readers within a single system; no cross-system integrity b) One writer and multiple readers within a single system with read integrity; cross-system access with no VSAM-managed integrity c) Exclusive access only — one job at a time within a system; any access cross-system d) Multiple readers only — no concurrent writers at any level
Question 6. What happens when a GDG base defined with NOEMPTY and LIMIT(30) reaches 31 generations? a) Generation 31 fails to allocate b) All 30 existing generations are uncataloged, then generation 31 is created c) The oldest generation (G0001V00) is uncataloged (and scratched if SCRATCH was specified), then generation 31 is created d) The GDG base must be redefined with a higher limit
Question 7. In a multi-step JCL job, relative GDG references like (+1), (0), and (-1) are resolved at which point? a) When each individual step initiates b) At job submission time for the entire job c) When the COBOL OPEN statement executes d) At job initiation time for the entire job
Question 8. Which VSAM dataset type stores records in arrival sequence with no key and no index? a) KSDS b) ESDS c) RRDS d) Linear Data Set (LDS)
True/False (Questions 9–13)
Question 9. If your JCL specifies a SPACE parameter and the assigned data class also specifies SPACE, the values are merged to use the larger of the two.
Question 10. System-determined blocksize (SDB) is activated when you omit BLKSIZE from both your JCL and the data class, or when you explicitly code BLKSIZE=0.
Question 11. VSAM data striping improves random-access performance by distributing records across multiple volumes.
Question 12. When DFSMShsm automatically recalls a migrated dataset during batch job allocation, the job waits for the recall to complete before proceeding.
Question 13. A VSAM KSDS with SHAREOPTIONS(3 3) provides record-level locking managed by the Coupling Facility.
Short Answer (Questions 14–17)
Question 14. Explain the difference between a CI split and a CA split in a VSAM KSDS. Why are CA splits more expensive than CI splits?
Question 15. CNB has a separate user catalog for batch datasets (UCAT.CNB.BATCH) with alias CNB.BATCH. Explain two distinct benefits of this separation compared to putting all datasets in a single user catalog.
Question 16. Describe the purpose of the AMP parameter on a JCL DD statement for a VSAM dataset. Give an example of when you would use it to improve batch performance.
Question 17. Marcus Whitfield says silent catalog corruptions were worse than data center floods. Explain why a corrupted catalog entry might go undetected for weeks and what specific monitoring would catch it earlier.
Applied Scenarios (Questions 18–20)
Question 18. You're reviewing a production JCL procedure and find this allocation:
//OUTFILE DD DSN=APP.PROD.DAILY.EXTRACT(+1),
// DISP=(NEW,CATLG,CATLG),
// SPACE=(TRK,(50,5)),
// DCB=(RECFM=FB,LRECL=200,BLKSIZE=200)
Identify at least four problems with this allocation and explain the production impact of each. Rewrite the DD statement with corrections.
Question 19. Diane Okoye at Pinnacle Health needs to design a VSAM KSDS for a new claims adjudication file. The file will have: - 80-million records at steady state - 65-byte key - Average record size: 1,500 bytes, maximum: 3,800 bytes - Online random access (60% reads, 40% updates) during business hours - Full sequential scan during nightly batch
Recommend: a) Data CI size b) Index CI size c) Free-space percentages (CI and CA) d) Share options (cross-region and cross-system) e) Buffer allocation for online (CICS LSR) and batch (NSR)
Justify each recommendation with reference to the access patterns.
Question 20. Sandra Chen discovers that a critical batch job at Federal Benefits Administration is taking 90 minutes longer than it did three months ago. The job reads a VSAM KSDS sequentially, processes each record, and writes to a GDG generation. Investigation reveals:
- LISTCAT shows 47 extents on the KSDS, up from 5 three months ago
- CI split count has increased from 50,000 to 1.2 million
- CA split count has increased from 200 to 12,000
- The GDG generation is allocated with SPACE=(TRK,(10,2))
- No AMP parameter overrides are specified
Develop a remediation plan with: a) Immediate actions to fix tonight's batch run b) Short-term actions to prevent recurrence this month c) Long-term architecture changes to prevent this class of problem d) Monitoring to detect this before it becomes critical again
Answer Key
1. b) Basic Catalog Structure (BCS) and VSAM Volume Dataset (VVDS). The BCS contains dataset name entries and volume pointers; the VVDS (one per volume) contains VSAM-specific extent and configuration information.
2. c) z/OS extracts the high-level qualifier, searches for a matching alias in the master catalog, and if found, searches the pointed-to user catalog. If no alias matches, the master catalog is searched directly.
3. b) Management class. Storage class governs performance, data class governs data attributes, and storage groups govern volume placement.
4. d) 27920. This yields 2 blocks per track with ~98.4% utilization, compared to 9.3% for unblocked (BLKSIZE=80).
5. b) SHAREOPTIONS(2) means one writer and multiple concurrent readers with read integrity within a single system. SHAREOPTIONS(3) for cross-system means no VSAM-managed integrity — the application must handle serialization.
6. c) With NOEMPTY, only the oldest generation is rolled off. EMPTY would uncatalog all existing generations — a destructive operation rarely desired.
7. d) GDG relative references are resolved at job initiation time for the entire job. All steps in the job see a consistent view of the generation numbers.
8. b) ESDS — Entry-Sequenced Data Set. Records are appended in arrival order and accessed by RBA or sequentially.
9. False. The JCL SPACE parameter completely overrides the data class SPACE — there is no merging. If your JCL says TRK and the data class says CYL, you get TRK.
10. True. SDB is engaged when BLKSIZE is not specified anywhere in the allocation chain, or when explicitly coded as BLKSIZE=0.
11. False. VSAM striping primarily improves sequential throughput by enabling parallel I/O across multiple volumes. Random-access performance may not benefit and recovery is more complex.
12. True. The job waits (allocation is held) until HSM completes the recall. For ML2 (tape), this can take several minutes.
13. False. SHAREOPTIONS(3 3) provides no VSAM-managed integrity at all — it's the "no locking" option. Record-level sharing with Coupling Facility locking is provided by VSAM RLS (Record-Level Sharing), which is a separate feature.
14. A CI split occurs when a record is inserted into a full CI — VSAM moves approximately half the records to a new CI within the same CA and inserts the new record. A CA split occurs when a CI split is needed but the CA has no free CIs — VSAM must allocate a new CA and move half the CIs from the old CA. CA splits are more expensive because they involve moving much more data (an entire half-CA rather than a half-CI), require space allocation, and may cause the dataset to extend to a new extent.
15. (1) Reduced contention: The nightly batch cycle creates and accesses thousands of datasets, generating heavy catalog I/O. Separating batch into its own catalog prevents this serialization from affecting online CICS regions that need fast catalog lookups for their VSAM files. (2) Isolation: If the batch catalog is corrupted or needs recovery, production online datasets in their separate catalog are unaffected, maintaining availability for customer-facing applications.
16. The AMP (Access Method Parameter) override provides VSAM buffer and processing options at the JCL level, overriding defaults. Example: AMP=('BUFNI=10,BUFND=30') increases data buffers for a batch sequential read to allow read-ahead of an entire CA at a time, significantly reducing physical I/O for sequential processing.
17. A corrupted catalog entry might still point to the correct volume and dataset, so normal I/O continues to work — the corruption might be in metadata like statistics, timestamps, or SMS class references that aren't validated on every access. It would only surface when a specific catalog operation (like DEFINE, DELETE, ALTER, or LISTCAT) tries to process the corrupted entry. Monitoring: Run IDCAMS DIAGNOSE or VERIFY against catalogs daily; review CATALOG ADDRESS SPACE (CAS) error messages in SYSLOG; use OAM catalog health checks; run EXAMINE on VSAM catalog datasets to detect structural corruption.
18. Problems:
(1) DISP=(NEW,CATLG,CATLG) — abnormal disposition is CATLG, meaning a partial/failed dataset is cataloged and left on the volume. Should be DELETE for abnormal to avoid leaving corrupt data. Impact: Failed job leaves partial generation that subsequent jobs may read as valid.
(2) SPACE=(TRK,(50,5)) — track allocation with small primary and secondary. Will require many secondary extents for a production extract, causing fragmentation and potential B37/E37 abends. Impact: Potential job failure from space exhaustion.
(3) BLKSIZE=200 — unblocked (BLKSIZE equals LRECL). For LRECL=200, this gives roughly 15% track utilization. Impact: 6-7x more I/O than necessary, dramatically longer run time.
(4) No RLSE — unused space is not released after the write completes. Impact: Wasted DASD space.
Corrected:
//OUTFILE DD DSN=APP.PROD.DAILY.EXTRACT(+1),
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(100,20),RLSE),
// DCB=(RECFM=FB,LRECL=200,BLKSIZE=27800)
19. a) Data CI: 4096 bytes. With avg record 1,500 bytes and max 3,800 bytes, a 4096 CI holds 2 average records per CI. The 60% random reads favor smaller CIs (less data transferred per random read). Larger CIs (8192) would help the nightly sequential scan but hurt the dominant online access pattern. b) Index CI: 2048 bytes. Keeps the index compact; more index records fit in buffer, improving look-aside hit ratio for random access. c) Free space: CI=15%, CA=20%. The 40% update rate is high, and while updates in place don't cause splits, any record-size growth could. The 15% CI free space absorbs record growth. 20% CA free space provides room for CI splits from inserts without triggering CA splits. d) Share options: SHAREOPTIONS(2 3). Cross-region=2 allows CICS (read/update through CICS serialization) and batch (sequential read) concurrently. Cross-system=3 with application-level serialization (or upgrade to VSAM RLS if cross-LPAR sharing is needed). e) Online (CICS LSR): Part of a shared buffer pool, typically 200+ data buffers and 50+ index buffers shared across all VSAM files. Batch (NSR): BUFND=30 (read-ahead for sequential scan of data CIs in one CA), BUFNI=10 (keep index set in memory).
20.
a) Immediate: Add AMP override to tonight's JCL: AMP=('BUFND=30,BUFNI=10') to increase buffers and improve sequential throughput despite fragmentation. Increase GDG generation space to SPACE=(CYL,(200,50),RLSE).
b) Short-term: Schedule a VSAM reorganization this weekend — REPRO to sequential, DELETE/DEFINE the cluster with appropriate FREESPACE, REPRO back. Increase free space from current levels to CI=15%, CA=20% to accommodate the insert rate causing splits.
c) Long-term: Implement SMS data class with correct VSAM parameters (CI size, free space) so they can't be overridden. Add VSAM reorganization to the monthly maintenance calendar (or trigger it based on split count thresholds). Establish extent-count monitoring with automated alerts.
d) Monitoring: Weekly automated LISTCAT report on all production VSAM datasets, flagging: extent count > 10, CI split increase > 100,000/week, CA split increase > 500/week. SMF Type 64 records for buffer hit ratio degradation. VSAM RLS statistics if applicable.