|
The GENCB, MODCB, SHOWCB, and TESTCB macros can be executed (unlike
the ACB, EXLST, and RPL macros). They cause control to be given to
VSAM to perform the indicated task. VSAM indicates if the task was
completed by a return code in register 15 (see Table 1).
Table 1. Return Codes
in Register 15 After Control Block Manipulation MacrosReturn Code |
Meaning |
---|
0(X'0') |
Task completed. |
4(X'4') |
Task not completed. |
8(X'8') |
An attempt was made to use the execute
form of a macro to modify a keyword that is not in the parameter list.
(See Use of list, execute, and generate forms of VSAM macros.) |
You can cause an error if you specify the operands incorrectly.
When register 15 contains 4, register 0 contains a reason code
indicating why VSAM could not perform the task. If you construct the
parameter list, register 0 can contain reason codes 1, 2, 3, 10, 14,
20, and 21.
Table 2 describes
each reason code returned in register 0.
Table 2. GENCB, MODCB, SHOWCB,
and TESTCB Reason Codes Returned in Register 0Reason Code |
Applicable Macros1 |
Reason VSAM Could Not Perform
the Task |
---|
1(X'1') |
G,M,S,T |
The request type (generate, modify,
show, or test) is invalid. |
2(X'2') |
G,M,S,T |
The block type (access method control
block, exit list, or request parameter list) is invalid. |
3(X'3') |
G,M,S,T |
One of the keyword codes in the parameter
list is invalid. |
4(X'4') |
M,S,T |
The block at the address indicated
is not of the type you indicated (access method control block, exit
list, or request parameter list). |
5(X'5') |
S,T |
Access method control block fields
were to be shown or tested, but the data set is not open or it is
not a VSAM data set. |
6(X'6') |
S,T |
Access method control block information
about an index was to be shown or tested, but no index was opened
with the data set. |
7(X'7') |
M,S |
An exit list was to be modified,
but the list was not large enough to contain the new entry. Or, an
exit was to be modified or shown but the specified exit wasn't in
the exit list. (With TESTCB, if the specified exit address is not
present, you get an unequal condition when you test for it.) |
8(X'8') |
G |
There is not enough virtual storage
in your program's address space to generate the access method control
blocks, exit lists, or request parameter lists and no work area outside
your address space was specified. |
9(X'9') |
G,S |
The work area specified was too small
for generation or display of the indicated control block or fields. |
10(X'A') |
G,M |
With GENCB, exit list control block
type was specified and you specified an exit without giving an address.
With MODCB, exit list control block type was specified and you specified
an exit without giving an address. In this case, either active or
inactive must be specified, but load cannot be specified. |
11(X'B') |
M |
Either (1) a request parameter list
was to be modified, but the request parameter list defines an asynchronous
request that is active (that is, no CHECK or ENDREQ has been issued
on the request) and thus cannot be modified; or (2) MODCB is already
issued for the control block, but has not yet completed. |
12(X'C') |
M |
An access method control block was
to be modified, but the data set identified by the access method control
block is open and cannot be modified. |
13(X'D') |
M |
An exit list was to be modified,
and you attempted to activate an exit without providing a new exit
address. Because the indicated exit list does not contain an address
for that exit, your request cannot be honored. |
14(X'E') |
G,M,T |
One of the option codes (for MACRF,
ATRB, or OPTCD) has an invalid combination of option codes specified
(for example, OPTCD=(ADR,SKP)). |
15(X'F') |
G,S |
The work area specified did not begin
on a fullword boundary. |
16(X'10') |
G,M,S,T |
A VTAM® keyword
or subparameter was specified but the AM=VTAM parameter was not specified.
AM=VTAM must be specified to process a VTAM version
of the control block. |
19(X'13') |
M,S,T |
A keyword was specified that refers
to a field beyond the length of the control block located at the indicated
address. (For example, a VTAM keyword
is specified, but the control block it points to is a shorter, non-VTAM
block.) |
20(X'14') |
S |
Keywords were specified which apply
only if MACRF includes LSR or GSR. |
21(X'15') |
S,T |
The block to be displayed or tested
does not exist because the data set is a dummy data set. |
22(X'16') |
S |
AM=VTAM was specified and the RPL
FIELDS parameter conflicts with the RPLNIB bit status. Either RPLFIELDS=NIB
was specified and the RPLNIB was off, or RPL FIELDS=ARG was specified
and the RPLNIB bit was on. |
23(X'17') |
G |
The value specified in the work area
length parameter exceeds the 65,535 byte limit. |
24(X'18') |
S,T |
The SMSVSAM server is not available. |
25(X'19') |
S |
LOKEY is not supported for RLS. |
26(X'1A') |
S,T |
This request was issued against an
ACB open to a different instance of the SMSVSAM server. The OPEN is
no longer valid. |
27(X'1A') |
G,M,S,T |
This request was issued in AR ASC
mode, home ASC mode. Or the RLS address space had to be accessed
and the request was issued in secondary ASC mode. |
Note: - G=GENCB, M=MODCB, S=SHOWCB, T=TESTCB
|