This section provides information on device and system file topics.
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.
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:
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.
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:
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).
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).
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).
The Work block size must be greater than either (maximum compressed record length + 110) or (Associator block size + 110), whichever is greater.
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.
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.
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.
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. |