Creating server data sets (CCASERVR)
The CCASERVR file provides temporary space for storage of user work tables when the user has been moved (swapped) out of the server.
The system manager can enable server swapping simply by setting the NSERVS parameter to a value less than the value of NUSERS. Efficient use of swapping, however, requires careful attention to sizing and device-dependent considerations.
This page describes server swapping; discusses server sizing, disk storage requirements, and device dependencies; and explains how to allocate server data sets and implement swapping.
Server swapping and the CCASERVR file
Server swapping is a shared access method that the Model 204 ONLINE configuration can use to reduce server-area main-memory requirements. When a user is temporarily idle, Model 204 copies that user's tables and server data into a CCASERVR file. The server area is then freed to process another user.
Shared servers are divided into different sizes. An internal server pushdown list automatically assigns a user the smallest size that satisfies processing requirements. The LSERVPD parameter controls the size of the pushdown list.
The system manager can create as many as 101 server data sets in any operating environment. This can improve performance by spreading I/O activity across several disk devices. Naming and sizing rules for multiple server data sets are described in detail in Requirements for server swapping.
CCASERVR in Storage feature
This feature is for sites for which one of the following is true:
- Run z/OS in 64-bit mode and have real storage larger than 2-gigabytes
- Run z/OS in 31-bit mode and have enough expanded storage to support dataspaces with no excessive paging. A dataspace is an address space in z/OS with none of the control structures for tasks; it is simply data.
Other operating system configurations will begin excessive paging, and serious performance degradation of the entire system is likely to occur.
If you have enough real storage on your system, you can place either or both CCATEMP file and CCASERVR file in storage. The benefit to you of activating the CCASERVR in Storage feature depends on how much latent wait time is spent by your jobs waiting for the CCASERVR file I/O to complete.
- Users may server swap to CCASERVR file in-memory instead of to disk data set CCASERVR.
- There is no CYLINDER size restriction on SERVSIZE, which is limited only by available memory.
- An additional benefit is that relief is provided on I/O subsystems. Because there is less contention, channels and disks are free to perform other services and jobs run faster.
- The RESPAGE parameter may compliment the CCASERVR in Storage feature.
System programmers consideration
To use the CCASERVR in Storage feature, be aware that the maximum number of data- or hiperspaces and the total cumulative size of data- or hiperspaces for a given job may be controlled by the SMF IEFUSI exit.
In this exit, the parameter description shows that subwords 2 and 3 of the word 7 parameter are the keys, where:
- Word 7 subword 2 controls the maximum cumulative data- or hiperspace size
- Word 7 subword 3 controls the maximum number of data- or hiperspaces that a job may allocate
Check the IBM-supplied settings and change them, if necessary.
Information regarding this exit routine is found in the z/OS Installation Exits Document Number SC28-1753.
Tracking dataspaces and hiperspaces
See the MONITOR DATASPACE command.
Activating the CCASERVR in Storage feature for a job
To activate the CCASERVR in Storage feature, comment out the CCASERV DD statements in a job. Model 204 will allocate the correct amount of storage based on the SERVSIZE and NSERVS parameters.
Sizing and storage considerations
Preparation for implementing server swapping involves calculating appropriate values for:
- SERVSIZE parameter, which determines the largest server in the input stream
- Disk storage requirements, given the chosen value of SERVSIZE and the device types available at your installation
For detailed instructions for estimating SERVSIZE, see Sizing user server areas. This section explains sizing and storage calculations that have to do with the physical devices in use at your installation.
Physical devices and server size
The size of each server is likely to be limited by the physical device used for swapping.
When an FBA device is used, the server size is limited by the amount of virtual memory available to Model 204. All the servers defined for the run must fit, along with many other blocks of storage, in virtual memory.
When a CKD device is used, the server size is limited by the device's cylinder size, as shown in the "Server swapping constants for CKD devices" table:
|Device type||Device constant||Tracks per cylinder||Maximum server size|
Calculating CKD disk storage requirements
Use the "Server swapping constants for CKD devices" table, above, to make the following calculation for CKD disk storage:
Tracks-per-server = SERVSIZE / Device constant (rounded up) Servers-per-cyl = Tracks-per-cyl / Tracks-per-server (rounded down) Cylinders = NUSERS / Servers-per-cyl (rounded up) Total Tracks required = Cylinders * Tracks-per-cyl
- cyl represents cylinder.
Device constantis taken from the "Server swapping constants for CKD devices" table for the appropriate device type.
Tracks-per-cylis taken from "Server swapping constants for CKD devices."
Example 2 in Disk storage calculation examples shows a CKD storage calculation.
Calculating FBA storage requirements
To calculate storage requirements for FBA devices, use the following formulas.
For FBA 3370 devices:
n = SERVSIZE/31744 (rounded up) Blocks per user = n * 62 FBA Blocks = NUSERS * Blocks per user
For FBA 9335 devices:
n = SERVSIZE / 36352 (rounded up) Blocks per user = n * 71 FBA Blocks=NUSERS * Blocks per user
For FBA 9332 devices:
n = SERVSIZE / 37376 (rounded up) Blocks per user = n * 73 FBA Blocks = NUSERS * Blocks per user
Disk storage calculation examples
- The device is a CKD type (3380). The device constant from the "Server swapping constants for CKD devices" table is 47476, and there are 15 tracks per cylinder. SERVSIZE is 110000, and NUSERS is 9. The computation is:
- The device is an FBA type (3370). SERVSIZE is 110000, and NUSERS
is 9. The computation is:
n = 110000 / 31744 = 3.46 (round to 4) Blocks per user = 4 * 62 = 248 FBA Blocks = 9 * 248 = 2232
Requirements for server swapping
To implement server swapping:
- Set the number of servers (NSERVS) to a value less than the number of users (NUSERS).
If NSERVS is equal to NUSERS, or is allowed to default to the value of NUSERS, server swapping is not initiated.
- Set the value of the SERVSIZE parameter specified for the largest server in the CCAIN input stream to be at least as large as the aggregate table size for the largest user. To calculate the SERVSIZE parameter, refer to the discussion of server areas.
Multiple server data sets
The system manager can specify up to 101 server data sets in any operating environment.
At z/OS and z/VM sites, server data set file names are CCASERVR, CCASERV0 through CCASERV9, and CCASRV10 through CCASRV99. At z/VSE sites, the file names are CCASRVR, CCASRV0 through CCASRV9, and CCASV10 through CCASV99.
The DD statements (or CMS FILEDEFs) are scanned first for
CCASERVR, then for
CCASERV1, and so on. If a ddname is not found, then the system assumes that there are no more server data sets. For example, if there is no
CCASERV4, Model 204 does not use CCASERV5, even if there is a DD statement for it.
Model 204 opens the data sets in consecutive order and makes allocations to users in round-robin fashion. As data sets fill up, they are dropped from the rotation.
Use multiple server data sets to spread the I/O activity across several disk devices. All the devices must be the same type (all FBA or all identical CKD devices).
Server data sets on CKD devices
If the server data sets are on CKD devices, they must begin on cylinder boundaries. Allocate each data set with contiguous space. The value of the SERVSIZE parameter is limited to the cylinder capacity of the device containing the CCASERVR data set. A server is not allowed to span a cylinder boundary for performance reasons: each server read or write requires at most one seek.
ECKD channel program support
Model 204 executes ECKD channel programs for CCATEMP, CCAGRP, CCASYS, and CCASERVR on ECKD capable devices, whether the devices are connected to ESCON or parallel channels. All models of IBM 3990 Storage Control, the IBM 3880 Model 23 Storage Control, and all models of the IBM 9340 Direct Access Storage Subsystem support ECKD channel programs. This improves performance, particularly if you are using ESCON channels and/or IOS branch entry (XMEMOPT=2) under z/OS.
Under both z/OS and z/VSE, Model 204 executes ECKD channel programs for CCASERVR data sets on ECKD capable devices.
Under z/OS, I/O to user database files, CCATEMP, CCAGRP, and CCASYS is also done using ECKD channel programs.
Note: Under z/OS, VIO support is not available for use with EXCPVR or IOSB. Do not use 9345 DASD with EXCPVR because of the potential for poor performance on writes.
Under z/VSE, CKD channel programs are used to perform I/O to user database files, CCATEMP, CCAGRP, and CCASYS. I/O performance is not affected, however, because Model 204 uses a "well-formed" CKD channel program for these I/O activities. The z/VSE I/O supervisor efficiently converts the channel program to an ECKD channel program for ECKD capable devices.
Using cache fast write
If you have cached DASD controllers (such as IBM 3990 models 3 and 6) you can use the CACHE parameter to allow CCASERVR data to be written directly to a controller's cache.
Allocation and job control
z/OS JCL must contain at least one DD statement for CCASERVR. You can specify a disposition of either SHR or OLD. SHR is recommended for the ONLINE configuration.
In a z/VSE environment, prior to executing the ONLINE configuration, you must initialize one or more server data sets using the ALLOCATE utility. For example:
// JOB ALLOCSRV ALLOCATE MODEL 204 SERVER DATASET // DLBL M204LIB,'M204.PROD.LIBRARY' // EXTENT SYSnnn,... // LIBDEF PHASE.SEARCH=M204LIB.V210 // DLBL CCASRVR,'MODEL204.SERVER.DATASET.1' // EXTENT SYSnnn,balance of extent information // ASSGN SYSnnn,X'cuu' // EXEC ALLOCATE ALLOCATE FILE (CCASRVR) /* /&
Label information must be inserted into the ONLINE job stream.
- For FBA devices:
// DLBL CCASRVR,'MODEL204.SERVER.DATASET.1',,DA // EXTENT SYS021,SYSWK1,,,9000,1736 // DLBL CCASRV0,'MODEL204.SERVER.DATASET.2',,DA // EXTENT SYS022,SYSWK2,,,15032,496
- For CKD devices:
// DLBL CCASRVR,'MODEL204.SERVER.DATASET.1',,DA // EXTENT SYS021,SYSWK1,,,1500,xx
where xx is a value from the "Tracks per cylinder" column in the "Server swapping constants for CKD devices" table above in Physical devices and server size.