DBRC unauthorization request (UNAUTH)

You can use the UNAUTH request to explicitly remove authorization to a database or area. Authorization by an application is implicitly removed by the STOPDBRC request. UNAUTH is the opposite of FUNC=AUTH.

Syntax for the UNAUTH request

Read syntax diagramSkip visual syntax diagramnameDSPAPIFUNC=UNAUTHTOKEN= addressAUTHLIST= nameOUTPUT= outputSUBPOOL=0SUBPOOL= numberRETCODE= returncodeRSNCODE= reasoncodeVERSION=2.0VERSION= numberMF=SMF=(S, list)MF=(L, list)MF=(M, list,COMPLETE,NOCHECK)MF=(E, list,COMPLETE,NOCHECK)

Parameters for the UNAUTH request

name name
Optional parameter. Begin name in column 1.
TOKEN=address | (2-12)
Specifies the address of the API token which was returned on the FUNC=STARTDBRC macro.
AUTHLIST=name | (2 - 12)
Specifies the list of database names or Fast Path areas to be unauthorized. The list consists of a fullword containing the number of elements in the list, a fullword containing the length of an element, followed by one or more elements. Each element consists of an 8 character DB name or Fast Path DEDB name and 8 characters of blanks (X'40') or a Fast Path area name.
OUTPUT=output | (2-12)
Specifies a field to receive a pointer to the authorization output block DSPAPAUB.

The output address is zero if no output was built. This can happen if an error occurs before any output could be built.

The storage for the output blocks is not pre-allocated by the caller. DBRC acquires storage from the specified subpool for these blocks. It is the responsibility of the caller to free this storage using the Buffer Release service (DSPAPI FUNC=RELBUF) specifying the returned output address.

SUBPOOL= 0 | number
Specifies the subpool number for the storage being obtained. See the z/OS® MVS Programming: Assembler Services Guide for information on valid subpools for your program. If not specified, the default is the subpool specified by the FUNC=STARTDBRC request. Otherwise, subpool 0 is the default.
RETCODE=returncode | (2-12)
If specified as a symbol, specifies the label of a word of storage to receive the return code. If specified as a register, the register must contain the address of a word of storage to receive the return code. Regardless of whether RETCODE is specified, register 15 contains the return code.
RSNCODE=reasoncode | (2-12)
If specified as a symbol, the symbol must be the label of a word of storage to receive the reason code. If specified as a register, the register must contain the address of a word of storage to receive the reason code. Regardless of whether RSNCODE is specified, register 0 contains the reason code.
VERSION=2.0 | number
Specifies the version number of the parameter list to be generated by this macro.

To use the parameters associated with a version, you must specify the number of that version or a later version. If you specify an earlier version level, the parameter is not accepted by macro processing, and an error message is issued at assembly time. If parameters have a version dependency, the parameter descriptions with each request type identify the version number required.

The valid version number for the FUNC=UNAUTH request is 2.0 (the default).

MF=S | L | M | E
Specifies the macro form of the request.

Return and reason codes for UNAUTH

Table 1. DSPAPI FUNC=UNAUTH request return and reason codes
Code type Return code Reason code Meaning
  X'00000000' X'00000000' Request completed successfully.
Warning X'00000008' X'C1000001' One or more entries in the AUTHLIST could not be processed. A reason code has be set in the corresponding entry in the UNAUTH output block.
Severe error X'0000000C' X'C1000001' Application is not signed on to DBRC.
  X'0000000C' X'C1000004' UNAUTH processing could not complete because the application is not signed; no SS rcd was found. This should not occur under normal conditions since an earlier check of the GDB indicated the SS was signed on.
  X'0000000C' X'C9000001' Invalid TOKEN. The TOKEN block passed to the API is not recognized as a TOKEN created by a FUNC=STARTDBRC call.
  X'0000000C' X'C900000A' The TCB address is not the same as the TCB address under which the STARTDBRC service was issued.
Storage error X'00000028' X'C1000001' Error obtaining storage for the UNAUTH output block.
Internal error X'0000002C' X'C1000001' Error attempting to start RECON multiple update processing.
  X'0000002C' X'C1000002' Error attempting to end RECON multiple update processing.
  X'0000002C' X'C1000006' Entry in UNAUTH output block could not be found. This should not occur.
  X'0000002C' X'C1000007' Internal error encountered during DBRC unauthorization processing.
  X'0000002C' X'C1000008' Internal error encountered during DBRC unauthorization processing–invalid parameters.
Parameter error X'00000030' X'C1000001' No AUTHLIST passed.
  X'00000030' X'C1000002' AUTHLIST passed with no entries.
  X'00000030' X'C1000003' Duplicate elements in AUTHLIST.
  X'00000030' X'C1000004' Missing or invalid OUTPUT parameter.
  X'00000030' X'C9000001' The function (FUNC) specified in the parameter list passed to the API is invalid.
  X'00000030' X'C9000002' Invalid TOKEN address. The address of the field containing the API TOKEN failed validity checking. The address specifies storage not owned by the calling program
  X'00000030' X'C9000003' Invalid RETCODE address. The address of the field containing the API RETCODE failed validity checking. The address specifies storage not owned by the calling program.
  X'00000030' X'C9000004' Invalid RSNCODE address. The address of the field containing the API RSNCODE failed validity checking. The address specifies storage not owned by the calling program.
  X'00000030' X'C9000005' Invalid OUTPUT address. The address of the field containing the API OUTPUT failed validity checking. The address specifies storage not owned by the calling program.
  X'00000030' X'C900000A' An incorrect VERSION value was specified for the requested function (FUNC).
  X'00000030' X'C900001A' Invalid AUTHLIST address. The address of the field containing the API AUTHLIST failed validity checking. The address specifies storage not owned by the calling program.