This section provides information for the following device- and system file-related topics:
installing on fixed-block addressing (FBA) devices;
defining new devices; and
changing defaults for sequential files.
The standard characteristics of the device types supported by Adabas are summarized in the following table. The Adabas block sizes and RABNs per track are provided for each component for each device type.
Device | Trks/Cyl | ASSO | DATA | WORK | PLOG/RLOG | CLOG | TEMP/SORT/DSIM | Notes |
---|---|---|---|---|---|---|---|---|
1512 | 16 | 2048:128 | 4096:64 | 4096:64 | 4096:64 | 4096:64 | 4096:64 | |
2512 | 16 | 4096:64 | 8192:32 | 8192:32 | 8192:32 | 8192:32 | 8192:32 | |
3375 | 12 | 2016:15 | 4092:8 | 4096:8 | 4096:8 | 4096:8 | 8608:4 | |
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 |
3512 | 16 | 4096:64 | 16384:16 | 16384:16 | 16384:16 | 16384:16 | 16384:16 | |
5121 | 15 | 2048:16 | 4096:8 | 4096:8 | 4096:8 | 4096:8 | 4096:8 | |
5122 | 15 | 4096:8 | 8192:4 | 8192:4 | 8192:4 | 8192:4 | 8192:4 | |
5123 | 15 | 4096:8 | 16384:2 | 16384:2 | 16384:2 | 16384:2 | 16384: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:
All device definitions for Adabas control statements for FBA disks should specify one of the following devices types:
FBA SCSI devices: Specify device types of 1512, 2512, or 3512.
Virtual FBA devices: Specify device types of 5121, 5122, or 5123.
Note:
Virtual FBA devices are not permanent and are, therefore, only
suitable for holding temporary or work data sets.
Choose a device type based on the block sizes given in the following tables:
Dev Type | Asso blksz | Data blksz | Work blksz | Temp blksz | Sort blksz | PLOG blksz | CLOG blksz |
---|---|---|---|---|---|---|---|
1512 | 2048 | 4096 | 4096 | 4096 | 4096 | 4096 | 4096 |
2512 | 4096 | 8192 | 8192 | 8192 | 8192 | 8192 | 8192 |
3512 | 4096 | 16384 | 16384 | 16384 | 16384 | 16384 | 16384 |
Dev Type | Asso blksz | Data blksz | Work blksz | Temp blksz | Sort blksz | PLOG blksz | CLOG blksz |
---|---|---|---|---|---|---|---|
5121 | 2048 | 4096 | 4096 | 4096 | 4096 | 4096 | 4096 |
5122 | 4096 | 8192 | 8192 | 8192 | 8192 | 8192 | 8192 |
5123 | 4096 | 16384 | 16384 | 16384 | 16384 | 16384 | 16384 |
The pseudo-cylinder for each of these devices has a different number of blocks as described below:
1512 cylinder = FBA blocks/8192 2512 cylinder = FBA blocks/8192 3512 cylinder = FBA blocks/8192 5121 cylinder = FBA blocks/960 5122 cylinder = FBA blocks/960 5123 cylinder = FBA blocks/960
The size definitions for FBA devices on Adabas control statements can specify the number of pseudo-cylinders or the number of Adabas blocks (RABNs).
Make sure that the starting block and the number of FBA blocks on the VSE EXTENT statement are on an FBA pseudo-cylinder boundary, which is based on the device as specified above for each Adabas file comprising the database:
An SCSI pseudo-cylinder comprises 8,192 elements of 512 bytes each, or 4M per pseudo-cylinder. For example, an EXTENT entry for a ten cylinder SCSI device might consist of:
// EXTENT SYS123,,,,8192,81920
A virtual FBA pseudo-cylinder comprises 960 elements of 512 bytes each, or 480 K per pseudo-cylinder. For example, an EXTENT entry for a ten cylinder virtual FBA device might consist of:
// EXTENT SYS123,,,,512,5120
Adabas supports ECKD DASD devices such as the IBM 3390 with the 3990 controller and ESCON channels.
During an open operation, ADAIOR determines which DASD device types are being used for the ASSO, DATA, WORK, SORT, and TEMP datasets. At that time, Adabas issues an informational message for each Adabas database component, where type is the component:
ADA164 ... FILE DDtype HAS BEEN OPENED IN ckd/eckd MODE - RABN SIZE rabn-size
Note:
Software AG strongly recommends that you avoid mixing ECKD and CKD
extents within a file, because the file will be opened only in CKD mode. Mixing
extents could degrade performance when file I/O operations are
performed.
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).
For all versions of Adabas prior to Version 6.2, the address of the first TDCE is at offset ADAIOR+ X‘34’.
For Adabas Version 6.2, TDCE entries are in the ADAIOR CSECT TDCON: the first TDCE entry is at offset 0; the first free TDCE entry is at offset X‘400’.
For Adabas Version 7.4, TDCE entries are in the ADAIOS CSECT TDCON, which corresponds to ESDID 1A8 in object module IOSVSE.OBJ. The first TDCE entry is at offset X‘EF90’ into IOSVSE.OBJ; the first free TDCE entry is at offset X‘F550’.
This information is valuable when adding an additional TDCE entry, and when zapping the object module and relinking ADAIOS under VSE.
The z/VSE MSHP control statements to add a TDCE entry at the first free entry thus take the form:
// EXEC MSHP CORRECT 9001-ADA-00-741 :AD99998 AFFECTS MODULE=IOSVSE,ESDID=1A8 ALTER F550 0000 : nnnn ALTER F552 0000 : nnnn . . (etc.) . INVOLVES LINK=LNKIOR/*
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) |
TDCDT2 | 05 | (see note) |
TDCDT3 | 06 | (see note) |
TDCDT4 | 07 | (see note) |
TDCMSBS | 08 | Refer to the TDCMSBS default table in Maximum Sequential Block Size in the Adabas z/OS installation instructions for more system- and device-related information. |
TDCTPC | 0A | Number of tracks per cylinder. |
TDCCIPT | 0C | Number of FBA blocks or PAM pages per track (if TDCFFBA is set). |
TDCBPCI | 0E | Number of bytes per FBA block or PAM page (2048 if TDCFFBA is set). |
TDCABPT | 10 | Number of Associator blocks per track. |
TDCABS | 12 | Associator block size. |
TDCACPB | 14 | Number of FBA blocks or PAM pages per Associator block (if TDCFFBA is set). |
TDCDBPT | 16 | Number of Data Storage blocks per track. |
TDCDBS | 18 | Data Storage block size. |
TDCDCPB | 1A | Number of FBA blocks or PAM pages per Data Storage block (if TDCFFBA is set). |
TDCWBPT | 1C | Number of Work blocks per track. |
TDCWBS | 1E | Work block size. |
TDCWCPB | 20 | Number of FBA blocks or PAM pages per Work block (if TDCFFBA is set). |
TDCTSBPT | 22 | Number of TEMP or SORT blocks per track |
TDCTSBS | 24 | TEMP or SORT block size. |
TDCTSCPB | 26 | Number of FBA blocks or PAM pages per TEMP or SORT block (if TDCFFBA is set). |
TDCPBPT | 28 | Number of PLOG blocks per track. |
TDCPBS | 2A | PLOG block size. |
TDCPCPB | 2C | Number of FBA blocks or PAM pages per PLOG block (if TDCFFBA is set). |
TDCCBPT | 2E | Number of CLOG blocks per track. |
TDCCBS | 30 | CLOG block size. |
TDCCCPB | 32 | Number of FBA blocks or PAM pages per CLOG block (if TDCFFBA is set). |
Note:
One or more z/VSE codes for identifying the device type: PUB device
type from PUBDEVTY (refer to the IBM MAPDEVTY macro).
In addition, the length of a sequential protection log block may have to be increased. This length is contained in the corresponding PTT entry in CSECT I_PTT of the load module ADAIOR. The address of the first PTT entry is contained in the fullword at ADAIOR+X‘4C8’. 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: |
- | 09 | Reserved |
PTTMBS | 0A | Maximum block size |
- | 0C | Reserved |
The PTT entry for the sequential protection log can be identified by X‘12F1’ in its first two bytes.
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).
The following rules are applicable for Associator and Data Storage:
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 following rule is applicable for Work::
The Work block size must be greater than either (maximum compressed record length + 110) or (Associator block size + 110), whichever is greater.
The following rules are applicable for TEMP and SORT:
Block sizes for TEMP and SORT must be greater than the block sizes for Data Storage.
If ADAM direct addressing is used:
size > (maximum compressed record length + ADAM record length + 24); size > 277 (maximum descriptor length + 24)
TEMP and SORT are generally read and written sequentially; therefore, the larger the TEMP/SORT block size, the better.
The following rules are applicable for PLOG and SIBA:
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.
The use of hardware compression (IDRC) is not recommended for protection log files. The ADARES BACKOUT function will run much longer when processing compressed data. Also, the BACKOUT function is not supported for compressed data.
The specified zaps should be added to the module IORVSE / phase ADAIOR, not to the specified utility.
For Adabas version 7.4 or above, PPT entries are in the ADAIOR CSECT I_PTT. The first PTT entry is at offset 0 into CSECT I_PTT.
When zapping the object module and relinking ADAIOR, note that the ADAIOR CSECT I_PTT corresponds to ESDID 007 in object module IORVSE.OBJ. For Adabas 7.4, the offset of the CSECT I_PTT into IORVSE.OBJ is X'1000'.
Utility | File | Default SYS Number | PTT Offset | VER | REP |
---|---|---|---|---|---|
ADACDC | SIIN | SYS010 | 608 | 1A0A | 1Axx |
ADACMP | AUSBA | SYS012 | 08 | 820C | 82xx |
EBAND | SYS010 | 18 | 180A | 18xx | |
FEHL | SYS014 | 28 | 820E | 82xx | |
ADACNV | FILEA | SYS010 | 5E8 | 820A | 82xx |
ADAGEN | BAND | SYS010 | 38 | 820A | 82xx |
ADALOD | FILEA (OUTPUT) | SYS012 | 48 | 820C | 82xx |
FILEB (INPUT) | SYS012 | 58 | 020C | 02xx | |
EBAND | SYS010 | 68 | 1A0A | 1Axx | |
ISN | SYS016 | 78 | 1A10 | 1Axx | |
OLD | SYS014 | 88 | 820E | 82xx | |
ADAMER | EBAND | SYS010 | 98 | 1A0A | 1Axx |
ADANUC | LOG | SYS012 | A8 | 820C | 82xx |
SIBA | SYS014 | B8 | C20E | C2xx | |
ADAORD | FILEA (OUTPUT) | SYS010 | C8 | 820A | 82xx |
FILEA (INPUT) | SYS010 | D8 | 120A | 12xx | |
ADAPLP | PLOG | SYS014 | E8 | 1A0E | 1Axx |
ADARAI | OUT | SYS010 | 618 | 800A | 80xx |
ADAREP | SAVE | SYS010 | F8 | 1A0A | 1Axx |
PLOG | SYS011 | 108 | 1A0B | 1Axx | |
ADARES | SIIN | SYS020 | 118 | 1A14 | 1Axx |
BACK | SYS020 | 128 | 2C14 | 1Cxx | |
SIAUS1 | SYS021 | 138 | 8215 | 82xx | |
SIAUS2 | SYS022 | 148 | 8216 | 82xx | |
ADASAV | SAVE1 | SYS011 | 158 | 820B | 82xx |
SAVE2 | SYS012 | 168 | 820C | 82xx | |
SAVE3 | SYS013 | 178 | 820D | 82xx | |
SAVE4 | SYS014 | 188 | 820E | 82xx | |
SAVE5 | SYS015 | 198 | 820F | 82xx | |
SAVE6 | SYS016 | 1A8 | 8210 | 82xx | |
SAVE7 | SYS017 | 1B8 | 8211 | 82xx | |
SAVE8 | SYS018 | 1C8 | 8212 | 82xx | |
DUAL1 | SYS021 | 1D8 | 8215 | 82xx | |
DUAL2 | SYS022 | 1E8 | 8216 | 82xx | |
DUAL3 | SYS023 | 1F8 | 8217 | 82xx | |
DUAL4 | SYS024 | 208 | 8218 | 82xx | |
DUAL5 | SYS025 | 218 | 8219 | 82xx | |
DUAL6 | SYS026 | 228 | 821A | 82xx | |
DUAL7 | SYS027 | 238 | 821B | 82xx | |
DUAL8 | SYS028 | 248 | 821C | 82xx | |
REST1 | SYS011 | 258 | 1A0B | 1Axx | |
REST2 | SYS012 | 268 | 120C | 1Axx | |
REST3 | SYS013 | 278 | 120D | 1Axx | |
REST4 | SYS014 | 288 | 120E | 1Axx | |
REST5 | SYS015 | 298 | 120F | 1Axx | |
REST6 | SYS016 | 2A8 | 1210 | 1Axx | |
REST7 | SYS017 | 2B8 | 1211 | 1Axx | |
REST8 | SYS018 | 2C8 | 1212 | 1Axx | |
FULL | SYS030 | 2D8 | 1A1E | 1Axx | |
DEL1 | SYS031 | 2E8 | 1A1F | 1Axx | |
DEL2 | SYS032 | 2F8 | 1A20 | 1Axx | |
DEL3 | SYS033 | 308 | 1A21 | 1Axx | |
DEL4 | SYS034 | 318 | 1A22 | 1Axx | |
DEL5 | SYS035 | 328 | 1A23 | 1Axx | |
DEL6 | SYS036 | 338 | 1A24 | 1Axx | |
DEL7 | SYS037 | 348 | 1A25 | 1Axx | |
DEL8 | SYS038 | 358 | 1A26 | 1Axx | |
PLOG | SYS010 | 368 | 1A0A | 1Axx | |
ADASEL | EXPA1 | SYS011 | 378 | 820B | 82xx |
EXPA2 | SYS012 | 388 | 820C | 82xx | |
EXPA3 | SYS013 | 398 | 820D | 82xx | |
EXPA4 | SYS014 | 3A8 | 820E | 82xx | |
EXPA5 | SYS015 | 3B8 | 820F | 82xx | |
EXPA6 | SYS016 | 3C8 | 8210 | 82xx | |
EXPA7 | SYS017 | 3D8 | 8211 | 82xx | |
EXPA8 | SYS018 | 3E8 | 8212 | 82xx | |
EXPA9 | SYS019 | 3F8 | 8213 | 82xx | |
EXPA10 | SYS020 | 408 | 8214 | 82xx | |
EXPA11 | SYS021 | 418 | 8215 | 82xx | |
EXPA12 | SYS022 | 428 | 8216 | 82xx | |
EXPA13 | SYS023 | 438 | 8217 | 82xx | |
EXPA14 | SYS024 | 448 | 8218 | 82xx | |
EXPA15 | SYS025 | 458 | 8219 | 82xx | |
EXPA16 | SYS026 | 468 | 821A | 82xx | |
EXPA17 | SYS027 | 478 | 821B | 82xx | |
EXPA18 | SYS028 | 488 | 821C | 82xx | |
EXPA19 | SYS029 | 498 | 821D | 82xx | |
EXPA20 | SYS030 | 4A8 | 821E | 82xx | |
SIIN | SYS010 | 4B8 | 1A0A | 1Axx | |
ADATRA | TRA | SYS019 | 4C8 | 820A | 82xx |
ADAULD | OUT1 | SYS010 | 4D8 | 820A | 820xx |
OUT2 | SYS011 | 4E8 | 820B | 820xx | |
ISN | SYS012 | 4F8 | 820C | 820xx | |
SAVE | SYS013 | 508 | 1A0D | 1Axx | |
PLOG | SYS014 | 518 | 1A0E | 1Axx | |
FULL | SYS030 | 528 | 1A1E | 1Axx | |
DEL1 | SYS031 | 538 | 1A1F | 1Axx | |
DEL2 | SYS032 | 548 | 1A20 | 1Axx | |
DEL3 | SYS033 | 558 | 1A21 | 1Axx | |
DEL4 | SYS034 | 568 | 1A22 | 1Axx | |
DEL5 | SYS035 | 578 | 1A23 | 1Axx | |
DEL6 | SYS036 | 588 | 1A24 | 1Axx | |
DEL7 | SYS037 | 598 | 1A25 | 1Axx | |
DEL8 | SYS038 | 5A8 | 1A26 | 1Axx | |
ADAVAL | FEHL | SYS014 | 5B8 | 820E | 820xx |