z/OS DFSMS Macro Instructions for Data Sets
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


TESTCB—Test a field of an exit list

z/OS DFSMS Macro Instructions for Data Sets
SC23-6852-02

The format of the TESTCB macro used to test fields in an exit list is:

The subparameters of the TESTCB macro can be expressed as absolute numeric expressions, as character strings, as codes, as expressions that generate valid relocatable A-type address constants, in register notation, as S-type address constants, and as indirect S-type address constants. Subparameters with GENCB, MODCB, SHOWCB, and TESTCB, further defines these operand expressions.
label
specifies 1 to 8 characters that provide a symbolic address for the TESTCB macro.
EXLST=address
specifies the address of the exit list whose information you want to test. You may omit it only if you are testing the maximum length of an exit list (EXLLEN=number). The TESTCB macro does not support the UPAD user exit.
ERET=address
specifies the address of a routine to which VSAM gives control if an error occurs and VSAM is unable to test for the specified condition. For example, testing AVSPAC in an access method control block for an unopened data set would fail. VSAM indicates in register 15 whether it could do the test and, if not, indicates in register 0 the reason it could not. (The reasons are discussed under Control block manipulation macro return and reason codes.) A failure trying to execute TESTCB indicates a basic logical problem in the processing program, so the error routine would probably issue an ABEND. If it lets the program continue, it must branch to the continuation point itself, and not return to VSAM.
EODAD={0|([address][,A|N][,L])}|
JRNAD={0|([address][,A|N][,L])}|
LERAD={0|([address][,A|N][,L])}|
SYNAD={0|([address][,A|N][,L])}
specifies the exit about which you are asking a yes-no question. If you code more than one parameter for an exit name, each must equal the corresponding value in the control block for you to get an equal condition. The values that can be tested are:
0
specifies that a test is to be made to determine whether an entry is provided for the exit in the exit list.
address
specifies that a test is to be made to determine whether this is the address of the exit. Tests for an address result in an equal, unequal, high, low, not-high, or not-low condition. Tests for a combination of an address and A, N, or L result in an equal or unequal condition.
A|N
specifies that a test is to be made to determine whether an exit is active (A) or not active (N). Tests for A or N result in an equal or unequal condition.
L
specifies that a test is to be made to determine whether the address is the location of an 8-byte field containing the name of a module to be loaded rather than the entry point of the routine. Tests for L result in either an equal or unequal condition.
EXLLEN=abs expression
specifies either the maximum length that an exit list can have (if you do not code the EXLST parameter) or the actual length of the exit list that is indicated by the EXLST parameter. If you specify an exit, you may not also specify EXLLEN. If you specify EXLLEN, you may not also specify an exit.

If you omit a routine to handle error conditions, you can examine register 15 following TESTCB by using a branch table. Do not alter the PSW condition code that VSAM set to indicate the result of a test until you have tested it.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014