BDTUX26—Global Node Level Authorization

Type

Authorization (required).

General Description

This is a BDT authorization exit routine invoked from the transaction driver, BDTGRXD, which runs for every file-to-file transaction. This exit routine runs in BDTGRXD in the global node after the MJD is complete and before BDTGRXD places the BDT job on the work queue.

The exit routine can look at the MJD, which contains a fixed and variable section. The fixed section describes all the information necessary to get the job through the system. The variable section contains the text units for the dynamic allocation of data sets to make the data transfer. It also contains BDT text units which describe the particular kind of processing to be performed for the transaction. These text units have nothing to do with dynamic allocation but simply use the format of MVS text units to pass information through the BDT system.

The exit routine can also modify the JCT or the MJD.

BDTUX26 runs prior to writing the MJD and JCT to the work queue. Once this is completed, the “sending” BSID is released. BDTUX26 allows the user to modify the MJD and JCT before writing each to DASD.

Register Conventions at Entry

BDTXCALL linkage is used to establish the interface to the BDTUX26 user exit routine. Registers 2-14 are saved by BDT ASAVE processing.
Register 1
Address of the parameter list:
Word 1
Address of the MJD.
Word 2
Address of the JCT.
Register 13
Points to the register save area set up by ASAVE processing.
Register 14
Contains the address of the return point, which is saved in BDTGRSV.
Register 15
Points to the entry point address into the BDTUX26 user exit routine.

Register Conventions at Exit

Because BDTXCALL linkage is used to establish the interface to the BDTUX26 user exit routine, registers 2-14 of BDTGRXD are saved in BDTGRSV. You must store registers 12, 13, and 14 in an area you provide (either an area obtained by GETMAIN or one within the user exit routine) and those registers must be restored on return to BDTGRSV by register 14.
Register 14
Contains the address of the return point in the ASAVE routine (BDTGRSV).
Register 15
Used to pass a return code back to BDTGRXD:
RC 0
Authorization granted.
RC 4
Authorization failed; an error message is issued indicating that the transaction failed an authorization check, and the transaction is failed.

Operation

The global authorization exit routine should provide network-wide checks on file-to-file transactions entering BDT. It can verify or deny the use of any data sets that are protected (such as SYS1. data sets). An installation might decide to cancel any file-to-file transactions from TSO users with a certain prefix identification. This is the place to provide a high-level check to catch potential violations of system security. You can avoid needless overhead if the transaction is disapproved in this exit routine, rather than immediately before the job is to be executed (see BDTUX27).

This exit routine is passed the address of the MJD and JCT as parameters. The MJD contains a fixed and variable portion, both of which can be inspected or modified by this exit routine.

The MJD’s fixed portion contains the job name, priority, source, and destination locations, and the transaction origin identification which includes the type and actual identification of the user requesting the transaction. The variable portion of the MJD contains the text units necessary to perform dynamic allocation of a data set and carries processing information relevant to BDT.

If the exit routine passes a return code of 4, the transaction is canceled and a message is sent to the security console, the log and the end user. The message states that the command failed the authorization check and sends a return code back to the user.

If an abend occurs in an authorization exit routine, a message is sent identifying the name of this exit routine with an abend code, notifying the user that the requested command or transaction is terminated. The message is sent to the user and the operator, and is recorded on the log.

Recovery the Exit Routine Must Establish: You should provide ESTAE protection for the user exit routine in the event of system failure. If an ESTAE is not included as part of your user exit routine, clean up for the routine is provided by an ESTAE exit routine established for BDTGRXD.

Environment

Point Where Exit Routine Receives Control: BDTGRXD invokes BDTUX26 after the MJD for a file-to-file transaction is complete and before BDT places the job on the work queue.

Address Space: The exit routine executes as part of the BDT address space.

Task under Which Exit Routine Runs: This exit routine runs under BDTGRXD’s TCB.

PSW State: Supervisor.

Storage Protection Key: BDTKEY (key 8).

Data Areas

Mapping Macros
  • BDTDGSD to map the GSD
  • BDTDJCT to map the JCT
  • BDTDMJD to map the MJD
  • BDTDREG to map the registers
  • BDTDTVT to map the TVT
Executable Macros
  • BDTXASRV to invoke abend services during abend recovery processing

What If BDTUX26 Is Not Used?

If the exit routine is not coded, the file-to-file transaction is canceled. This exit routine must be coded before BDT can process file-to-file transactions.