Return codes from the record-management (request) macros

After a request macro or a CHECK or ENDREQ macro is issued, register 15 contains a return code.

After an asynchronous request to access a data set, VSAM indicates in register 15 whether the request was accepted, as shown in Table 1.

Table 1. Return Codes from the Record-Management(Request) Macros
Return Code Description
0(X'00') Request was accepted.
4(X'04') Request was not accepted because the request parameter list indicated by the request (RPL=address) was active for another request.
16(X'10')
  • SMSVSAM server is not active
  • invalid OPEN connection

After a synchronous request, or a CHECK or ENDREQ macro, register 15 indicates whether the request was completed successfully, as shown inTable 2 .

Table 2. Return Codes from the Record-Management(Request) Macros
Return Code Description
0(X'00') Request completed successfully.
4(X'04') Request was not accepted because the request parameter list indicated by the request (RPL=address) was active for another request.
8(X'08') Logical error; specific error is indicated in the feedback field in the RPL.
12(X'0C') Physical error; specific error is indicated in the feedback field in the RPL.
16(X'10')
  • The SMSVSAM server is not active.
  • The OPEN connection is invalid.
  • DFSMStvs is not active.

The feedback area of the request parameter list (RPL) contains additional diagnostic information that is used with the return codes in register 15 to determine the cause of an error.

The feedback area in the RPL is a fullword field:

VSAM does not branch to an exit routine when register 15 is 0 on return from a request. The list in Table 3 describes the reason codes that may be found in the RPL feedback area when register 15 is 0.

Table 3. Return Codes from the Record-Management(Request) Macros - R15=0
RPLRTNCD Code Condition
0(X'00') Request completed successfully.
4(X'04') Request completed successfully. For retrieval, VSAM mounted another volume to locate the record; for storage, VSAM allocated additional space or mounted another VSAM EOV was called.
8(X'08') For GET requests, indicates that a duplicate key follows; for PUT requests, indicates that a duplicate key was created in an alternate index with the nonunique attribute.
12(X'0C') (Shared resources only.) A buffer needs to be written.
16(X'10') Control area split was required because a sequence set control interval had free space insufficient to contain the key to be inserted.
24(X'18') Buffer found but not modified: no buffer writes performed.
28(X'1C') A CI split for the CI was interrupted. The CI was read as nonupdate with address access. This warning condition indicates that duplicate data records may exist. The RBA of the interrupted split can be acquired from RPLDDDD or, if the data set is an EA data set, then from the lower six bytes of the field RPLRBAR.
32(X'20') Possible causes:
  • Request deferred for a resource held by the terminated RPL is asynchronous and cannot be restarted by TERMRPL.
  • A MRKBFR request is invalid because no candidate buffer could be found.
  • For IDARETLK, there were no locks to retain, because no update locks exist for this SUBSYSNM/LUWID/SPHERE.
36(X'24') Possible data set error condition was detected by TERMRPL:
  1. The request was abnormally terminated in the middle of its I/O operation.
  2. One of the data/index BUFCs of the string contains data that needs to be written (BUFCMW=ON) but it was invalidated by TERMRPL.
40(X'28') Error in PLH data BUFC pointer was detected by TERMRPL.
43(X'2B') EOV called to retrieve or update the dictionary token in the catalog for a compressed data set.
44(X'2C') EOV called to update catalog statistics.
48(X'30') An error occurred during CA Reclaim. The erase was successful.
52 (X'34') For VSAM only. The ERASE completed successfully, but CA Reclaim failed due to ERASE issued by subtask in key 9.
56 (X'38') The ERASE completed successfully, but CA Reclaim failed due to insufficient virtual storage in the address space to dynamically add the CA Reclaim control blocks.
60(X'3C') The ERASE completed successfully, but CA Reclaim failed because the placement of index CI 2 does not follow VSAM convention.
Start of change68(X'44')End of change Start of changeFor LSR, not enough buffers were available so VSAM has successfully added additional buffers to complete the request. For NSR, VSAM added buffers to optimize I/O for spanned records.End of change

See the following discussions for the logical-error and physical-error return codes.