Device And File Considerations

Support for new device types that include user-defined block sizes can be implemented in Adabas 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).

Under BS2000, the address of the first TDCE is at offset ADAIOR+ X‘34’ for all versions of Adabas.

Adabas direct access files are always mapped to UPAM files, removing the need to consider physical device characteristics. PAM pages in a file are addressed relative to the beginning of the file.

Adabas blocks comprise one or more PAM pages. An Adabas virtual track is made up of a fixed number of blocks, and an Adabas virtual cylinder comprises a fixed number of tracks. The definition of tracks and cylinders are independent of the physical device.

There are a number of predefined virtual devices for BS2000 that should meet most of the storage capacity needs that arise. It should be noted that the virtual memory requirement increases significantly with a larger block size.

Support for new device types, including user-defined block sizes, can be implemented in ADAIOR by modifying one of the TDCEs reserved for this purpose.

Note:
The default device type for BS2000 in Adabas 8.2 is 2300. This device type is compatible with NK4 disks and has 4K rounded blocks for use with D3475-8F devices.

This document covers the following topics:


Information to be Zapped into the First Free 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’28’ (reserved for BS2000 device type 2006), X’2B’, or X’2E’
TDCF 03 The flag bit must be set—TDCFFBA (X’80’) for FBA/PAM devices or TDCFCKD (X’40’) for CKD devices
TDCDT1 04 Set to zero under BS2000
TDCDT2 05 Set to zero under BS2000
TDCDT3 06 Set to zero under BS2000
TDCDT4 07 Set to zero under BS2000
TDCMSBS 08 In BS2000, 32760 for compatibility. 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). For BS2000 less than or equal to 16.
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 (if TDCFFBA is set)
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
TDCCCPB2 32 Number of FBA blocks or PAM pages per CLOG block (if TDCFFBA is set)

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 ADAIOI. PTT entries begin at offset 0 into CSECT I_PTT.

Each PTT entry is X’10’ bytes long and has the structure shown 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
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.

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 the number of PAM blocks per track (see Device Types and Block Sizes, elsewhere in this section)

  • a single block cannot be split between tracks (block size must be less than or equal to the track size)

Block Rules for ASSO/DATA

The following rules apply for Associator and Data Storage blocks:

  • 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)

Block Rule for WORK

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

Block Rules for TEMP/SORT

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 size for TEMP and SORT must be greater than the block size for Data Storage.

Block Rule for PLOG or SIBA

The following rules apply for PLOG or SIBA blocks:

  • 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.

Using 3480/3490 Tape Cartridge Compression (IDRC)

The use of hardware compression (IDRC) is not recommended for protection log files.

BS2000 Device Types and Block Sizes

The primary access method for direct access data sets used by Adabas under BS2000 is PAM (primary access method). The device types defined by Adabas establish a logical structure on a PAM data set in order to process a fixed number of consecutive PAM blocks. For example, for device 2300, one ASSO RABN (Adabas block) consists of two PAM blocks and one logical track consisting of four RABNs.

These device types are “artificial”; there is no relation to the physical devices being used. A maximum of 16 PAM blocks per track can be combined into one I/O call. For more than 16 PAM blocks per track, parameter chaining is used.

The artificial device types defined by Software AG for BS2000 systems are summarized in the following table. The ASSO, DATA, WORK, PLOG, CLOG, and TEMP/SORT/DSIM block sizes are given with PAMs/RABN and RABNs per track.

Device PAM Pages per Cyl1 PAM Pages per Track PAMs per Block/Block size:Blocks per Track NK4 Compati- ble2 4K Rounded3
ASSO DATA WORK PLOG CLOG TEMP/SORT/DSIM
2000 80 8 1/2048:4 2/4080:2 2/4096:2 2/4096:2 2/4096:2 2/4080:2 No No
2002 152 8 2/4092:4 4/8188:2 4/8192:2 4/8192:2 8/16384:1 8/16384:1 Yes No
2005 220 20 1/2044:20 2/4092:10 4/8192:5 4/8192:5 5/10240:4 5/10240:4 No No
2006 220 20 2/4092:10 4/8188:5 5/10240:4 5/10240:4 5/10240:4 5/10240:4 No No
2008 272 16 2/4092:8 16/32656:1 16/32760:1 16/32760:1 16/32760:1 16/32760:1 Yes No
2010 240 16 2/4092:8 4/8188:4 8/16380:2 8/16380:2 8/16380:2 8/16380:2 Yes No
2200 240 16 2/4092:8 4/8088:4 8/16380:2 8/16380:2 8/16380:2 8/16380:2 Yes No
2201 180 12 2/4092:6 6/12184:2 6/12288:2 6/12288:2 6/12288:2 6/12288:2 Yes No
2202 240 16 2/4092:8 8/16280:2 8/16380:2 8/16380:2 8/16380:2 8/16380:2 Yes No
2300 152 8 2/4096:4 4/8192:2 4/8192:2 4/8192:2 8/16384:1 8/16384:1 Yes Yes
2301 240 16 2/4096:8 8/16384:2 8/16384:2 8/16384:2 8/16384:2 8/16384:2 Yes Yes
2302 272 16 2/4096:8 16/32768:1 16/32768:1 16/32768:1 16/32768:1 16/32768:1 Yes Yes
2303 224 14 2/4096:7 14/28672:1 14/28672:1 14/28672:1 14/28672:1 14/28672:1 Yes Yes

Notes:

  1. The PAM Pages per Cyl (PAM pages per cylinder) column shows how many PAM pages are allocated per cylinder (for example, in an ADAFRM utility where the size does not have the suffix "B").
  2. Generally, NK4-compatible containers should have an even number in the RABN STD block size.
  3. 4K-rounded devices need RABN block sizes to be an exact multiple of 4K bytes. These are usually used with D3475-8F devices. When such devices are shared with UNIX machines, this is the case. Otherwise, you can specify the ADARUN parameter ALLOW8F=YES to avoid the ADAI6Y error message.
  4. Effective with Adabas 8.2 SP 5, support for BS2000 2001, 2003, 2004, 2007 and 2009 devices has been removed. Please contact Software AG if there is a problem with this.

If the current database device is not of a compatible type for NK4 disks and it is necessary to migrate it to those disks, you must use the ADAORD RESTRUCTUREDB utility as described in Adabas Utilities.

Container Size Calculation

To calculate the size of a container in PAM pages, take the number of RABNs for the container and multiply it by the RABN STD block size.

To check your container file, multiply the highest RABN from the ADAREP utility by the RABN STD block size, and compare it with the HIGH-US-PA field of the SHOW-FILE-ATTRIBUTES file-name,ALL command output. If the HIGH-US-PA field is less than the highest PAM page calculated from the ADAREP, you will receive a DMS0922 error from the operating system when accessing this.

Splitting Data Sets Across Volumes

In Adabas 8.2 and later versions, I/O is performed, wherever possible, in track units (see the "PAM Pages per Track" column in the device table earlier in this section). This unit is only a logical unit on this platform and is not associated with the number of PAM pages that the system allocates. If the container is to be increased onto another volume, the number of blocks allocated will be rounded automatically to the "PAM Pages per Track" value.

For private volumes, splitting is possible under every LOGON user ID:

In ISP format:

/FILE data-set,DEVICE=D3480,VOLUME=PRIV01,SPACE=60000
/FILE data-set,DEVICE=D3480,VOLUME=PRIV02,SPACE=60000

In SDF format:

/CREATE-FILE data-set,PRIV-DISK(SPACE=(60000),VOLUME=PRIV01)
/MOD-FILE-ATTR data-set,PROT=(USER-ACC=*ALL)
/MOD-FILE-ATTR data-set,SUP=PRIV-DISK(SPACE=(60000),VOLUME=PRIV02)

For public volumes, the splitting is possible under every LOGON user ID if the master catalog entry of the pubset has the attribute:

PHYSICAL-ALLOCATION=USER-ALLOWED

This attribute is set by issuing the following command under TSOS:

/MOD-MASTER-CAT CAT-ID=ABC,PHYSICAL-ALLOCATION=USER-ALLOWED

Once this attribute is set, it is possible to split a data set across two or more public volumes under any LOGON user ID that has the right of space allocation on that particular pubset.

In ISP format:

/FILE data-set,VOLUME=ABC.00,DEVICE=D3480,SPACE=60000
/FILE data-set,VOLUME=ABC.01,DEVICE=D3480,SPACE=60000

In SDF format:

/CREATE-FILE data-set,PUB(SPACE=(60000),VOLUME=ABC.00)
/MOD-FILE-ATTR data-set,PROT=(USER-ACC=*ALL)
/MOD-FILE-ATTR data-set,SUP=PUB(SPACE=(60000),VOLUME=ABC.01)

At this point, even a particular physical allocation can be made.

In ISP format:

/FILE data-set,VOLUME=ABC.02,DEVICE=D3480,SPACE=(20002,60000,ABS)

In SDF format (following the CREATE-FILE and MOD-FILE_ATTR...PROT specifications listed earlier):

/MOD-FILE-ATTR data-set,SUP=PUB(SPACE=ABSOLUTE(20002,60000),VOLUME=ABC.02)

The example extent covers physical PAM pages 20002 through 80001 on volume ABC.02. The required disk space must, of course, be available. If you are unsure of the available disk space, consult your system administrator.