Use this system macro to release control records associated with TPF
transaction services processing. This macro is only for use by the
transaction manager (TM) and resource managers (RMs). Through the use
of the $RELRC macro, the TM and RMs are able to control and release the commit
scope environment.
Format
- TYPE
- Defines the type of control record to be released. This parameter
is required. The following control record types are valid:
- TMCR
- Releases the transaction manager control record (TMCR).
- RMCR
- Releases the resource manager control record (RMCR) and all associated
commit scope control records.
- CCR
- Releases a single commit scope control record.
- ECB
- Defines the area to which the TMCR is anchored. This parameter is
required when you code TYPE=TMCR.
- YES
- Specifies that the TMCR is anchored out of the ECB at the CE2TMCR
field.
- NO
- Specifies that the ECB TMCR anchor is not to be used. Instead, the
TMCR address is supplied in the register specified in the CR parameter.
- CR=Rx
- A register (R1-R7) that contains the address of the record to be
released. This parameter is required when you code ECB=NO, TYPE=RMCR,
or TYPE=CCR.
Entry Requirements
- When you specify ECB=YES, R9 must contain the address of the ECB being
processed. Control records are anchored off the ECB through the CE2TMCR
field. The $RELRC macro uses and updates this field.
- When you specify ECB=NO, the register, which is specified by the CR
parameter, must contain the address of the current TMCR.
- When you specify TYPE=RMCR, the register, which is specified by the CR
parameter, must contain the address of the RMCR to be released.
- When you specify TYPE=CCR, the register, which is specified by the CR
parameter, must contain the address of the CCR to be released.
Return Conditions
- Control is returned to the next sequential instruction.
- The contents of the registers are preserved across this macro call with
the exception of the registers specified by the macro parameters. The
contents of these registers are as follows:
- When TYPE=TMCR, the register specified on the CR parameter will contain
the address of the next TMCR or zero if there are no more TMCRs.
- When TYPE=RMCR, the register specified on the CR parameter is
unchanged.
- When TYPE=CCR, the register specified on the CR parameter is
unchanged.
- When you code ECB=YES, field CE2TMCR is updated to point to the previous
TMCR or zero if there is no previous TMCR.
- The condition code (CC) is not preserved across the macro call.
Programming Considerations
- This macro can be run from any I-stream.
- This macro can only be called from control program (CP) code.
- Before releasing a TMCR, all the associated RMCRs must be released.
Examples
$RELRC TYPE=TMCR,ECB=YES
$RELRC TYPE=RMCR,CR=R2
$RELRC TYPE=CCR,CR=R2