Device and File Considerations

This section provides information on device and system file topics.


Large Format File Support

Adabas supports large format files, a feature introduced with IBM z/OS 1.7.

Prior to large format file support, the extents of an Adabas direct access file (ASSO, DATA, WORK, TEMP, SORT, PLOG, CLOG, RLOG, ALOG or DSIM data sets) were only able to occupy 65,535 tracks per volume. With large format file support, the data set extents can now occupy an entire volume.

As before, each data set can have up to 16 extents on a volume and can span up to 59 volumes. For ASSO and DATA, up to 99 separate data sets are supported.

In addition to supporting large format files for direct access data sets, Adabas sequential data sets (typically those read or written by the Adabas utilities) can also take advantage of IBM large format file features.

When allocating a new Adabas data set (direct access or sequential) where the space on any single volume can exceed 65,535 tracks, the DSNTYPE=LARGE parameter needs to be specified in the JCL. Once a large format file is allocated, the DSNTYPE=LARGE specification is no longer necessary in JCL for the file.

For further information about the DSNTYPE JCL parameter, as well as for details about the IBM PARMLIB parameter BLOCKTOKENSIZE(REQUIRE) in member IGDSMSxx, refer to the IBM z/OS documentation provided in section Processing Large Format Data Sets of IBM's DFSMS: Using Data Sets manual.

Supported Adabas Device Types

The standard characteristics of the device types supported via the ADARUN DEVICE parameter in z/OS environments are summarized in the following table. Adabas block sizes and blocks per track are provided for each Adabas component for each device type.

Device Trks/Cyl ASSO DATA WORK PLOG/RLOG CLOG/ALOG TEMP/SORT/DSIM Notes
3380 15 2004:19 4820:9 5492:8 5492:8 4820:9 7476:6 2
3390 15 2544:18 5064:10 5724:9 5724:9 5064:10 8904:6 2
8345 15 4092:10 22780:2 22920:2 22920:2 22920:2 22920:2  
8380 15 3476:12 6356:7 9076:5 9076:5 9076:5 9076:5 1
8381 15 3476:12 9076:5 11476:4 11476:4 9076:5 9076:5 1
8385 15 4092:10 23292:2 23468:2 23468:2 23468:2 23468:2 1
8390 15 3440:14 6518:8 10706:5 10706:5 8904:6 8904:6 1
8391 15 4136:12 10796:5 13682:4 13682:4 8904:6 18452:3 1
8392 15 4092:12 12796:4 18452:3 18452:3 18452:3 18452:3 1
8393 15 4092:12 27644:2 27990:2 27990:2 27990:2 27990:2 1
9345 15 4092:10 7164:6 11148:4 11148:4 22920:2 22920:2 2

Notes:

  1. The 838n and 839n are pseudo-device types physically contained on a 3380 and 3390 device, respectively, but for which some or all of the standard block sizes are larger.
  2. The IBM RAMAC 9394 emulates devices 3390 Model 3, 3380 Model K, or 9345 Model 2.

Adding New Devices

Support for new device types that include user-defined block sizes can be implemented in ADAIOR by modifying one of the Table of Device-Constant Entries (TDCEs) reserved for this purpose.

A TDCE is X’40’ bytes long and the first free TDCE can be identified by X’0000’ in its first two bytes (TDCDT).

TDCE entries are in the ADAIOS CSECT TDCON: the first TDCE entry is at offset 0; the first free TDCE entry is at offset X'400'.

This information is valuable when adding an additional TDCE entry.

Information to be Zapped into the First Free ADAIOR TDCE

The information in the following tables must be zapped into the first free TDCE. The rules described in the section General Rules for Defining Device Block Sizes must be followed when changing the TDCE.

Label Offset Contents
TDCDT 00 Device type in unsigned decimal (X’3385’), must be numeric, and unique among all TDCEs.
TDCKSN 02 Constant set number: must be uniquely chosen from the values X’2B’ or X’2E’.
TDCF 03 The flag bit must be set—TDCFCKD (X’40’) for CKD devices, TDCFECKD (X’60’) for ECKD devices or TDCFECKD (X’61’) for ECKD, not user defined devices.
TDCDT1 04 (see note 1)
TDCDT2 05 (see note 1)
TDCDT3 06 (see note 1)
TDCDT4 07 (see note 1)
TDCMSBS 08 Refer to the section Maximum Sequential Block Size.
TDCTPC 0A Number of tracks per cylinder.
TDCCIPT 0C (see note 2)
TDCBPCI 0E (see note 2)
TDCABPT 10 Number of Associator blocks per track.
TDCABS 12 Associator block size.
TDCACPB 14 (see note 2)
TDCDBPT 16 Number of Data Storage blocks per track.
TDCDBS 18 Data Storage block size.
TDCDCPB 1A (see note 2)
TDCWBPT 1C Number of Work blocks per track.
TDCWBS 1E Work block size.
TDCWCPB 20 (see note 2)
TDCTSBPT 22 Number of TEMP or SORT blocks per track
TDCTSBS 24 TEMP or SORT block size.
TDCTSCPB 26 (see note 2)
TDCPBPT 28 Number of PLOG/RLOG blocks per track.
TDCPBS 2A PLOG/RLOG block size.
TDCPCPB 2C (see note 2)
TDCCBPT 2E Number of CLOG/ALOG blocks per track.
TDCCBS 30 CLOG/ALOG block size.
TDCCCPB 32 (see note 2)

Notes:

  1. One or more operating-system-dependent codes for identifying the device type: z/OS, the UCB unit type from UCBTBYT4.
  2. Not used for z/OS operating systems.

General Rules for Defining Device Block Sizes

The following general rules must be followed when defining Adabas device block sizes:

  • All block sizes must be multiples of 4.

  • A single block cannot be split between tracks (that is, the block size must be less than or equal to the track size).

Maximum Sequential Block Size

When adding new devices, the maximum sequential block size must also be specified. The value to be set to the maximum sequential block size is TDCMSBS, located at offset X’08’ from the beginning of the ADAIOR TDCE table.

Depending on the device type, the TDCMSBS value should be as follows:

Device Type Maximum Block Size
3330 13030
3340 8368
3350 (8350) 19069
3375 17600
3380 (8380/81) 23476
339n 27998
8345 22928
8380/1/5 23476
839n 27998
9345 22928

Note:
On some devices, it may be most efficient to use smaller block sizes (for example, to specify 23476 for the 3380, but with two blocks per track).

Rules for Associator and Data Storage Block Sizes

The following rules apply for Associator and Data Storage block sizes:

  • Associator block size must be greater than one-fourth the size of the largest FDT, and should be large enough to accept definitions in the various administrative blocks (RABN 1 - 30) and in the FCB;

  • The block sizes for Associator and Data Storage should be a multiple of 256, less four bytes (for example, 1020) to save Adabas buffer pool space.

  • The Associator and Data Storage block sizes must be at least 32 less than the sequential block size.

  • Data Storage block size must be greater than: (maximum compressed record length + 10 + padding bytes).

Rule for Work Data Set Block Size

The Work block size must be greater than either (maximum compressed record length + 110) or (Associator block size + 110), whichever is greater.

Rules for TEMP/SORT Data Set Block Sizes

If ADAM direct addressing is used:

size > (maximum compressed record length + ADAM record length + 24);
size > 277 (maximum descriptor length + 24)

However, TEMP and SORT are generally read and written sequentially; therefore, the larger the TEMP/SORT block size, the better.

Block sizes for TEMP and SORT must be greater than the block sizes for Data Storage.

Rules for PLOG or SIBA Block Sizes

Note:
The use of 3480/3490 tape cartridge compression (IDRC) is not recommended for protection log files. The ADARES BACKOUT function will run at least twice as long under z/OS when processing compressed data.

The following rules apply for PLOG or SIBA block sizes:

  • The PLOG or SIBA block size must be greater than either (maximum compressed record length + 110) or (Associator block size + 110), whichever is greater.

  • It is also recommended that PLOG/SIBA be defined larger than the largest Data Storage block size. This avoids increased I/O caused by splitting Data Storage blocks during online ADASAV operations.

The block size (BLKSIZE) of a sequential file is determined as follows:

if PTTF(JCL) then BLKSIZE is taken from file assignment statement or label;
if PTTMBS > 0 then BLKSIZE = PTTMBS;
if PTTMBS = 0 then
if tape then BLKSIZE = 32760;
else BLKSIZE = TDCMSBS;
else if BLKSIZE in file assignment statement or label then use it;
if PTTF(OUT) then
if QBLKSIZE > 0 then BLKSIZE = QBLKSIZE;
if tape then BLKSIZE = 32760;
else BLKSIZE = TDCMSBS;
else error.

Note:
QBLKSIZE is an ADARUN parameter.

Sequential Protection Log Block Size in I_PTT

In addition, the sequential protection log block size may have to be increased in the corresponding PTT entry in CSECT I_PTT of the load module ADAIOS.

PTT entries begin at offset 0 into CSECT I_PTT.

Each PTT entry is X’10’ bytes long and has the structure given below:

Label Offset Contents
PTTPN 00 Program number
PTTFT 01 File type
PTTN 02 DD name characters 2 - 8
PTTF 08 Flags:

OUT (X’80’) output

BSAM (X’40’) BSAM

BACK (X’20’) read backwards

JCL (X’10’) BLKSIZE/LRECL/RECFM taken from DATADEF statement or label

UNDEF (X’04’) undefined record format

VAR (X’02’) variable record format

- 09 Reserved
PTTMBSZ 0C Maximum block size

The PTT entry for the sequential protection log can be identified by X‘12F1’ in its first two bytes.

Enhanced Backup and Restore Performance in Tape Sequential Files

Adabas exploits IBM’s large block (more than 32,760 bytes) support for sequential access methods BSAM and QSAM under z/OS version 2 release 10 and above. ADAIOR supports tape drives with a block size of up to 256K for 3590 devices and 64K for 3490/3490E devices.

This support can provide performance benefits for any utility writing to tape (for example, ADASAV).

Warning:
If you choose to write tape files with large block sizes (for example, for database backups), these files will not be transportable to systems where support for large blocks is not available. This might include a site being used as a backup facility for disaster recovery.