gtps1m2vSystem Macros

GROUP-Recoup Descriptor Record Access

Use this system macro to do the following:

Together, the GROUP and INDEX macros are used offline to build descriptor (BKD) records, which can be loaded to the online TPF system. These descriptors provide instructions, values, and displacements that are used by recoup processing to chain chase data structures and check which file pools are being used. See TPF Database Reference for more information about descriptors.

Note:
Be careful when you use the GROUP and INDEX macros because these macros are required for recoup processing. Coding the GROUP or INDEX macro incorrectly can result in the loss of pool records that contain valid data.

Format




label
specifies a symbolic name that can be assigned to the macro statement.

BCH=location
specifies the location of the backward chain, where location is a field name or an absolute displacement as shown in the following examples:

BCH=TAGLOC
BCH=(N,32)

BCH is specified only when the backward chain is the last-in chain and when the OFL parameter is coded.

CPUID
specifies the ID of the processor where chain chase processing is to be performed. If the specified CPU is not active, the primary processor performs the chain chase at the end of recoup phase 1.

The CPUID parameter can specify one of the following:

ANY
specifies that chain chase processing for this record ID occurs on any processor that is used in the recoup run.

PRIME
specifies that chain chase processing for this record ID occurs on the primary recoup processor.

OTHER
specifies that chain chase processing for this record ID occurs on any processor other than the primary processor that is used in the recoup run.

cpuid
is the specific processor where chain chase processing for this record ID occurs.

ECB=n
specifies the maximum number of entry control blocks (ECB) that will be active to chain chase the primary (or anchor) records for this descriptor number, where n is a decimal number.

The actual number of ECBs that may be active for this descriptor may be greater depending on how the descriptor macros are coded.

Note:
The number assigned to this parameter must be less than the maximum number of ECBs that recoup will allow to be active (values BZNESR and BZNEST in the BRPEQ macro)

If USE=BASE is specified and no ECB parameter is specified, n defaults to BZNESR-1.

If USE=DSCR is specified and no ECB parameter is specified, n defaults to 0.

ENT=label
specifies exit code to run before processing the record type, where label is the label of the start of the exit code. You can use user exit code to do the following:
Note:
You can only use the ENT parameter with the USE=BASE parameter.

EXT=label
specifies code to run when record type processing is completed, where label is the label of the start of the code. One use of the EXT parameter is to run code to reverse an indicator set by the code called with the ENT parameter.
Note:
You can only use the EXT parameter with the USE=BASE parameter.

FAT
specifies the format of the file address located by the OFL and BCH parameters. The FAT parameter can be used only when the OFL parameter is coded. The following options can be coded:

FA4
specifies a 4-byte file address.

FA8
specifies an 8-byte file address.

FVN=versionnbr
specifies the file version number used by the TPFDF product to identify file structures that have blocks with different layouts than the prime block, where versionnbr is a number from 0 to 254. You can only specify the FVN parameter when MET=DBREF is specified.

GCODE=label
specifies code that will be run for fixed file records only, where label is the label of the start of the code.

Example: A fixed record contains some data indicating that there is no active structure (of pool records) currently attached to the fixed record. You can bypass chain chase processing from this particular fixed record for this recoup run.

GRP
specifies that this and all other descriptors with the same group ID are chain chased on the same processor.

grpid
is the 2-character EBCDIC or 4-character hexadecimal group ID that is assigned to a specific group of record IDs.

RCI
specifies that the related group is chain chased using recoup chain chasing indicator (RCI) processing. RCI processing uses a special set of pseudo directories and a different chain chase algorithm.

Notes:

  1. You can only use the RCI parameter with the USE=BASE parameter.

  2. Specify the DUPEELIM=YES parameter on the associated INDEX macro.

ID=id
specifies the ID of the fixed record, where id is a 2-character EBCDIC or 4-character hexadecimal record ID.

IDCOMP
specifies the ID of the record for which chain chasing must be completed before chain chasing this descriptor.

recid
is a 2-character EBCDIC or 4-character hexadecimal record ID.

versionnbr
is a version number, from 0 to 254, used to identify file structures that have different layouts.

IDFIRST
specifies one of the following:

NO
specifies that this record will be chain chased after all records with IDFIRST=YES specified.

YES
specifies that this record and any other records with IDFIRST=YES specified must be chain chased before other records are chased.

IDNEXT
specifies the ID of the record for which chain chasing will start when chain chasing is completed for this record.

IND
specifies the following indicators:

NONE
specifies that there are no indicators.

I
instructs the chain chase scheduler to ignore this GROUP macro and all statements associated with it.

C
specifies that the recoup descriptor belongs to TPF collection support (TPFCS) and only TPFCS will process this descriptor.

INDX=pointer
specifies a pointer to a common INDEX statement. This applies only when there is one INDEX statement per GROUP macro.

The INDX parameter can only be used when USE=BASE is coded on the GROUP macro.

When the DSCR parameter in the INDEX macro points to a GROUP macro, it indicates that a pool record has embedded pool addresses and needs additional description by a new set of descriptor parameters. When this occurs, the only parameters necessary on the GROUP macro are MAC, ID, and NBR.

MAC
specifies one of the following:

macroname
is the name of the data macro describing the data record containing embedded addresses. The MAC parameter is required when USE=BASE is specified and can be used when USE=DATA is specified.

NONE
specifies that no data macro describes the data record containing embedded addresses.

MET
specifies the method used for chain chasing. You must specify the MET parameter when USE=BASE is specified, but it is not necessary when USE=DSCR is specified.

COR
specifies that the fixed record is located in main storage and loaded by the primary loading segment for globals (GOGO) using the global allocator record (GO1GO). The correct global ordinal number for the global storage allocator record (GOA) must be in BAM1. No additional information is needed when MET=COR.

DBREF
specifies that the record is a TPFDF record to be chain chased by TPFDF recoup.

Notes:

  1. You can only specify MET=DBREF when USE=DSCR is specified.

  2. TPFDF recoup runs under the control of TPF recoup.

  3. You may need TPFDF DBDEF user exit code to prevent the TPFDF product from chain chasing this structure more than once.

SEQ
specifies that the fixed records are sequential and are incremented by 1 to obtain the next ordinal number.

firstord
is the first ordinal number. The default is 0.

lastord
is the last ordinal number. If the lastord parameter value is not specified, processing continues until a file address compute (FACE) program error is indicated.

nbrofords
is the total number of ordinals to process. If the nbrofords value is not specified, processing continues until a FACE program error is indicated.

(FON,Days,Alpha)
specifies the flight ordinal number (FON), where Days is the number of days in the current or gross period and Alpha is the number of alpha groups. The following table shows an example of variable values that could be used for record types that are unique to a programmed airline reservation system (PARS) application.
Record Type Days Alpha
PNID and ING 1 Total number of ING records assigned for each flight.
IND 1 Number of days in the detail period.
INM 1 1
PNIG 1 Number of Alpha groups in the TPF system (#ALPHA)
TSS 1 1

(PROG,ProgName)
specifies the name of the program that will be entered to process the fixed record. This will be a special user-written program. The name must be 4 characters long.

GZ
specifies that the address of the record is in global 1.

GY
specifies that the address of the record is in global 3.

GC
specifies that the address of the record is in the common global (P or Q).

globname
is the global name that has the address of the record; for example, @NSCKAD.

F
specifies that the address is a file address.

C
specifies that the address is a main storage (core) address.

NBR=count
specifies the number of INDEX macros to follow the GROUP macro, or the number of different record structures whose addresses are chained from or embedded into the fixed record, where count is a decimal number.
Note:
Do not include in the count, INDEX macro statements that specify the ALTID parameter.

OFL=location
specifies the location that contains the file address of the overflow of the fixed record, where location is a field name or an absolute displacement as shown in the following examples:
OFL=TAGLOC
OFL=(N,24)
Note:
If the overflow is not identical in format to the prime or fixed record, describe the overflow with an INDEX macro.

RCC
specifies the record code check indicator (RCC). If the value specified with the RCC parameter is not YES or NO, YES is assumed. If the RCC parameter is not specified, NO is assumed.

YES
specifies that the RCC of the prime record is copied to the file address reference word (FARW) before searching for the overflow records in segments BRFM and BPM0.

NO
specifies that the RCC of the prime record is not copied to the FARW in the same segments.

REG=Rx
specifies the base register used during online processing when USE=DATA is specified.

SUFFIX=symbol
specifies a symbol to use during online processing to tell the difference between DSECTS. The default is a blank character.

TIME=seconds
specifies the amount of time to allow all the ECBs to complete chain chasing this structure before starting timeout processing, where seconds is a number of seconds from 0 to 32 767. This parameter is required when USE=BASE is specified and defaults to 0 when USE=DSCR is specified.
Note:
Timeout processing will not occur if you are running recoup in 1052 state. Operator intervention is required to stop processing a descriptor that takes too long to be completed.

TYP=recordtype
specifies the symbolic FACE record type (for example, #WAARI) of the fixed record.

Notes:

  1. You must specify the TYP parameter when MET=SEQ or MET=FON is specified.

  2. If you specify USE=BASE without specifying the TYP parameter, the record type defaults to 0.

USE
specifies one of the following:

BASE
specifies that the GROUP macro describes a record that is a fixed record or the anchor record of the data structure being chain chased.

DSCR
specifies that the GROUP macro describes a record that was retrieved as an embedded pool address of another record that was defined previously.

DATA
specifies that the GROUP macro is used online and is generating the group macro data DSECT only.
Note:
USE=DATA is used only for online processing.

TPFCS
specifies that the GROUP macro is used for TPFCS recoup only.
Note:
TPF recoup will ignore these group descriptors while doing chain chasing. You must ensure that all IDs used with USE=TPFCS are unique.

VER
specifies the ID version number of a TPF file; used for chain chasing records with the same ID but different data. You cannot specify the VER parameter if MET=DBREF is specified.

00
specifies that version 0 of the file is chain chased.

ALL
specifies that all versions of the file are chain chased.

versionnbr
is a version number from 0 to 254 of the file that is chain chased.

Entry Requirements

Because this macro is declarative, there are no entry requirements.

Return Conditions

None.

Programming Considerations

Examples