Use the ALTER request to change the attributes of a resource that
is already held or to replace a OBTAIN or ALTER request for the resource
that is pending on the contention exit resource request queue with
a more current request.
You can only alter a resource of which you are the owner or for
which you have a pending request. Otherwise, the system rejects the
ALTER request with return and reason codes.
Resource attributes that can be changed are the state, user data,
and record data.
- State
You are required to provide a requested state
when issuing an IXLLOCK REQUEST=ALTER. If you do not wish to modify
your current ownership state, you should provide the current value
as input.
The resultant state (which may or may not have been
modified by the contention exit) is returned in the STATEVAL keyword
on synchronous requests and in the CMPLSTATE field for asynchronous
requests.
- User data
On an ALTER request you also can specify
the 64 bytes of user data. If you do not wish to modify your current
user data, you should respecify its current value.
The user
data (which may or may not have been modified by the contention exit)
is returned in the UDATAVAL keyword on synchronous requests and in
the CMPLUDATA field for asynchronous requests.
- Record data
On an ALTER request you can specify whether
or not to update the 64 bytes of record data that is currently associated
with the resource, to delete the record data entry that is currently
associated with the resource, or to create a new record data entry
to be associated with the resource (if one did not previously exist).
The record data is indicated by the RDATAVAL keyword.
- If a record data entry was not associated with this resource previously,
the system attempts to write to an available record data entry. If
a record data entry is not available, the request is rejected and
a return code is returned. If a record data entry is available and
can be allocated, the record data entry is written to the allocated
entry. The identifier of the record data entry and the number of
record data entries currently in use are returned in the ENTRYID and
ENTRYCOUNT areas in the IXLLOCK parameter list for synchronous requests
and in the CMPLRTENTRYID and CMPLRTENTRYCOUNT fields for asynchronous
requests.
- If a record data entry already is associated with the resource
and the ALTER request is to change this record data entry, the system
replaces the contents of the prior record data entry with the record
data entry specified in the current ALTER request. The entry identifier
remains the same.
- If a record data entry already is associated with the resource
and the ALTER request is to delete this record data entry, the system
deletes the record data entry. If no record data entry is associated
with the resource, the RDATA=DELETE keyword is ignored.
The record data entry (which may or may not have been
modified by the contention exit) is returned in the RDATAVAL keyword
on synchronous requests and in the CMPLRDATA field on asynchronous
requests.