This section describes the steps needed to install the Adabas System Coordinator Versioning Tool.
The Versioning Tool objects (load modules, macros and sample jobs) are all supplied with Adabas System Coordinator. All objects have the name prefix "VER".
The steps needed for a successful installation of the Versioning Tool are as follows:
Section | Description | Required | Job Name |
---|---|---|---|
Before You Start | Create Versioning Libraries. | Yes | |
Client Versioning (Batch) | Create client versioning tables(s) and link module(s) for Batch clients. | If Batch client versioning is to be used. |
VERI065 VERI085 VERI088 |
Client Versioning (CICS) | Create client versioning tables(s) and link module(s) for CICS clients. | If CICS client versioning is to be used. |
VERI065 VERI085 |
Database Versioning | Assemble the database versioning table. | If database versioning is to be used. |
VERI055 |
Daemon Versioning | Assemble the daemon versioning table. | If daemon versioning is to be used. |
VERI060 |
Final Steps |
Copy and rename required product modules into the Versioning Library. Add the Versioning Libraries to job control. |
Yes |
VERI080* |
Before you start, versioning load libraries need to be created.
Software AG recommends that versioning is implemented by creating a new library to hold copies of product modules that have been renamed in support of versioning. This will protect the original modules. It will also enable new maintenance to be applied to the original modules, which can then be refreshed in the versioning libraries by re-running the appropriate installation jobs.
This library is referred to as the ALLVERS Versioning Library and, in the sample job control supplied, is named SAG.CORVER.ALLVERS.LOAD.
The library is added to the Joblib or Steplib concatenation of all Adabas databases, client application jobs (for example, batch jobs, TSO CLISTs, CICS jobs), batch Adabas server start-up jobs and Coordinator daemon tasks that require versioning support.
If you are implementing Client Versioning, you need to create a second library that will be used for the special link modules (VERLNK01, VERCIC01, ADALNKnn, ADABASnn), and the client versioning tables. This library is referred to as the Client Versioning Library and, in the sample job control supplied, is named SAG.CORVER.CLIENT.LOAD.
Note:
It is imperative that these link modules are only used in the client
environment. Therefore, they must not be placed in the ALLVERS Versioning
Library that is used by the Adabas databases and System Coordinator or SAF
Security daemons.
Copy the client versioning modules to the Client Versioning Library (Job I085)
(Optional) Zap the Batch versioning link module defaults (Job I088)
Use sample job VERI065 to assemble and link the Batch versioning table, VERC01 (standard) or VERC09 (re-entrant).
Note:
The versioning table load modules must be linked REUS, and not
RENT.
Using the VERCL macro, the client versioning table for Batch clients can be created. Here is an example:
* ------------------------------------------------- * Default controls for Batch client versioning * ------------------------------------------------- VERCL JOBTYPE=BATCH, Batch clients OVERIDES=YES, WTO=NO, LNKGBLXX=YES, BINDGBLS=IGNORED, DBID=DDCARD, SVC=DDCARD * ------------------------------------------------- * >>> Versioned Link Module Entry * ------------------------------------------------- VERCL VRL=823, Version 8.2.3 DEFAULT=YES, Default link module SUFFIX=82 * ------------------------------------------------- * >>> Versioned Link Module Entry * ------------------------------------------------- VERCL VRL=814, Version 8.1.4 SUFFIX=81, DBID=15, SVC=ASIS * ------------------------------------------------- * >>>>>> Specific Jobname Entry * ------------------------------------------------- VERCL JOBNAME=jobname, Uses Version 8.1.4 DBID=15, SVC=ASIS * ------------------------------------------------- VERCL TYPE=END End of Controls |
The (mandatory) first element introduces default controls for (a) general Batch client versioning and (b) Versioned Link Module Entries.
Following the mandatory first element are elements which identify the versioned link module(s) to be used – these are referred to as Versioned Link Module Entries. At least one entry must be defined and one of those entries must be defined to be the default link module. In the example above, the version 8.2.3 link module identified by a suffix of 82 has been defined to be the default link module.
Versioned Link Module Entries which are not defined as the default link module are each followed by one or more Specific Jobname Entries which comprise of a list of job names that will use the versioned link module that precedes them. In the example above jobname will use the version 8.1.4 link module identified by a suffix of 81.
If a job name is not matched (at runtime) with an entry in the versioning table then it will use the default link module. In the example above, this would be the version 8.2.3 link module identified by a suffix of 82.
Versioned Link Module Entries can optionally choose to override the
default controls defined by the mandatory first element but only if
OVERIDES=YES
has been specified (as in the example above).
Refer to Client Versioning Controls (Batch) for an explanation of the VERCL controls.
Use sample job VERI085 to copy the supplied load module
VERLNK01
to your Client Versioning Library (see "Additional Load library for Client
Versioning") as ADALNK
and the supplied load
module VERLNR01
as ADALNKR
(making sure the real
ADALNK
and ADALNKR
are not lost).
Important:
This Client Versioning Library must not be made available to
any target in the Software AG network which acts as a DBID – such as Adabas,
Broker, Com-Plete, Entire System Server, Net-Work, System Coordinator daemon
etc.
Certain fixed offsets in the Adabas link module contain information
which is required by some callers of ADALNK
, for example, the
length of the USER and REVIEW extensions.
If you use other than default values, you must zap the correct values
into the ADALNK
and ADALNKR
copies of
VERLNK01
and VERLNR01
. Sample job VERI088 may be used
to do this.
Copy your existing ADALNK
and LNKGBLS
modules
to the Client Versioning Library, renaming them to have the appropriate suffix:
ADALNKxx
/ LNKGBLxx
for
standard batch.
ADALNRxx
/ LNRGBLxx
for
re-entrant batch.
There are several prerequisites which must be fulfilled before you can use the CICS client versioning facility:
Ensure that PARMTYP=ALL
is set in LGBLSET
(this is the default).
PPT entries must be defined and installed for the following:
The Adabas client versioning link module (ADABAS, or other name you may choose). This must be specified as Resident.
The assembled CICS versioning table VERC03. This must be specified as Resident.
All renamed Adabas CICS link modules, Adabas TRUEs and Adabas PLT programs (LNKENAB and ADACIC0).
All renamed Add-on product modules (if they currently have PPT entries defined for them).
Use sample job VERI065 to assemble and link the CICS versioning table, VERC03.
Using the VERCL macro, the client versioning table for CICS clients can be created. Here is an example:
* ------------------------------------------------- * Default controls for CICS client versioning * ------------------------------------------------- VERCL JOBTYPE=CICS, CICS clients COFF=0, WTO=NO * ------------------------------------------------- * >>> Versioned Link Module Entry * ------------------------------------------------- VERCL VRL=823, Version 8.2.3 DEFAULT=YES, Default link module SUFFIX=82 * ------------------------------------------------- * >>> Versioned Link Module Entry * ------------------------------------------------- VERCL VRL=814, Version 8.1.4 SUFFIX=81 * ------------------------------------------------- * >>>>>> Specific Transaction-ID Entry * ------------------------------------------------- VERCL TRAN=AA82 Uses Version 8.1.4 * ------------------------------------------------- VERCL TYPE=END End of Controls |
The (mandatory) first element introduces default controls for general CICS client versioning.
Following the mandatory first element are elements which identify the versioned link module(s) to be used – these are referred to as Versioned Link Module Entries. At least one entry must be defined and one of those entries must be defined to be the default link module. In the example above, the version 8.2.3 link module identified by a suffix of 82 has been defined to be the default link module.
Versioned Link Module Entries which are not defined as the default link module are each followed by one or more Specific Transaction-ID Entries which comprise of a list of transaction-IDs that will use the versioned link module that precedes them. In the example above transaction-ID AA82 will use the version 8.1.4 link module identified by a suffix of 81.
If a Transaction-ID is not matched (at runtime) with an entry in the versioning table then it will use the default link module. In the example above, this would be the version 8.2.3 link module identified by a suffix of 82.
Refer to Client Versioning Controls (CICS) for an explanation of the VERCL controls.
Use sample job VERI085 to link the supplied load module VERCIC01 with your CICS stubs, naming the output load module appropriately (for example ADABAS).
For each suffix defined in the CICS versioning table, you will need modules named as follows:
Module | Description |
---|---|
ACIOPTxx | Adabas CICS Installation Options Table. |
ACINAMxx | Adabas CICS Names Module. |
CICGBLxx | Adabas CICS Globals Table. |
ADAENAxx | Adabas CICS PLT TRUE enabler. |
ADABASxx | Adabas CICS Link module. |
ADATRUxx | Adabas CICS TRUE. |
where xx is the suffix and the first 6 characters of the module name must be as shown above.
Sample steps to create a set of versioning modules with suffix 82:
Step | Description and sample input |
---|---|
Assemble and link ACIOPT82 |
Use the Adabas CICS sample job ASMCOPT with input: MACIOPT ENTRY=GLOBAL,MNTRUE=8 MACIOPT ENTRY=GROUP,GTNAME=CICGBL82 MACIOPT ENTRY=FINAL END |
Assemble and link ACINAM82 |
Use the Adabas CICS sample job ASMCINS with input: MACINS TRUENAME=ADATRU82,GTNAME=CICGBL82 END |
Assemble and link CICGBL82 |
Use the Adabas CICS sample jobs ASMGBLS and LNKGCICS and source CICSGBL with: GBLNAME=CICGBL82, ENTPT=ADABAS, TRUENM=ADATRU82,
|
Create ADAENA82 |
Link ADACIC0 with ACIOPT82 created in an earlier step: MODE AMODE(31),RMODE(ANY) INCLUDE ACILIB(ADACIC0) INCLUDE USERLIB(ACIOPT82) ENTRY ADACIC0 NAME ADAENA82(R) |
Create ADABAS82 |
Link ADACICS with ACINAM82 created in an earlier step: MODE AMODE(31),RMODE(ANY) REPLACE ACINAMES INCLUDE ACILIB(ADACICS) INCLUDE USERLIB(ACINAM82) ENTRY ADACICS NAME ADABAS82(R) |
Create ADATRU82 |
Link or copy ADACICT: MODE AMODE(31),RMODE(ANY) INCLUDE ACILIB(ADACICT) ENTRY ADACICT NAME ADATRU82(R) |
Notes:
Use sample job VERI055 to assemble the database versioning table, VERDBT.
Using the VERDB macro, the database versioning table will have an entry for each installed version of the Add-on products. Here is an example:
VERDB SUFFIX=81,VRL=812 VERDB SUFFIX=82,VRL=822 VERDB SUFFIX=xx,VRL=vrs VERDB TYPE=END
The following rules apply:
The values for SUFFIX=
are unique across all VERDB
entries in the table.
The values for VRL=
are unique across all VERDB entries
in the table.
The table must end with VERDB TYPE=END
.
Refer to Database Versioning Controls for an explanation of the VERDB controls.
Use sample job VERI060 to assemble the daemon versioning table, VERDMT.
Note:
This is an optional activity. You may still run the Adabas System
Coordinator and/or Adabas SAF Security daemon from the original product
libraries, if desired.
Using the VERDM macro, the daemon versioning table will have an entry for each daemon and its corresponding suffix and version. Here is an example:
VERDM SUFFIX=81,VRL=812,JOBNAME=SYSCO812 VERDM SUFFIX=82,VRL=822,JOBNAME=SYSCO822 VERDM SUFFIX=82,VRL=822,JOBNAME=SAFDAEMN VERDM SUFFIX=xx,VRL=vrs,JOBNAME=daemon-name VERDM TYPE=END
Refer to Daemon Versioning Controls for an explanation of the VERDM controls.
Refer to the sample jobs VERI080* to identify and customize the one relevant to the version whose modules you wish to copy.
The sample jobs indicate all of the modules that require copying and renaming. No other product modules should be renamed.
The ALLVERS Versioning Library must be added to the Joblib or Steplib concatenation of all Adabas database start-up jobs that require versioning support. The library should be added at the top of the concatenation.
If you want to run the System Coordinator or SAF Security daemon from the same versioning load library, you should also add the ALLVERS Versioning Library first in the daemon Joblib or Steplib concatenation.
The ALLVERS Versioning Library and the Client Versioning Library must be added to the top of the Steplib concatenation for any batch jobs that require versioning support.
For CICS, the Client Versioning Library and the ALLVERS Versioning Library must be added to the DFHRPL and Steplib concatenations.
The Versioning Tool operation is controlled by the following types of controls:
This section lists the VERCL controls which can be used for Default Settings.
Control | Overridable |
---|---|
JOBTYPE | - |
OVERIDES | - |
WTO | - |
LNKGBLXX | Y |
BINDGBLS | Y |
DBID | Y |
SVC | Y |
This section lists the VERCL controls which can be used for Versioned Link Module Entries.
Control | Overridable |
---|---|
VRL | - |
SUFFIX | - |
DEFAULT | - |
LNKGBLXX | Y |
BINDGBLS | Y |
DBID | Y |
SVC | Y |
This section lists the VERCL controls which can be used for Specific Jobname Entries.
Control | Overridable |
---|---|
JOBNAME | - |
LNKGBLXX | - |
BINDGBLS | - |
DBID | - |
SVC | - |
This section lists the VERCL controls which can be used for Default Settings.
Control | Overridable |
---|---|
JOBTYPE | - |
COFF | - |
WTO | - |
This section lists the VERCL controls which can be used for Versioned Link Module Entries.
Control | Overridable |
---|---|
VRL | - |
SUFFIX | - |
DEFAULT | - |
This section lists the VERCL controls which can be used for Specific Transaction-ID Entries.
Control | Overridable |
---|---|
TRAN | - |
This section lists the VERDB controls which can be used for Database Versioning.
Control | Overridable |
---|---|
SUFFIX | - |
VRL | - |
This section lists the VERDM controls which can be used for Daemon Versioning.
Control | Overridable |
---|---|
JOBNAME | - |
SUFFIX | - |
VRL | - |
This section provides a description of each Versioning control.
Control Element | Use | Possible Values | Default |
---|---|---|---|
Default Settings Versioned Link Module Entry Specific Jobname Entry |
IGNORED: A dynamically loaded link globals table must be used, if one cannot be found an error is raised. REQUIRED: A dynamically loaded link globals table is ignored in favor of using a linked-in globals table. |
IGNORED | REQUIRED |
IGNORED |
Control Element | Use | Possible Values | Default |
---|---|---|---|
Default Settings |
This parameter is no longer used and will be removed in a future version, until then a value of zero should be specified. |
0 |
none |
Control Element | Use | Possible Values | Default |
---|---|---|---|
Default Settings Versioned Link Module Entry Specific Jobname Entry |
DDCARD: The value from the ADARUN DBID= parameter is to be propagated to the suffixed dynamic link globals table (if used). Note: ASIS: The value in the link globals table (whichever one is used) is taken "as is"; any other value (such as ADARUN DBID=) is ignored. Number: A specific default database number. |
DDCARD | ASIS | number |
ASIS |
Control Element | Use | Possible Values | Default |
---|---|---|---|
Versioned Link Module Entry |
YES: Identifies the default link module. Only one default link module is allowed. Do not define any Specific Jobname Entries or Specific Transaction-ID Entries for the default link module. NO: This link module is only used by the Jobnames or Transaction-IDs listed immediately following it (defined by Specific Jobname Entries or Specific Transaction-ID Entries). |
YES | NO |
NO |
Control Element | Use | Possible Values | Default |
---|---|---|---|
Specific Jobname Entry Daemon Versioning |
Specific Jobname Entry: Identifies the Jobnames that are to use the link module version identified prior to this job-name list (defined by a Versioned Link Module Entry). Daemon Versioning: Identifies the jobname of a System Coordinator or SAF Security daemon. |
jobname |
none |
Control Element | Use | Possible Values | Default |
---|---|---|---|
Default Settings |
Identifies the client versioning job type. |
BATCH | CICS |
none |
Control Element | Use | Possible Values | Default |
---|---|---|---|
Default Settings Versioned Link Module Entry Specific Jobname Entry |
YES: A versioned link globals table is to be used, paired with the versioned link module of the same suffix. NO: No versioned link globals table is to be used even when using a suffixed link module. |
YES | NO |
YES |
Control Element | Use | Possible Values | Default |
---|---|---|---|
Default Settings |
Allow Default controls to be overridden by Versioned Link Module Entries. |
YES | NO |
YES |
Control Element | Use | Possible Values | Default |
---|---|---|---|
Versioned Link Module Entry Database Versioning Daemon Versioning |
Identifies the two character suffix to be used when loading all necessary modules. Example: A JOBTYPE=BATCH Versioned Link Module Entry with SUFFIX=82 would cause ADALNK82 or ADALNR82 (for re-entrant operation) to be loaded and, if LNKGBLXX=YES, LNKGBL82 or LNRGBL82. |
Any two characters. |
none |
Control Element | Use | Possible Values | Default |
---|---|---|---|
Default Settings Versioned Link Module Entry Specific Jobname Entry |
DDCARD: The value from the ADARUN SVC= parameter is to be propagated to the suffixed dynamic link globals table (if used). Note: ASIS: The value in the link globals table (whichever one is used) is taken "as is"; any other value (such as ADARUN SVC=) is ignored. Number: A specific default SVC number. |
DDCARD | ASIS | number |
ASIS |
Control Element | Use | Possible Values | Default |
---|---|---|---|
Specific Transaction-ID Entry |
Identifies the Transaction-IDs that are to use the link module version identified prior to this transaction-ID list (defined by a Versioned Link Module Entry). |
Transaction-ID |
none |
Control Element | Use | Possible Values | Default |
---|---|---|---|
Versioned Link Module Entry Database Versioning Daemon Versioning |
VRL needs to be set accurately because it is used internally by the software to ensure correct operation. For Client Versioning (VERCL): Denotes the version, release and maintenance level of the Adabas link module. For Database/Daemon Versioning (VERDB/ VERDM): Denotes the version, release and maintenance level of the suffixed collection of modules. |
Any supported VRL. |
none |
Control Element | Use | Possible Values | Default |
---|---|---|---|
Default Settings |
Details of the versioning configuration will be written to the console. |
YES | NO |
YES |
At the end of the installation process, you can perform verification checks to ensure successful installation, as follows:
Setting the WTO control to YES will result in job-specific details of the configuration being written to the console enabling verification, as follows:
+VER101I Jobname Link Module Globals SVC DBID +VER101I -------- ----------- -------- ------ ------ +VER101I ADA81TST ADALNK81 BINDGBLS ASIS ASIS |
If client versioning detects an error (for example, the required versioned link module is not available), it issues a message and rejects all Adabas commands with response 101, subcode 87.
During CICS initialisation you will see a set of ADAK messages for each TRUE, each of which will say "in use by ADABAS link routine ADABAS". This is because the versioning module is invoked by each PLT routine. The versioning module ensures that the correct TRUE and link module are initialized.
Setting the WTO control to YES will result in full details of the configuration being written to the console enabling verification, as follows:
+VER101I Criteria Link Module +VER101I -------- ----------- +VER101I Default ADABASDF +VER101I DEMO ADABASDE +VER101I N426 ADABAS81 |
If client versioning detects an error (for example, the required versioned link module is not available), it issues a message and rejects all Adabas commands with response 101, subcode 87.
If Database Versioning is active then messages will be issued to the console during nucleus initialization. These can be used to verify that the software is installed correctly, and the correct product/version sets of modules have been located. A sample of such messages follows:
Message ID | Description |
---|---|
VER001I | VERPOP initialized. |
VER002I | ADAPOPnn loaded for Version vrs. |
VER003S | No versioning table found, cannot continue. |
VER004W | No versioning products found, calls suppressed. |
VER005W | ADAPOPnn not found for Version vrs. |
VER006I | ADAppp loaded for Version vrs. |
VER005W | ADAppp not found for Version vrs. |