B97ARC: Archive batch utility

Overview

The archive batch utility (B97ARC) archives lists and index data according to what has been specified in the list definitions and in the archive pool definitions.

Each list that is to be archived is assigned to an archive pool at the run time of the archive batch utility. This assignment is based on the following three criteria:

  • Archive retention period
  • Archive media
  • Owner

Which lists are archived

The archive batch utility archives all lists that have been marked for archive (status "Arch = Pend").

Lists can be marked for archive in the following ways:

  • Automatically when reading in the list, which requires that the Adabas Audit Data Retrieval list definition specifies Yes in the Automatic Archive field
  • Manually using the line command A

Status of archived lists

After a list and its indexes have been successfully archived, the Adabas Audit Data Retrieval archive batch utility changes the archive status of the list from Pend to Yes.

Checking archive pool and archive subpool definitions

After program start, the archive batch utility first checks the validity of all archive pool and archive subpool definitions.

Each archive pool and its subpools must fulfill the following conditions to be valid:

  • There must be at least one archive subpool whose archive retention period and archive medium is identical to the archive retention period and archive medium of the archive pool.
  • The archive retention period of an archive subpool may not be higher than the archive retention period of the corresponding archive pool.

When a definition is invalid

If the archive batch utility comes across an archive pool definition that is invalid, the archive batch utility:

  • Archives all lists that have been assigned to valid archive pools
  • Does not archive any lists that have been assigned to invalid archive pools (these lists keep their archive status Pend (archive pending))
  • Ends with a return code other than 0

Running B97ARC

You should run this utility on a daily basis to ensure that newly indexed lists are archived.

Tailored JCL for this job can be found in member B97ARC in the BETA97.CNTL and in the corresponding step of the B97DAILY job.

You can also submit this batch utility online via option S.3.1. This will generate JCL from member SE97ARCH of the BETA97.ISPSLIB (skeleton library).

JCL

+--------------------------------------------------------------------+
|jobcard |
|//B97ARC EXEC PGM=BST01RFF,REGION=0M,PARM=('S=97', |
|// 'PGM=B97ARC', |
|// 'B01LST=xx', |
|// 'B97LST=xx', |
|// 'SIGNON=YES') |
|//* |
|//STEPLIB DD DISP=SHR,DSN=BETA97.LOAD |
|// DD DISP=SHR,DSN=BSA.LOAD |
|//* |
|//SFFPARM DD DISP=SHR,DSN=BETA.PARMLIB |
|//B97DEF DD DISP=SHR,DSN=BETA97.DB.DEF |
|//* |
|//SYSPRINT DD DUMMY |
|//IRMLOG DD SYSOUT=* |
|//IRMPRINT DD SYSOUT=* |
|//* |
|//SFFFDUMP DD SYSOUT=* |
|//SYSABEND DD SYSOUT=* |
|//* |
+--------------------------------------------------------------------+

Return codes

0

The program terminated normally.

4

This return code can be caused by the following:

  • The program did not find any data to be archived.
  • The program found one or several invalid archive pool definitions, but no lists were assigned to these invalid archive pools.

The program terminated normally.

>4

One or several errors occurred during processing.
Please check the job log for details.

Some return codes are program-specific. Others are standard return codes which can also be modified. More information on standard return codes can be found in "Return codes".

IRMLOG

A processing log is written to DD IRMLOG. It contains the following information:

  • Number of lists/reports to be archived (archive requests)
  • Number of archive subpools
  • Archive pool status (OK or ERRor)

+------------------------------------------------------------------------------------------------+
|IRM1561I PROGRAM: B97ARC VERSION: V7R200 PTFLVL: ptflvl COMPILED: date,time |
|IRM1800I ARCHIVE PROCESSING STARTED - DATE: 10.03.2020, TIME: 16:31:42 |
|IRM1801I ************************************************************************************* |
|IRM1801I 000000 ARCHIVE REQUEST(S) FOR POOL QI#C002 / QDOC SUBPOOL(S) 002 STATUS OK |
|IRM1801I 000000 ARCHIVE REQUEST(S) FOR POOL QI#C010 / QDOC SUBPOOL(S) 002 STATUS OK |
|IRM1801I 000000 ARCHIVE REQUEST(S) FOR POOL QI#D003 / QDOC SUBPOOL(S) 002 STATUS OK |
|IRM1801I 000004 ARCHIVE REQUEST(S) FOR POOL RJDSK10 / CUST001 SUBPOOL(S) 001 STATUS OK |
|IRM1801I ... |
|IRM1801I ------------------------------------------------------------------------------------- |
|IRM1801I 16:31:43 ARCHIVE OPENED FOR POOL RJDSK10 |
|IRM1801I FILE(*) NEW CATALOG DEFER DSNAME(TRASH.REINH1.E20069.C003) |
|IRM1801I EXPDT(2031/079) TRACKS RELEASE SPACE(00200) |
|IRM1801I 16:31:43 ARCHIVE CLOSED FOR POOL RJDSK10 |
|IRM1801I ************************************************************************************* |
|IRM1899I ARCHIVE PROCESSING ENDED - DATE: 10.03.2020, TIME: 16:31:43, RC: 0000 |
+------------------------------------------------------------------------------------------------+

IRMPRINT

DD IRMPRINT itemizes the archive requests for each archive pool. The log contains the following:

  • DATE / TIME: Creation date and time of the list/report
  • FORM / EXTENSION / REPORT: Name of the list
  • PAGES: Number of pages of the list/report
  • STATUS: Status of this request (internal return code)
  • RETPD / M / OWNER: archive retention period, medium, and owner
  • The retention period, medium (D=disk, T=tape, O=optical disk, C=centera), and owner are output only if an error occurred.

+-----------------------------------------------------------------------------------------------------+
|Date: 10.03.2020 Product: Beta 97 ARCHIVE UTILITY Page: 1 |
|Time: 16:31:42 Version: V7R2 POOL: RJDSK10 |
| |
| |
|Date Time Form Extension Report Pages Status Retpd M Owner |
|---------- -------- -------- ---------------- ---------------- -------- ------- ----- - -------- |
|10.03.2020 14:09:46 REJ BALDESCOMPTES 00000005 00005 D CUST001 |
|10.03.2020 14:12:46 REJ TRADE 00000015 00010 D CUST001 |
|10.03.2020 14:19:48 REJ TRADE 00000015 00010 D CUST001 |
|10.03.2020 14:22:49 REJ INVENTORY 00000009 00010 D CUST001 |
| |
|Date: 10.03.2020 Product: Beta 97 ARCHIVE UTILITY Page: 2 |
|Time: 16:31:42 Version: V7R2 POOL: NO MATCH |
| |
| |
|Date Time Form Extension Report Pages Status Retpd M Owner |
|---------- -------- -------- ---------------- ---------------- -------- ------- ----- - -------- |
|11.03.2020 16:45:35 REJ TRADE 00000015 RC=2402 00365 C CUST001 |
+-----------------------------------------------------------------------------------------------------+

Return codes in Status column

Following is a list of return codes that may occur in the Status column.

If the return code displayed in your log is not in this list, check whether the Adabas Audit Data Retrieval started task was available during the entire run of the archive batch utility. If this was not the case, start the system and rerun the archive batch utility so that the remaining lists can be archived. For a list of codes, see "Database codes" in BSA Messages and Codes.

Return code

Description

1505

Reason: The list has been assigned to an archive pool containing at least one subpool for archiving to optical disks, but there are no logical volumes available in the archive device table for the owner of the list.

Result: The list is not archived. The archive status of the list remains Pend (Archive pending).

Action: Add the required definitions using option A.4. For more information, see "Defining archive devices for optical disks".

2401

Reason: The list has been assigned to the best matching archive pool based on the criteria archive medium, retention period, and owner, but this archive pool had to be set to 'error' because the archive pool definition is invalid with these archive subpool definitions.

Result: The list is not archived. The archive status of the list remains Pend (Archive pending).

Action: Correct the definition of the archive pool and/or subpools in question. The list will be archived at the next run of the archive batch utility.

2402

Reason: The list could not be assigned to any archive pool based on the criteria archive medium, retention period, and owner.

Result: The list is not archived. The archive status of the list remains Pend (Archive pending).

Action: Check the archive medium, retention period, and owner specified in the list definition and the archive pool definitions. Do one of the following:

  • If the list definition is correct, change the archive pool definitions. The list will be archived at the next run of the archive batch utility.
  • If the list definition is incorrect, update the list definition to ensure that future generations of the list will be processed correctly. To update the archive information of an existing generation of the list, change the archive status of the list to No (line command UA) and then to Pend (line command A) (see "Manually marking lists for archiving").

2403

Reason: A device could not be accessed during writing (DYNALLOC error).

Result: The list is not archived. The archive status of the list remains Pend (Archive pending).

Action: Check the system messages of the job to find out which device caused this error. The device to be used is specified in the Unit field in the archive subpool definition. After the device specified in the archive subpool definition has become available (again), you can rerun the archive batch utility to archive the lists concerned.