ONLADD: Allocating New ASSO or DATA Space Dynamically

This section describes how you can add data sets to the Associator (ASSO) or Data Storage (DATA) space without restarting your nucleus.

In contrast to the ADADBS ADD utility function, ONLADD does not require that a nucleus restart to make the space that the new data set provides available to the current nucleus session. ADADBS determines the next data set number from the current database configuration (GCB) and opens the new ASSO or DATA data set with this number. Therefore you must be sure that the JCL for the ADADBS ONLADD run is updated accordingly. For example, if you are running ADADBS ONLADD for Data Storage and the highest data set number currently in use for Data Storage is "2", your JCL for the ADADBS ONLADD run must include DD statement "DDDATAR3" that identifies the data set name of the next, new data set.

A maximum of 99 physical extents is allowed for ASSO and DATA data sets. However, your actual real maximum could be less because the extent descriptions of all ASSO, DATA, and Data Storage Space Table (DSST) extents must fit into the general control blocks (GCBs). For example, on a DDASSOR1 with the standard 3390 device type, there can be only 78 Associator, Data Storage, and DSST extents each (or there could be more of one extent type if there is less for another).

graphics/adadbs_onladd.png

This document covers the following topics:

For complete steps describing how to add a data set to the available Associator or Data Storage space without shutting down your Adabas database, read Dynamically Increasing Associator and Data Storage Space.


Essential Parameters

One of the following parameters must be specified. Both parameters may not be specified in the same ADADBS ONLADD statement.

ASSOSIZE: Size of ASSO Data Set to be Added

Specify the number of cylinders to be contained in the new Associator data set. To specify blocks, append a "B" after the value.

DATASIZE: Size of DATA Data Set to be Added

Specify the number of cylinders to be contained in the new Data Storage data set. To specify blocks, append a "B" after the value.

Optional Parameters

The following parameters are optional.

ASSODEV: ASSO Data Set Device Type

Specify the device type to be used for the new Associator data set. This parameter can only be specified if the ASSOSIZE parameter is also specified.

Specify this parameter if it differs from the ADARUN DEVICE parameter.

DATADEV: DATA Data Set Device Type

Specify the device type to be used for the new Data Storage data set. This parameter can only be specified if the DATASIZE parameter is also specified.

Specify this parameter if it differs from the ADARUN DEVICE parameter.

NOUSERABEND: Termination without Abend

When a parameter error or a functional error occurs while this utility function is running, the utility ordinarily prints an error message and terminates with user abend 34 (with a dump) or user abend 35 (without a dump). If NOUSERABEND is specified, the utility will not abend after printing the error message. Instead, the message "utility TERMINATED DUE TO ERROR CONDITION" is displayed and the utility terminates with condition code 20.

Note:
When NOUSERABEND is specified, we recommend that it be specified as the first parameter of the utility function (before all other parameters). This is necessary to ensure that its parameter error processing occurs properly.

TEST: Test Syntax

The TEST parameter tests the operation syntax without actually performing the operation. Only the syntax of the specified parameters can be tested; not the validity of values and variables.

Note:
The validity of values and variables cannot be tested; only the syntax of the specified parameters can be tested. For more information about using the TEST parameter with ADADBS functions, read Syntax Checking with the TEST Parameter.

Restrictions and Considerations

The following restrictions exist for the use of the ADADBS ONLADD function:

  1. You cannot run this function while the ADARES REGENERATE database or ADARES REGENERATE FILE with CONTINUE utility functions are in progress.

  2. If a nucleus starts and attempts to join an active cluster that is performing an ONLADD operation at the same time, there is a small chance that the start of the new nucleus will fail if it participates only in part of the intracluster communication for the ONLADD. The starting nucleus will get Parm-Error 61 (important fields in the GCB changed while this nucleus was starting). If this happens, restart the nucleus.

  3. If an ADARES REGENERATE database needs to be run for an Adabas session in which an ONLADD operation was performed, consider the following:

    • Make sure the added ASSO or DATA data set is available -- that is, allocated and formatted. This can be done either initially or during the regenerate process at the time of the ONLADD operation.

    • ADARES will stop the regenerate process at the SYNS-82 checkpoint that was created by the ONLADD operation. Make sure the added ASSO or DATA data set is available now, if this has not already been done initially.

    • Rerun the original ADADBS ONLADD operation manually to allocate the added ASSO or DATA space to the database.

    • Restart the ADARES REGENERATE utility with the FROMCP and FROMRABN parameters referring to the SYNS-82 checkpoint of the ONLADD.

Example

The following example shows the two jobs that could be used to dynamically add a Data Storage container data set to database 123. JCL statement DDDATAR3 identifies the new Data Storage data set.

The first job creates and formats the new Data Storage data set.

//*
//*  Create and format a new DATA container data set
//*  (50,000 cylinders on device type 8391)
//*
//CREATE   EXEC  PGM=ADARUN
//DDDATAR3 DD  DSN=ADA.DB123.DATAR3,DISP=(NEW,CATLG),
//             SPACE=(CYL,50000),...
...
//DDCARD   DD  *
ADARUN PROG=ADAFRM,DBID=123
//DDKARTE  DD  *
ADAFRM DATAFRM SIZE=50000,NUMBER=3,DEVICE=8391

The second job allocates the new Data Storage data set to the database.

//*
//*  Dynamically allocate the new DATA data set to the database
//*
//ONLADD   EXEC  PGM=ADARUN
//DDDATAR3 DD  DSN=ADA.DB123.DATAR3,DISP=SHR
...
//DDCARD   DD  *
ADARUN PROG=ADADBS,DBID=123
//DDKARTE  DD  *
ADADBS ONLADD DATASIZE=50000,DATADEV=8391

Appropriate JCL statements for the new data set need to be added to the nucleus startup job and to any Adabas utility procedures you have defined.