Creating server data sets (CCASERVR)

From m204wiki
Jump to navigation Jump to search


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:

Server swapping constants for CKD devices
Device type Device constant Tracks per cylinder Maximum server size
3380 47476 15 712140
3390 56664 15 849960
9345 46456 15 696840

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 constant is taken from the "Server swapping constants for CKD devices" table for the appropriate device type.
  • Tracks-per-cyl is 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

  1. 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:
  2. 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 CCASERV0, 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:


Label information must be inserted into the ONLINE job stream.

  • For FBA devices:


  • For CKD devices:


    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.