z/OS DFSMS Using Data Sets
Previous topic |
Next topic
|
Contents
|
Contact z/OS
|
Library
|
PDF
Contents (exploded view)
z/OS DFSMS Using Data Sets
SC23-6855-00
Abstract for DFSMS Using Data Sets
Changes for z/OS V2R1, as updated March 2014
Summary of changes for z/OS Version 2 Release 1 (V2R1) as updated December 2013
z/OS Version 2 Release 1 summary of changes
All Data Sets
Working with Data Sets
Data Storage and Management
System-Managed Data Sets
Distributed File Manager
Access Methods
Basic Direct Access Method
Basic Partitioned Access Method
Basic Sequential Access Method
Data-in-Virtual (DIV)
Indexed Sequential Access Method
Object Access Method
Queued Sequential Access Method
Virtual Storage Access Method
Access to z/OS UNIX Files
Selection of an Access Method
Direct Access Storage Device (DASD) Volumes
DASD Labels
Track Format
Track Overflow
VSAM Record Addressing
Actual and Relative Addressing with Non-VSAM Access Methods
Actual Addresses
Relative Addresses
Magnetic Tape Volumes
Using Magnetic Tape Labels
Specifying the File Sequence Number
Example of Creating a Tape Data Set with a File Sequence Number Greater than 9999
Example of Creating a Tape Data Set Using Any File Sequence Number
Identifying Unlabeled Tapes
Using Tape Marks
Data Management Macros
Data Set Processing
Allocating Data Sets
Access Method Services
ALLOCATE Command
Dynamic Allocation
JCL
Processing Data Sets through Programs
Using Access Methods
Using Addressing Modes
VSAM Addressing Modes
Non-VSAM Addressing Modes
Using Hiperspace and Hiperbatch
Processing VSAM Data Sets
Processing PDSs, PDSEs, and UNIX Directories
Processing Sequential Data Sets and Members of PDSEs and PDSs
BSAM Processing
QSAM Processing
Processing UNIX Files with an Access Method
Processing EXCP, EXCPVR, and XDAP Macros
Distributed Data Management (DDM) Attributes
Virtual I/O for Temporary Data Sets
Data Set Names
Catalogs and Volume Table of Contents
VTOC
Catalogs
Data Set Names and Metadata
Security of Data Set Names
Using the Storage Management Subsystem
Using Automatic Class Selection Routines
Allocating Data Sets
Allocating Data Sets with JCL
Allocating an HFS Data Set
Allocating System-Managed Data Sets
Allocating Non-System-Managed Data Sets
Allocating System-Managed Data Sets with the Access Method Services ALLOCATE Command
Allocating a Data Set Using Class Specifications
Allocating a VSAM Data Set Using Class Specifications
Allocating a System-Managed Non-VSAM Data Set
Allocating a PDSE
Allocating a New Non-System-Managed Data Set
Allocating Data Sets with the TSO ALLOCATE Command
Allocating Data Sets with Dynamic Allocation
Allocating Space on Direct Access Volumes
Specification of Space Requirements
Blocks
Average Record Length
Tracks or Cylinders
Absolute Track
Additional Space-Allocation Options
Maximum Data Set Size
Maximum Size on One Volume
Maximum Number of Volumes
Maximum VSAM Data Set Size
Minimum data set size
Primary and Secondary Space Allocation without the Guaranteed Space Attribute
Multivolume VSAM Data Sets
Multivolume Non-VSAM Data Sets
Extended-Format Data Sets
Allocation of Data Sets with the Guaranteed Space Attribute
Guaranteed Space with DISP=NEW or MOD
Guaranteed Space for VSAM
Guaranteed Space with DISP=OLD or SHR
Guaranteed Space with Extended-Format Data Sets
Guaranteed Space Example
Allocation of Data Sets with the Space Constraint Relief Attributes
Examples of Dynamic Volume Count When Defining a Data Set
Examples of Dynamic Volume Count When Allocating an Existing Data Set
Extension to Another DASD Volume
Multiple Volume Considerations for Sequential Data Sets
Extended Address Volumes
Additional Information on Space Allocation
Backing Up and Recovering Data Sets
Using REPRO for Backup and Recovery
Using EXPORT and IMPORT for Backup and Recovery of VSAM Data Sets
Structure of an Exported Data Set
EXPORT and IMPORT Commands
Writing a Program for Backup and Recovery
Using Concurrent Copy for Backup and Recovery
Updating a Data Set After Recovery
Synchronizing Catalog and VSAM Data Set Information During Recovery
Handling an Abnormal Termination
Using VERIFY to Process Improperly Closed Data Sets
Recovering from Errors Due to an Improperly Closed VSAM Data Set
Using VERIFY with Catalogs
CICS VSAM Recovery
Protecting Data Sets
z/OS Security Server (RACF)
RACF Protection for VSAM Data Sets
Generic and Discrete Profiles for VSAM Data Sets
RACF Protection for Non-VSAM Data Sets
Hiding Data Set Names
Data Set Password Protection
Assigning a Password
Protecting a Data Set When You Define It
Handling Incorrect Passwords
Entering a Record in the PASSWORD Data Set
User-Security-Verification Routine
Erasure of Residual Data
Erasing DASD Data
System Erasure of Data
RAMAC Virtual Array
Erasing Tape Data
Authorized Program Facility and Access Method Services
Access Method Services Cryptographic Option
Data Enciphering and Deciphering
Encryption of VSAM Data Sets
Data Encryption Keys
Secondary Key-Encrypting Keys
REPRO ENCIPHER and DECIPHER on ICSF
VSAM Access to Data Sets and UNIX Files
Organizing VSAM Data Sets
VSAM Data Formats
Data Set Size
Control Intervals
Control Information Fields
Compressed Control Information Field
Control Areas
Spanned Records
Selection of VSAM Data Set Types
Entry-Sequenced Data Sets
Simulated VSAM Access to UNIX files
Record Processing for UNIX Files
Restrictions on UNIX Files
Services and Utilities for UNIX Files
Key-Sequenced Data Sets
Free Space
Considerations for Increasing Keys and Space
Insertion of a Logical Record in a CI
Prime Index
Key Compression
Control Interval Splits
Linear Data Sets
Fixed-Length Relative-Record Data Sets
Variable-Length Relative-Record Data Sets
Summary of VSAM Data Set Types
Extended-Format VSAM Data Sets
Restrictions on Defining Extended-Format Data Sets
VSAM Data Striping
Layering Concept for Data Striping
Other Considerations for Data Striping
Space Allocation for Striped VSAM Data Sets
Secondary Allocation Quantity of Zero
Increased Number of Extents
Allocation Restrictions
Control Area Size Calculation
Processing Considerations for Striped Data Sets
Compressed Data
Access to Records in a VSAM Data Set
Access to Entry-Sequenced Data Sets
Access to Key-Sequenced Data Sets
Keyed-Sequential Access
Keyed-Direct Access
Skip-Sequential Access
Addressed Access
Access to Linear Data Sets
Access to Fixed-Length Relative-Record Data Sets
Keyed-Sequential Access
Skip-Sequential Access
Keyed-Direct Access
Access to Variable-Length Relative-Record Data Sets
Keyed-Sequential Access
Skip-Sequential Access
Keyed-Direct Access
Access to Records through Alternate Indexes
Alternate Index Structure for a Key-Sequenced Data Set
Alternate Index Structure for an Entry-Sequenced Data Set
Building of an Alternate Index
Automatic Upgrade of Alternate Indexes
Data Compression
Defining VSAM Data Sets
Using Cluster Names for Data and Index Components
Defining a Data Set with Access Method Services
Naming a Cluster
Duplicate Data Set Names
Temporary Data Set Names
Specifying Cluster Information
Using Access Method Services Parameters
Descriptive Parameters
Performance Parameters
Security and Integrity Parameters
Allocating Space for VSAM Data Sets
Partial Release
Small Data Sets
Multiple Cylinder Data Sets
Linear Data Sets
Using VSAM Extents
VSAM Extent Consolidation
Calculating Space for the Data Component of a KSDS
Calculating Space for the Index Component
Using ALTER to Modify Attributes of a Component
Using ALTER to Rename Data Sets
Defining a Data Set with JCL
Loading a VSAM Data Set
Using REPRO to Copy a VSAM Data Set
Using a Program to Load a Data Set
Reusing a VSAM Data Set as a Work File
Copying and Merging Data Sets
Defining Alternate Indexes
Naming an Alternate Index
Specifying Alternate Index Information
Specifying Descriptive Information for an Alternate Index
Specifying RECORDSIZE for an Alternate Index with Nonunique Keys
Building an Alternate Index
Maintaining Alternate Indexes
Alternate Index Backups
Defining a Path
Defining a Page Space
Checking for Problems in Catalogs and Data Sets
Listing Catalog Entries
Printing the Contents of Data Sets
Deleting Data Sets
Defining and Manipulating VSAM Data Sets: Examples
Example of Defining a VSAM Data Set
Examples of Defining Temporary VSAM Data Sets
Example 1: Defining a Temporary VSAM Data Set Using ALLOCATE
Example 2: Creating a Temporary Data Set with Default Parameter Values
Examples of Defining Alternate Indexes and Paths
JCL Statements
Commands
Processing VSAM Data Sets
Creating an Access Method Control Block
Creating an Exit List
Opening a Data Set
Creating a Request Parameter List
Manipulating the Contents of Control Blocks
Generating a Control Block
Testing the Contents of ACB, EXLST, and RPL Fields
Modifying the Contents of an ACB, EXLST, or RPL
Displaying the Contents of ACB, EXLST, and RPL Fields
Requesting Access to a Data Set
Inserting and Adding Records
Insertions into an Entry-Sequenced Data Set
Insertions into a Key-Sequenced Data Set
Insertions into a Fixed-Length Relative-Record Data Set
Insertions into a Variable-Length Relative-Record Data Set
Insertions into a Linear Data Set
Retrieving Records
Sequential Retrieval
POINT Macro for Positioning
Direct Retrieval
Updating Records
Changing Record Length
Processing the Data Component of a Key-Sequenced Data Set
Deleting Records
Deferring and Forcing Buffer Writing
Retaining and Positioning Data Buffers
Processing Multiple Strings
Making Concurrent Requests
Using a Path to Access Records
Making Asynchronous Requests
Specifying Asynchronous Mode
Checking for Completion of Asynchronous Requests
Ending a Request
Closing Data Sets
Operating in SRB or Cross-Memory Mode
Using VSAM Macros in Programs
Optimizing VSAM Performance
Optimizing Control Interval Size
Control Interval Size Limitations
Physical Block Size and Track Capacity
Track Allocations versus Cylinder Allocations
Data Control Interval Size
Index Control Interval Size
How VSAM Adjusts Control Interval Size
Optimizing Control Area Size
Advantages of a Large Control Area Size
Disadvantages of a Large Control Area Size
Optimizing Free Space Distribution
Selecting the Optimal Percentage of Free Space
Altering the Free Space Specification When Loading a Data Set
Reclaiming CA Space for a KSDS
Requirements for CA Reclaim Eligibility
Enabling and Disabling CA Reclaim
PARMLIB member IGDSMSxx
SETSMS command
ISMF
IDCAMS ALTER
Tip
Determining I/O Buffer Space for Nonshared Resource
Obtaining Buffers Above 16 MB
Virtual Storage Constraint Relief
Dynamic Allocation Options for Reducing Storage Usage
Tuning for System-Managed Buffering
Processing Techniques
Internal Processing Techniques
Processing Guidelines and Restrictions
General Considerations for the Use of SMB
Allocating Buffers for Concurrent Data Set Positioning
Allocating Buffers for Direct Access
Data Buffers for Direct Access
Index Buffers for Direct Access
Example of Buffer Allocation for Direct Access
Allocating Buffers for Sequential Access
Allocating Buffers for a Path
Acquiring Buffers
Using Index Options
Increasing Virtual Storage for Index Set Records
Avoiding Control Area Splits
Putting the Index and Data on Separate Volumes
Obtaining Diagnostic Information
Migrating from the Mass Storage System
Using Hiperbatch
Processing Control Intervals
Access to a Control Interval
Structure of Control Information
CIDF—Control Interval Definition Field
RDF—Record Definition Field
Control field values for nonspanned key-sequenced, entry-sequenced, and variable-length relative record data sets
Control field values for spanned key-sequenced and entry-sequenced data sets
Control Field Values for Fixed-Length Relative-Record Data Sets
User Buffering
Improved Control Interval Access
Opening an Object for Improved Control Interval Access
Processing a Data Set with Improved Control Interval Access
Fixing Control Blocks and Buffers in Real Storage
Control Blocks in Common (CBIC) Option
Sharing VSAM Data Sets
Subtask Sharing
Building a Single Control Block Structure
Resolving Exclusive Control Conflicts
Preventing Deadlock in Exclusive Control of Shared Resources
Data Set Name Sharing
Consistent Processing Options
Shared Subtasks
Cross-Region Sharing
Cross-Region Share Options
Read Integrity During Cross-Region Sharing
Invalidating Index Buffers
Invalidating Data Buffers
Write Integrity During Cross-Region Sharing
Cross-System Sharing
Control Block Update Facility (CBUF)
Considerations for CBUF Processing
Checkpoints for Shared Data Sets
Techniques of Data Sharing
Cross-Region Sharing
Cross-System Sharing
User Access to VSAM Shared Information
Sharing Resources Among VSAM Data Sets
Provision of a Resource Pool
Building a Resource Pool: BLDVRP
Using Hiperspace Buffers with LSR
Deciding the Size of a Virtual Resource Pool
Displaying Information about an Unopened Data Set
Displaying Statistics about a Buffer Pool
Connecting a Data Set to a Resource Pool: OPEN
Deleting a Resource Pool Using the DLVRP Macro
Management of I/O Buffers for Shared Resources
Deferring Write Requests
Relating Deferred Requests by Transaction ID
Writing Buffers Whose Writing is Deferred: WRTBFR
Handling Exits to Physical Error Analysis Routines
Using the JRNAD Exit with Shared Resources
Accessing a Control Interval with Shared Resources
Locating an RBA in a Buffer Pool: SCHBFR
Marking a Buffer for Output: MRKBFR
Restrictions and Guidelines for Shared Resources
Using VSAM Record-Level Sharing
Controlling Access to VSAM Data Sets
Accessing Data Sets Using DFSMStvs and VSAM Record-Level Sharing
Record-Level Sharing CF Caching
VSAM Record-Level Sharing Multiple Lock Structure
Using VSAM RLS with CICS
Recoverable and Nonrecoverable Data Sets
CICS Transactional Recovery for VSAM Recoverable Data Sets
Non-CICS Use of VSAM RLS
Using 64-Bit Addressable Data Buffers
Setting a Data Class for 64-bit data buffering
Setting IGDSMSxx PARMLIB values for VSAM RLS data buffering
Read Sharing of Recoverable Data Sets
Read-Sharing Integrity across KSDS CI and CA Splits
Read and Write Sharing of Nonrecoverable Data Sets
Using Non-RLS Access to VSAM Data Sets
RLS Access Rules
Comparing RLS Access and Non-RLS Access
Share Options
Locking
Retaining locks
Supporting non-RLS access while retained locks exist
VSAM Options Not Used by RLS
Requesting VSAM RLS Run-Mode
Using VSAM RLS Read Integrity Options
Using VSAM RLS with ESDS
Specifying Read Integrity
Specifying a Timeout Value for Lock Requests
Index Trap
Checking VSAM Key-Sequenced Data Set Clusters for Structural Errors
EXAMINE Command
Types of Data Sets
EXAMINE Users
How to Run EXAMINE
Deciding to Run INDEXTEST, DATATEST, or Both Tests
Skipping DATATEST on Major INDEXTEST Errors
Examining a User Catalog
Understanding Message Hierarchy
Controlling Message Printout
Samples of Output from EXAMINE Runs
INDEXTEST and DATATEST Tests of an Error-Free Data Set
INDEXTEST and DATATEST Tests of a Data Set with a Structural Error
INDEXTEST and DATATEST Tests of a Data Set with a Duplicate Key Error
Coding VSAM User-Written Exit Routines
Guidelines for Coding Exit Routines
Programming Guidelines
Multiple Request Parameter Lists or Data Sets
Return to a Main Program
IGW8PNRU Routine for Batch Override
Register Contents
Programming Considerations
EODAD Exit Routine to Process End of Data
Register Contents
Programming Considerations
EXCEPTIONEXIT Exit Routine
Register Contents
Programming Considerations
JRNAD Exit Routine to Journalize Transactions
Register Contents
Programming Considerations
Journalizing Transactions
RBA Changes
Control Interval Splits
Parameter List
LERAD Exit Routine to Analyze Logical Errors
Register Contents
Programming Considerations
RLSWAIT Exit Routine
Register Contents
Request Environment
SYNAD Exit Routine to Analyze Physical Errors
Register Contents
Programming Considerations
Example of a SYNAD User-Written Exit Routine
UPAD Exit Routine for User Processing
Register Contents
Programming Considerations
User-Security-Verification Routine
Using 31-Bit Addressing Mode with VSAM
VSAM Options
Using Job Control Language for VSAM
Using JCL Statements and Keywords
Data Set Name
Disposition
Creating VSAM Data Sets with JCL
Temporary VSAM Data Sets
Data Set Names
Allocation
Restrictions for Temporary VSAM Data Sets
Examples Using JCL to Allocate VSAM Data Sets
Example 1: Allocate a Key-Sequenced Data Set
Example 2: Allocate a System-Managed Key-Sequenced Data Set Using Keywords
Example 3: Allocate a VSAM Data Set Using Keyword Defaults
Example 4: Allocate a Temporary VSAM Data Set
Example 5: Allocate a Temporary VSAM Data Set Taking All Defaults
Retrieving an Existing VSAM Data Set
Migration Consideration
Keywords Used to Process VSAM Data Sets
Processing Indexes of Key-Sequenced Data Sets
Access to a Key-Sequenced Data Set Index
Access to an Index with GETIX and PUTIX
Access to the Index Component Alone
Prime Index
Index Levels
VSAM index trap
Format of an Index Record
Header Portion
Free Control Interval Entry Portion
Index Entry Portion
Key Compression
Index Update Following a Control Interval Split
Index Entries for a Spanned Record
Non-VSAM Access to Data Sets and UNIX Files
Selecting Record Formats for Non-VSAM Data Sets
Format Selection
Fixed-Length Record Formats
Standard Format
Restrictions
Variable-Length Record Formats
Format-V Records
Block Descriptor Word (BDW)
Record Descriptor Word (RDW)
Spanned Format-VS Records (Sequential Access Method)
Restrictions in Processing Spanned Records with QSAM
Segment Descriptor Word
Records Longer than 32Â 756 Bytes
Null Segments
Spanned Format-V Records (Basic Direct Access Method)
Undefined-Length Record Format
ISO/ANSI Tapes
Character Data Conversion
Format-F Records
Format-D Records
ISO/ANSI Format-DS and Format-DBS Records
Converting the Segment Descriptor Word
Processing Records Longer than 32â 760 Bytes
Processing DS/DBS Tapes with QSAM
Processing DS/DBS Tapes with BSAM
Format-U Records
Record Format—Device Type Considerations
Using Optional Control Characters
Using Direct Access Storage Devices (DASD)
Using Magnetic Tape
Using a Printer
Table Reference Character
Record Formats
Using a Card Reader and Punch
Using a Paper Tape Reader
Specifying and Initializing Data Control Blocks
Processing Sequential and Partitioned Data Sets
Using OPEN to Prepare a Data Set for Processing
Filling in the DCB
Specifying the Forms of Macros, Buffering Requirements, and Addresses
Coding Processing Methods
Selecting Data Set Options
Block Size (BLKSIZE)
Large Block Interface (LBI)
System-Determined Block Size
DASD Data Sets
Tape Data Sets
Data Set Organization (DSORG)
Key Length (KEYLEN)
Record Length (LRECL)
Record Format (RECFM)
Write Validity Check Option (OPTCD=W)
DD Statement Parameters
Changing and Testing the DCB and DCBE
Using the DCBD Macro
Changing an Address in the DCB
Using the IHADCBE Macro
Using CLOSE to End the Processing of a Data Set
Issuing the CHECK Macro
Closing a Data Set Temporarily
Using CLOSE TYPE=T with Sequential Data Sets
Releasing Space
Managing Buffer Pools When Closing Data Sets
Opening and Closing Data Sets: Considerations
Parameter Lists with 31-Bit Addresses
Open and Close of Multiple Data Sets at the Same Time
Factors to Consider When Allocating Direct Access Data Sets
Guidelines for Opening and Closing Data Sets
Open/Close/EOV Errors
Installation Exits
Positioning Volumes
Releasing Data Sets and Volumes
Processing End-of-Volume
Positioning During End-of-Volume
Using the OPEN Macro to Position Tape Volumes
Using the DISP Parameter to Position Volumes
Forcing End-of-Volume
Managing SAM Buffer Space
Constructing a Buffer Pool
Building a Buffer Pool
Building a Buffer Pool and a Record Area
Getting a Buffer Pool
Constructing a Buffer Pool Automatically
Freeing a Buffer Pool
Constructing a Buffer Pool: Examples
Controlling Buffers
Queued Access Method
Basic Access Method
QSAM in an Application
Exchange Buffering
Choosing Buffering Techniques and GET/PUT Processing Modes
Using Buffering Macros with Queued Access Method
RELSE—Release an Input Buffer
TRUNC—Truncate an Output Buffer
Using Buffering Macros with Basic Access Method
GETBUF—Get a Buffer from a Pool
FREEBUF—Return a Buffer to a Pool
Accessing Records
Accessing Data with READ and WRITE
Using the Data Event Control Block (DECB)
Grouping Related Control Blocks in a Paging Environment
Using Overlapped I/O with BSAM
Reading a Block
Writing a Block
Ensuring I/O Initiation with the TRUNC Macro
Testing Completion of a Read or Write Operation
Waiting for Completion of a Read or Write Operation
Handling Exceptional Conditions on Tape
Accessing Data with GET and PUT
GET—Retrieve a Record
PUT—Write a Record
PUTX—Write an Updated Record
PDAB—Parallel Input Processing (QSAM Only)
Using Parallel Data Access Blocks (PDAB)
Testing for Parallel Processing
Analyzing I/O Errors
SYNADAF—Perform SYNAD Analysis Function
SYNADRLS—Release SYNADAF Message and Save Areas
Device Support Facilities (ICKDSF): Diagnosing I/O Problems
Limitations with Using SRB or Cross-Memory Mode
Sharing Non-VSAM Data Sets
Enhanced Data Integrity for Shared Sequential Data Sets
Setting Up the Enhanced Data Integrity Function
Synchronizing the Enhanced Data Integrity Function on Multiple Systems
Using the START IFGEDI Command
Bypassing the Enhanced Data Integrity Function for Applications
Diagnosing Data Integrity Warnings and Violations
Data Integrity Messages
Data Integrity Violations
PDSEs
Direct Data Sets (BDAM)
Factors to Consider When Opening and Closing Data Sets
Control of Checkpoint Data Sets on Shared DASD Volumes
System Use of Search Direct for Input Operations
Spooling and Scheduling Data Sets
Job Entry Subsystem
SYSIN Data Set
SYSOUT Data Set
Processing Sequential Data Sets
Creating a Sequential Data Set
Types of DASD Sequential Data Sets
Retrieving a Sequential Data Set
Concatenating Data Sets Sequentially
Concatenating Like Data Sets
Rules for a Sequential Like Data Set
OPEN/EOV Exit Processing
Persistence of DCB and DCBE Fields
SMS-Managed Data Sets with Like Concatenation
BSAM Block Size with Like Concatenation
Compatible Characteristics
BSAM OPEN Processing Before First Data Set
Example of BSAM Like Concatenation
Concatenating Unlike Data Sets
Modifying Sequential Data Sets
Updating in Place
Using Overlapped Operations
Extending a Data Set
Multivolume DASD Data Set
Extended-Format Sequential Data Sets
Achieving Device Independence
Device-Dependent Macros
DCB and DCBE Subparameters
Improving Performance for Sequential Data Sets
Limitations on Using Chained Scheduling with Non-DASD Data Sets
DASD and Tape Performance
Let the System Select QSAM BUFNO or BSAM or BPAM NCP
Using MULTACC for improved BSAM or BPAM performance
Using fixed pages for BSAM and BPAM
Chained Scheduling
Determining the Length of a Block when Reading with BSAM, BPAM, or BDAM
Writing a Short Format-FB Block with BSAM or BPAM
Using Hiperbatch
Processing Extended-Format Sequential Data Sets
Characteristics of Extended-Format Data Sets
Allocating Extended-Format Data Sets
Allocating Compressed-Format Data Sets
Types of Compression
Characteristics of Compressed Format Data Sets
Requirements for Compression
Opening and Closing Extended-Format Data Sets
Reading, Writing, and Updating Extended-Format Data Sets Using BSAM and QSAM
Concatenating Extended-Format Data Sets with Other Data Sets
Extending Striped Sequential Data Sets
Migrating to Extended-Format Data Sets
Changing Existing BSAM and QSAM Applications
Calculating DASD Space Used
Processing Large Format Data Sets
Characteristics of Large Format Data Sets
Allocating Large Format Data Sets
Opening and Closing Large Format Data Sets
Migrating to Large Format Data Sets
Changing Existing BSAM, QSAM, and EXCP Applications
Calculating DASD Space Used
Processing a Partitioned Data Set (PDS)
Structure of a PDS
PDS Directory
Allocating Space for a PDS
Calculating Space
Allocating Space with SPACE and AVGREC
Creating a PDS
Creating a PDS Member with BSAM or QSAM
Creating Nonstandard PDS Member Names
Converting PDSs
Copying a PDS or Member to Another Data Set
Adding Members
Processing a Member of a PDS
BLDL—Construct a Directory Entry List
DESERV
FUNC=GET
Input by Name List
Input by BLDL Directory Entry (PDSDE)
FUNC=GET_ALL
FIND—Position to the Starting Address of a Member
STOW—Update the Directory
Retrieving a Member of a PDS
Modifying a PDS
Updating in Place
With BSAM and BPAM
With Overlapped Operations
With QSAM
Rewriting a Member
Concatenating PDSs
Sequential Concatenation
Partitioned Concatenation
Reading a PDS Directory Sequentially
Processing a Partitioned Data Set Extended (PDSE)
Advantages of PDSEs
PDSE and PDS Similarities
PDSE and PDS Differences
Structure of a PDSE
PDSE Logical Block Size
Reuse of Space
Directory Structure
Relative Track Addresses (TTR)
Processing PDSE Records
PDSE member size limits
Using BLKSIZE with PDSEs
Using KEYLEN with PDSEs
Reblocking PDSE Records
Processing Short Blocks
Processing SAM Null Segments
Allocating Space for a PDSE
PDSE Space Considerations
Use of Noncontiguous Space
Integrated Directory
Full Block Allocation
PDSE Unused Space
Frequency of Data Set Compression
Extent Growth
Logical Block Size
Physical Block Size (Page Size)
Free Space
Fragmentation
Summary of PDSE Storage Requirements
Defining a PDSE
PDSE version
PDSE Member Generations
Creating a PDSE Member
Creating a PDSE Member with BSAM or QSAM
Creating Nonstandard PDSE Member Names
Adding or Replacing PDSE Members Serially
Adding or Replacing Multiple PDSE Members Concurrently
Copying a PDSE or Member to Another Data Set
Processing a Member of a PDSE
Establishing Connections to Members
Using the BLDL Macro to Construct a Directory Entry List
Using the BSP Macro to Backspace a Physical Record
Using the Directory Entry Services
FUNC=GET
Input by Name List
Input by BLDL Directory Entry (PDSDE)
FUNC=GET_ALL
FUNC=GET_ALL_G
FUNC=GET_G
FUNC=GET_NAMES
FUNC=RELEASE
FUNC=UPDATE
Using the FIND Macro to Position to the Beginning of a Member
Using ISITMGD to Determine Whether the Data Set Is System Managed
Using the NOTE Macro to Provide Relative Position
Using the POINT Macro to Position to a Block
Switching between Members
Using the STOW Macro to Update the Directory
Retrieving a Member of a PDSE
Sharing PDSEs
Sharing within a Computer System
Sharing Violations
Multiple System Sharing of PDSEs
Buffered Data Invalidation—VARY OFFLINE
DFP Share Attributes Callable Service (IGWLSHR)
Choosing Volumes for PDSEs in a Sysplex
Normal or Extended PDSE Sharing
Sharing PDSEs in a Single-System Environment
Specifying Normal PDSE Sharing in a Multiple-System Environment
Specifying Extended PDSE Sharing in a Multiple-System Environment
Modifying a Member of a PDSE
Updating in Place
With BSAM and BPAM
With Overlapped Operations
With QSAM
Extending a PDSE Member
Deleting a PDSE Member
Renaming a PDSE Member
Reading a PDSE Directory
Concatenating PDSEs
Sequential Concatenation
Partitioned Concatenation
Copying PDSEs with Generations
Converting PDSs to PDSEs and Back
PDSE to PDS Conversion
Restrictions on Converting PDSEs
Improving Performance
Recovering Space in Fragmented PDSEs
PDSE Address Spaces
Planning to use the restartable PDSE address space
Setting up the SMSPDSE1 address space
PDSE Address Space Tuning
PDSE Diagnostics
Processing z/OS UNIX Files
Accessing the z/OS UNIX File System
Characteristics of UNIX Directories and Files
Access Methods Used
Using HFS Data Sets
Creating HFS Data Sets
Creating Additional Directories
Creating z/OS UNIX Files
Writing a UNIX File with BSAM or QSAM
Record Processing Considerations
Processing Restrictions
Creating a UNIX File Using JCL
JCL Parameters for UNIX Files
Creating a Macro Library in a UNIX Directory
Managing UNIX Files and Directories
Specifying Security Settings for UNIX Files and Directories
Permissions for UNIX Files and Directories
RACF Authorization for UNIX Files
Editing UNIX Files
Using ISHELL to Manage UNIX Files and Directories
Copying UNIX Files or Directories
Copying a PDS to a UNIX Directory or a UNIX Directory to a PDS
Using the OPUT Command to Copy Members from a PDS or PDSE to a UNIX File
Using the OPUTX Command to Copy Members from a PDS or PDSE to a UNIX Directory or File
Using the OCOPY Command to Copy a PDS, PDSE, or UNIX Member to Another Member
Using the OGET Command to Copy a UNIX File to a z/OS Data Set
Using the OGETX Command to Copy a UNIX Directory to a PDS or PDSE
Services and Utilities for UNIX Files
Services and Utilities Cannot be Used with UNIX Files
z/OS UNIX Signals
z/OS UNIX Fork Service
SMF Records
Reading UNIX Files Using BPAM
Using Macros for UNIX Files
BLDL—Constructing a Directory Entry List
CHECK—Checking for I/O Completion
CLOSE—to Close the DCB
FIND—Positioning to the Starting Address of a File
READ—Reading a UNIX File
STOW DISC—Closing a UNIX File
Concatenating UNIX Files and Directories
Sequential Concatenation
Partitioned Concatenation
Processing Generation Data Groups
Data Set Organization of Generation Data Sets
Absolute Generation and Version Numbers
Relative Generation Number
Programming Considerations for Multiple-Step Jobs
Cataloging Generation Data Groups
Submitting Multiple Jobs to Update a Generation Data Group
Naming Generation Data Groups for ISO/ANSI Version 3 or Version 4 Labels
Creating a New Generation
Allocating a Generation Data Set
Referring to a Cataloged Data Set
Examples
Creating a Model DSCB
Using DATACLAS and LIKE Keywords
Passing a Generation Data Set
Rolling In a Generation Data Set
Controlling Expiration of a Rolled-Off Generation Data Set
Retrieving a Generation Data Set
Reclaiming Generation Data Sets
Turning on GDS Reclaim Processing
Turning off GDS Reclaim Processing
Building a Generation Data Group Index
Using I/O Device Control Macros
Using the CNTRL Macro to Control an I/O Device
Using the PRTOV Macro to Test for Printer Overflow
Using the SETPRT Macro to Set Up the Printer
Using the BSP Macro to Backspace a Magnetic Tape or Direct Access Volume
Using the NOTE Macro to Return the Relative Address of a Block
Using the POINT Macro to Position to a Block
Using the SYNCDEV Macro to Synchronize Data
Using Non-VSAM User-Written Exit Routines
General Guidance
Programming Considerations
Status Information Following an Input/Output Operation
Data Event Control Block
Event Control Block
EODAD End-of-Data-Set Exit Routine
Register Contents
Programming Considerations
SYNAD Synchronous Error Routine Exit
Register Contents
Programming Considerations
Basic Access Methods
Returning from the SYNAD routine
ISAM
DCB Exit List
Register contents for exits from EXLST
Serialization
Allocation Retrieval List
Programming Conventions
Restrictions
DCB ABEND Exit
Recovery Requirements
DCB Abend Installation Exit
DCB OPEN Exit
Calls to DCB OPEN Exit for Sequential Concatenation
Installation DCB OPEN Exit
Defer Nonstandard Input Trailer Label Exit List Entry
Block Count Unequal Exit
EOV Exit for Sequential Data Sets
FCB Image Exit
JFCB Exit
JFCBE Exit
Open/Close/EOV Standard User Label Exit
Open/EOV Nonspecific Tape Volume Mount Exit
Open/EOV Volume Security and Verification Exit
QSAM Parallel Input Exit
User Totaling for BSAM and QSAM
Using Direct Access Labels
Direct Access Storage Device Architecture
Volume Label Group
Data Set Control Block (DSCB)
User Label Groups
Using the Double-Byte Character Set (DBCS)
DBCS Character Support
Record Length When Using DBCS Characters
Fixed-Length Records
Variable-Length Records
Processing Direct Data Sets
Using the Basic Direct Access Method (BDAM)
Processing a Direct Data Set Sequentially
Organizing a Direct Data Set
By Range of Keys
By Number of Records
With Indirect Addressing
Creating a Direct Data Set
Restrictions in Creating a Direct Data Set Using QSAM
With Direct Addressing with Keys
With BDAM to Allocate a VIO Data Set
Referring to a Record
Record Addressing
Extended Search
Exclusive Control for Updating
Feedback Option
Adding or Updating Records
Format-F with Keys
Format-F without Keys
Format-V or Format-U with Keys
Format-V or Format-U without Keys
Tape-to-Disk Add—Direct Data Set
Tape-to-Disk Update—Direct Data Set
With User Labels
Sharing DCBs
Using the Indexed Sequential Access Method
Using the Basic Indexed Sequential Access Method (BISAM)
Using the Queued Indexed Sequential Access Method (QISAM)
Processing ISAM Data Sets
Organizing Data Sets
Prime Area
Index Areas
Track Index
Cylinder Index
Master Index
Overflow Areas
Creating an ISAM Data Set
One-Step Method
Full-Track-Index Write Option
Multiple-Step Method
Resume Load
Allocating Space
Prime Data Area
Specifying a Separate Index Area
Specifying an Independent Overflow Area
Specifying a Prime Area and Overflow Area
Calculating Space Requirements
Step 1. Number of Tracks Required
Step 2. Overflow Tracks Required
Step 3. Index Entries Per Track
Step 4. Determine Unused Space
Step 5. Calculate Tracks for Prime Data Records
Step 6. Cylinders Required
Step 7. Space for Cylinder Indexes and Track Indexes
Step 8. Space for Master Indexes
Summary of Indexed Sequential Space Requirements Calculations
Retrieving and Updating
Sequential Retrieval and Update
Direct Retrieval and Update
Ensuring a Record is in Virtual Storage
Updating Existing Records
Sharing a BISAM DCB between Related Tasks
Subtasking
Direct Updating with Exclusive Control
Using FREEDBUF
Using Other Updating Methods
Direct Update with Variable-Length Records
Adding Records
Inserting New Records
Adding New Records to the End of a Data Set
Maintaining an Indexed Sequential Data Set
Buffer Requirements
Work Area Requirements
Calculating the Size of the Work Area
Space for the Highest-Level Index
Device Control
SETL—Specifying Start of Sequential Retrieval
Retrieval of Deleted Records
ESETL—Ending Sequential Retrieval
Using ISAM Programs with VSAM Data Sets
Upgrading ISAM Applications to VSAM
How an ISAM Program Can Process a VSAM Data Set
Conversion of an Indexed Sequential Data Set
JCL for Processing with the ISAM Interface
Restrictions on the Use of the ISAM Interface
Example: Converting a Data Set
Example: Issuing a SYNADAF Macro
Converting Character Sets
Coded Character Sets Sorted by CCSID
Coded character sets sorted by default LOCALNAME
CCSID Conversion Groups
CCSID Decision Tables
Tables for Default Conversion Codes
Converting from EBCDIC to ASCII
Converting from ASCII to EBCDIC
FOOTER
Copyright IBM Corporation 1990, 2014