|
The parameter descriptions for IXLLSTE are listed in alphabetical
order. Default values are underlined: - ,ACTION=NONE
- ,ACTION=WRITE
- ,ACTION=READ
- Use this input parameter to specify an additional action with
the move request when ENTRYTYPE=OLD.
- NONE
- No additional action is to be performed.
- WRITE
- In addition to moving the list entry, write the contents of the
storage area(s) specified by BUFFER or BUFLIST and/or BUFLIST to the
list entry, if the storage areas exist.
- READ
- In addition to moving the list entry, read the entry data and/or
adjunct data into the storage areas specified by BUFFER or BUFLIST
and/or ADJAREA.
At least one of BUFFER, BUFLIST, or ADJAREA must
be specified when ACTION=READ is specified with REQUEST=MOVE.
- ,ADJAREA=NO_ADJAREA
- ,ADJAREA=adjarea
- Use this input or output parameter to specify a storage area to
contain the adjunct data that is read from or written to an entry.
Specify ADJAREA only for structures that support adjunct data.
(Adjunct areas for a structure are established through the IXLCONN
macro.)
If the structure was allocated to use secondary keys,
and the IXLLSTE request results in a new list entry being created,
the first 32 bytes of the list entry adjunct data will be used to
store the secondary key of the list entry. This allows only the last
32 bytes of list entry adjunct data to be written.
If the
structure was allocated to use secondary keys and the IXLLSTE request
results in the list entry being moved or updated, the first 32 bytes
of the ADJAREA are ignored, allowing only the last 32 bytes of data
to be written to the list entry adjunct area. The secondary key of
the list entry can only be updated by an IXLLSTM REQUEST=MOVE_ENTRYLIST
request.
To Code: Specify the RS-type name or address
(using a register from 2 to 12) of a 64-byte area that contains or
will contain the adjunct data.
- ,ANSAREA=ansarea
- Use this input parameter to specify an answer area to contain
information returned from the request. The format of the answer area
is described by mapping macro IXLYLAA.
Not all fields in the answer
area are applicable to all request types. Request type descriptions
indicate which answer area fields are applicable for successful request
completion cases. Return and reason code descriptions indicate which
answer area fields are applicable for non-successful completing requests.
To
Code: Specify the RS-type name or address (using a register from
2 to 12) of an area (with a length of ANSLEN) that will contain the
information returned by the request.
- ,ANSLEN=anslen
- Use this input parameter to specify the size of the storage area
specified by ANSAREA.
Check the prologue of the IXLYLAA mapping macro for the minimum
required size of the answer area, or use the length field (LAA_LEN)
in the LAA.
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of a 2-byte field that contains the size, in bytes,
of the answer area.
- ,ASSIGN=NONE
- ,ASSIGN=NAME
- ,ASSIGN=KEY
- ,ASSIGN=LISTKEY
- Use this input parameter to specify whether to assign an ENTRYNAME,
ENTRYKEY, or list key value to a newly created list entry when ENTRYTYPE=NEW
or ANY. If the structure was allocated to use secondary keys, a secondary
key value may be assigned to the newly created list entry.
If
the list entry is moved or created, use this parameter to assign a
TARGETKEY, ENTRYKEY, or list key value.
ASSIGN also allows
key comparison to be specified for keyed list entries.
- NONE
- No assignment is to be explicitly made.
If the list entry
is created, the following applies: - If the structure was allocated to use keyed entries, the entry
key (and therefore, the target list keyed position) is assigned as
follows:
- If DIRECTION=HEADTOTAIL is specified (explicitly or by default),
the list entry is assigned an entry key value of all binary zeros.
- If DIRECTION=TAILTOHEAD is specified, the list entry is assigned
an entry key value of all binary ones.
- If the structure was allocated to use secondary keys, the list
entry is assigned a secondary key value of all binary zeros.
If the list entry is moved, the entry key and the secondary
key remain unchanged.
- NAME
- The entry name specified by ENTRYNAME is to be assigned to the
list entry if it is created as a result of the IXLLSTE request.
If
a list entry already exists with the specified ENTRYNAME, a new list
entry is not created and the IXLLSTE request is ended.
ASSIGN=ENTRYNAME
may only be specified when the structure was allocated to use named
entries.
- KEY
- The entry key (and therefore the target list keyed position) specified
for ENTRYKEY is to be assigned to the newly created or moved list
entry.
If the list entry is created and the structure was allocated
to use secondary keys, the secondary key value specified by SECONDARYKEY
will be assigned to the list entry. The secondary key will be stored
in the first 32 bytes of the list entry adjunct area. If the user
supplies ADJAREA, the first 32 bytes will be ignored. If the user
does not supply SECONDARYKEY, the secondary key will be set to all
binary zeros.
For keyed list entries, when ENTRYTYPE=NEW
is specified, a new list entry is created regardless of whether a
list entry already exists with the same ENTRYKEY value or the same
SECONDARYKEY value.
- LISTKEY
- The current list key value is to be assigned to the newly created
list entry.
The list key and maximum list key values may be set
with an IXLLSTC REQUEST=WRITE_LCONTROLS request.
The current
list key value can be assigned to a list entry only on structures
allocated in a coupling facility of CFLEVEL=1 or higher.
- ,ASSIGNENTRYID=NO_ENTRYID
- ,ASSIGNENTRYID=assignentryid
- Use this input parameter to specify the ENTRYID to be assigned
to the list entry created as a result of this request when ENTRYTYPE=NEW
or ANY. A user provided ENTRYID must be specified if and only if
ENTRYIDTYPE=USER was specified on the IXLCONN request.
If the
request is attempting to create a list entry and either a list entry
already exists with the specified ENTRYID, or ASSIGNENTRYID was not
specified, a new list entry is not created and the IXLLSTE request
is ended.
If the request is not creating a new list entry,
the value specified for ASSIGNENTRYID will be ignored.
ASSIGNENTRYID
is valid only when the structure is allocated in a coupling facility
of CFLEVEL=8 or higher.
To Code: Specify the RS-type
name or address (using a register from 2 to 12) of a 12-byte field
that contains the ENTRYID to be assigned.
- ,ASSIGNLISTKEY=NO
- ,ASSIGNLISTKEY=CREATE
- ,ASSIGNLISTKEY=MOVE
- ,ASSIGNLISTKEY=ANY
- Use this input parameter to specify how an entry key is to be
assigned to the list entry if it is moved or created as a result of
this request when ENTRYTYPE=ANY. If the list entry is created as
a result of this request and the structure was allocated to use secondary
keys, the secondary key value specified by SECONDARYKEY will be assigned
to the list entry. If the user does not supply SECONDARYKEY, the secondary
key will be set to all binary zeros.
The ASSIGNLISTKEY specification
in conjunction with the TARGETKEY and ENTRYKEY specifications are
used to assign the entry key. Note especially that the ENTRYKEY specified
for KEYCOMPARE may be used as the entry key assignment for a newly
created list entry depending on the ASSIGNLISTKEY specification.
The
list key value and maximum list key values may be set with an IXLLSTC
WRITE_LCONTROLS request.
The current list key value can be
assigned to a list entry only on structures allocated in a coupling
facility of CFLEVEL=1 or higher.
- NO
- The list key value is not to be assigned to the list entry, regardless
of whether the list entry is moved or created as a result of this
request. Instead, the entry key is assigned as follows:
- If the entry is created as a result of this request:
- The list entry is assigned the TARGETKEY, if specified.
- If TARGETKEY is not specified, the list entry is assigned the
ENTRYKEY, if specified.
- If neither TARGETKEY nor ENTRYKEY is specified, the entry key
is assigned as follows:
- If DIRECTIONHEADTOTAIL is specified (explicitly or by default),
the entry key is assigned all binary zeros.
- If DIRECTIONTAILTOHEAD is specified, the entry key is assigned
all binary ones.
- If the entry is moved as a result of this request:
- The list entry is assigned the TARGETKEY, if specified.
- If TARGETKEY is not specified, the entry key remains unchanged.
- CREATE
- The list key value of the target list (and therefore, the target
list keyed position) is to be assigned to the list entry if it is
created as a result of this request.
If the list entry is moved
as a result of this request, the entry key is assigned as follows:
- The list entry is assigned the TARGETKEY, if specified.
- If TARGETKEY is not specified, the list entry is assigned the
ENTRYKEY, if specified.
- If neither TARGETKEY nor ENTRYKEY is specified, the entry key
remains unchanged.
- MOVE
- The list key value of the target list (and therefore, the target
list keyed position) is to be assigned to the list entry if it is
moved as a result of this request.
If a new list entry is created
as a result of this request, the entry key is assigned as follows:
- The list entry is assigned the TARGETKEY, if specified.
- If TARGETKEY is not specified, the list entry is assigned the
ENTRYKEY, if specified.
- If neither TARGETKEY nor ENTRYKEY is specified, the entry key
is assigned as follows:
- If DIRECTION=HEADTOTAIL is specified (explicitly or by default),
the entry key is assigned all binary zeros.
- If DIRECTION=TAILTOHEAD is specified, the entry key is assigned
all binary ones.
- ANY
- The list key value of the target list is to be assigned to the
list entry whether the list entry is moved or created as a result
of this request.
- ,AUTHCOMP=authcomp
- Use this input parameter to specify an unsigned fixed 128-bit
value to be compared to the list authority value for the designated
list. If the comparison criterion specified by AUTHCOMPTYPE is not
met, the IXLLSTE request is ended.
To Code: Specify the
RS-type name or address (using a register from 2 to 12) of the 16-byte
field that contains the list authority value.
- ,AUTHCOMPARE=NO
- ,AUTHCOMPARE=YES
- Use this input parameter to specify whether list authority comparison
is to be performed to determine whether the entry should be created
or processed.
The AUTHCOMPARE keyword is only meaningful for list
structures allocated in a coupling facility of CFLEVEL=1 or higher.
- NO
- No list authority comparison is to be performed to determine whether
the entry is to be created or processed.
- YES
- List authority comparison is to be performed to determine whether
the entry is to be created or processed.
- ,AUTHCOMPTYPE=EQUAL
- ,AUTHCOMPTYPE=LESSOREQUAL
- Use this input parameter to specify how the list authority comparison
is to be performed.
- EQUAL
- The list authority for the list specified by LISTNUM must be equal
to the value specified for AUTHCOMP.
- LESSOREQUAL
- The list authority for the list specified by LISTNUM must be less
than or equal to the value specified for AUTHCOMP.
Note: The AUTHCOMPTYPE parameter is valid only for list structures
allocated in a coupling facility with CFLEVEL=1 or higher.
- ,BUFADDRSIZE=31
- ,BUFADDRSIZE=64
- Use this input parameter to specify whether a 31-bit or a 64-bit
address is specified by a BUFLIST entry.
- 31
- The entry in BUFLIST is 31 bits in size.
- 64
- The entry in BUFLIST is 64 bits in size.
- ,BUFADDRTYPE=VIRTUAL
- ,BUFADDRTYPE=REAL
- Use this input parameter to specify whether the buffer addresses
specified in the BUFLIST list are virtual storage or real storage
addresses.
- VIRTUAL
- The buffer addresses are virtual storage addresses. The virtual
storage can be pageable or nonpageable. See the PAGEABLE parameter
for information about managing storage binds when specifying virtual
storage addresses.
- REAL
- The buffer addresses are real storage addresses.
It is the caller's responsibility to manage the binds between the
data buffer virtual storage and the real storage addresses provided.
The caller must ensure that the data buffer virtual storage remains
bound to the real storage addresses provided until the request completes.
- ,BUFALET=NO_BUFALET
- ,BUFALET=bufalet
- Use this input parameter to specify an access list entry token
(ALET) to be used in referencing all of the buffers specified by BUFLIST.
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of a 4-byte field that contains the ALET.
- ,BUFFER=buffer
- Use this output or input parameter to hold entry data to be read
from or written to the designated entry. The BUFSIZE keyword specifies
the size of the buffer. Only 31-bit addressable virtual
storage areas (below 2GB) are supported by the BUFFER specification.
High virtual storage areas (above 2GB) can only be specified via the BUFLIST specification.
You can define the buffer size to be a total size of up to 65536
bytes. Depending on the size you select, the following restrictions
apply: - If you specify a buffer size of less than or equal to 4096 bytes,
you must ensure that the buffer:
- Is 256, 512, 1024, 2048, or 4096 bytes.
- Starts on a 256-byte boundary.
- Does not cross a 4096-byte boundary.
- If you specify a buffer size of greater than 4096 bytes, you must
ensure that the buffer:
- Is a multiple of 4096 bytes.
- Is less than or equal to 65536 bytes.
- Starts on a 4096-byte boundary.
If BUFFER or BUFLIST is not specified, entry data is
not read or written, as appropriate.
BUFFER is only functional
for structures that support entry data. If the structure does not
support entry data, the contents of BUFFER will not affect this request.
See
the BUFSIZE parameter description for defining the size of the buffer.
To
Code: Specify the RS-type name or address (using a register from
2 to 12) of an area (with a length of BUFSIZE) that contains the entry
data.
- ,BUFINCRNUM=bufincrnum
- Use this input parameter to specify the number of 256-byte segments
comprising each buffer in the BUFLIST list.
Valid BUFINCRNUM values are 1,2,4,8, or 16, which correspond to
BUFLIST buffer sizes of 256, 512, 1024, 2048, and 4096 bytes respectively.
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of a 1-byte field that contains 1,2,4,8, or 16.
- ,BUFLIST=buflist
- Use this output or input parameter to specify a 128-byte storage
area containing a list of addresses of buffers that contain data
to be read from or written to the designated entry.
Either
31-bit addressable (below 2GB) or 64-bit addressable (above 2GB) real
or virtual storage areas are supported for the BUFLIST specification,
depending on the specifications for the BUFADDRTYPE and BUFADDRSIZE keywords.
However, pageable high shared virtual storage areas (above 2GB) may
not be used.
The 128-byte storage area must: - Consist of 0 to 16 elements.
- Each element must consist of an 8-byte field in which:
- The left (high-order) four bytes are reserved and
- The right (low-order) four bytes contain the address of a buffer.
The BUFLIST buffers must:
If BUFFER or BUFLIST is not specified, entry data is
not to be read or written.
BUFLIST is only functional for
structures that support entry data. If the structure does not support
entry data, the contents of BUFLIST will not affect this request.
See
the BUFNUM and BUFINCRNUM parameter descriptions for defining the
number and size of buffers.
To Code: Specify the RS-type
name or address (using a register from 2 to 12) of a 128-byte area
that contains the list of buffer addresses.
- ,BUFNUM=bufnum
- Use this input parameter to specify the number of buffers in the
BUFLIST list. Valid BUFNUM values are from 0 to 16. A value of zero
indicates that no data is to be read into the buffers or written to
the list entry.
To Code: Specify the RS-type name or address
(using a register from 2 to 12) of a 1-byte field that contains the
number of buffers in the buffer list.
- ,BUFSIZE=bufsize
- Use this input parameter to specify the size of the BUFFER area.
See the BUFFER parameter description for valid buffer sizes.
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of a fullword field that contains the size of the buffer
(BUFFER) in bytes.
- ,BUFSTGKEY=CALLERS_KEY
- ,BUFSTGKEY=bufstgkey
- Use this input parameter to specify a storage key that you define
and use when referencing the buffers specified by BUFLIST or the buffer
specified by BUFFER.
If you do not specify BUFSTGKEY, or if you specify BUFSTGKEY=CALLERS_KEY,
all references to the buffer(s) are performed using the caller's PSW
key.
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of an 8-bit field that contains the storage key in the
format B'kkkkxxxx', where kkkk is the key and xxxx is ignored.
- CONTOKEN=contoken
- Use this input parameter to specify the connect token that was
returned by the IXLCONN service. The CONTOKEN uniquely identifies
the user's connection to the list structure.
To Code: Specify
the RS-type name or address (using a register from 2 to 12) of a 16-byte
field that contains the connect token.
- ,CURSORUPDTYPE=NEXT
- ,CURSORUPDTYPE=NEXTCOND
- ,CURSORUPDTYPE=CURRENT
- ,CURSORUPDTYPE=CURRENTCOND
- Use this input parameter to specify how the list cursor is to
be updated when UPDATECURSOR=YES is specified.
Note: The NEXTCOND,
CURRENT, and CURRENTCOND values are valid only for list structures
allocated in a coupling facility with CFLEVEL=1 or higher.
- NEXT
- Set the list cursor as follows:
- If the list entry is created, the cursor for the list specified
by MOVETOLIST or LISTNUM is updated and the direction of the cursor
update depends on the value specified for MOVETODIRECTION or DIRECTION.
- For an existing list entry, the cursor for the list on which the
designated entry resides before the request is processed is updated
and the direction of the cursor update depends on the value specified
for DIRECTION.
- When MOVETODIRECTION or DIRECTION=HEADTOTAIL is specified (explicitly
or by default), the cursor is set to point to the list entry following
the created or processed list entry, except when it is the tail entry
of the list, in which case the cursor is set to all binary zeros.
- When MOVETODIRECTION or DIRECTION=TAILTOHEAD is specified, the
cursor is set to point to the list entry preceding the created or
processed list entry, except when it is the head entry of the list,
in which case the cursor is set to all binary zeros.
- NEXTCOND
- Set the list cursor as follows:
- If the list cursor points to the list entry processed for the
request, and the list entry is deleted or moved to another list,
set the cursor to point to the preceding or following list entry,
depending on the DIRECTION specified. If the deleted or moved list
entry was the last entry on the list and DIRECTION=HEADTOTAIL, or
the deleted or moved list entry was the first entry on the list and
DIRECTION=TAILTOHEAD, set the list cursor to binary zeros.
- If the list cursor points to the list entry processed for the
request, and the list entry is moved to the same list, the cursor
will remain pointing to the moved list entry.
The list cursor direction may be set by specifying SETCURSOR
on an IXLLSTC WRITE_LCONTROLS request.
- CURRENT
- Set the list cursor as follows:
- If the list entry is created, set the list cursor to point to
the created list entry.
- If the list entry is deleted or moved to another list, set the
list cursor to binary zeros.
- If the list entry is moved to the same list, leave the list cursor
to remain pointing to the moved list entry.
- For all other cases where the list entry is processed and remains
on the same list, set the list cursor to point to the processed list
entry.
- CURRENTCOND
- Set the list cursor as follows:
- If the list entry is created, and if the list cursor does not
point to a list entry, set the list entry to point to the created
list entry.
- If the list entry for the list specified for LISTNUM does not
point to a list entry, and the list entry is moved to another list,
the list cursor will remain binary zeros.
- If the list cursor does not point to a list entry, and the list
entry is moved from and to the same list, set the cursor to point
to the moved list entry.
- For all other cases where the list cursor does not point to a
list entry, and the list entry is processed and remains on this same
list, set the list cursor to point to the processed list entry.
If the list entry is deleted or moved to another list, then
the list cursor will remain binary zeros.
- ,DIRECTION=HEADTOTAIL
- ,DIRECTION=TAILTOHEAD
- Use this input parameter to specify the position on the list or
sublist at which:
- To place the newly created list entry,
- To designate a list entry to be processed, or
- To specify the direction relative to the current entry in which
the cursor is to be updated to point to the next entry on the list
when CURSORUPDTYPE=NEXT is specified with UPDATECURSOR=YES.
This parameter is used in conjunction with LISTNUM, and
with the assigned entry key value when keyed entries are being used.
- HEADTOTAIL
- Place the newly created list entry (ENTRYTYPE=NEW) according to
the following:
- If the structure was not allocated to use keyed entries, the designated
position is at the head of the list designated by LISTNUM.
- If the structure was allocated to use keyed entries, and ASSIGN=NONE
is specified, the designated position is at the head of the list.
- If the structure was allocated to use keyed entries, and ASSIGN=KEY
is specified, the designated position is at the head of the sublist
designated by ENTRYKEY and LISTNUM.
- If the structure was allocated to use keyed entries, and ASSIGN=LISTKEY
is specified, the designated position is at the head of the sublist
designated by the list key value and LISTNUM.
Process the existing list entry (ENTRYTYPE=OLD) according
to the following: - If the structure was allocated with keyed entries and LOCATOR=KEYPOS,
process the list entry at the head of the sublist designated by LISTNUM,
ENTRYKEY, and KEYREQTYPE.
- If the structure was allocated with secondary keys and LOCATOR=KEYPOS,
process the list entry at the head of the sublist designated by
LISTNUM, SECONDARYKEY, and SKEYREQTYPE.
- If LOCATOR=UNKEYPOS is specified, process the list entry at the
head of the list specified by LISTNUM.
Process the list entry (ENTRYTYPE=ANY) according to
the following: - If LOCATOR=UNKEYPOS is specified, process the list entry at the
head of the list designated by LISTNUM.
- If the structure was allocated to use keyed entries and LOCATOR=KEYPOS
is specified, process the list entry at the head of the sublist
designated by LISTNUM, ENTRYKEY, and KEYREQTYPE.
- If the structure was allocated with secondary keys and LOCATOR=KEYPOS
is specified, process the list entry at the head of the sublist designated
by LISTNUM, SECONDARYKEY, and SKEYREQTYPE.
- If a list entry is created as a result of this request, and the
structure was not allocated to use keyed entries, place the newly
created entry at the head of the list designated by LISTNUM.
- If a list entry is created as a result of this request, and the
structure was allocated to use keyed entries, place the newly created
entry at the head of the sublist designated by both LISTNUM and the
assigned entry key.
With UPDATECURSOR=YES, process the list cursor as follows:
- If CURSORUPDTYPE=NEXT is specified, set the cursor to point to
the list entry following the processed list entry, except when the
processed list entry is at the tail of the list. In that case, the
cursor is set to all binary zeros.
- If CURSORUPDATE=NEXTCOND, set the cursor as follows:
- If the list cursor points to the list entry processed for the
request, and the list entry is deleted or moved to another list, set
the cursor to point to the following list entry.
- If the deleted or moved list entry was the last entry on the list,
set the cursor to all binary zeros.
- If the list cursor points to the list entry processed for the
request, and the list entry is moved to the same list, the cursor
will remain pointing to the moved list entry.
- If CURSORUPDATE=CURRENT, set the cursor as follows:
- If the list entry is deleted or moved to another list, reset the
list cursor to binary zeros.
- If the list entry is moved to the same list, the cursor will remain
pointing to the moved list entry.
- For all other cases where the list entry is processed and remains
on the same list, the list cursor will be set to point to the processed
list entry.
- If CURSORUPDATE=CURRENTCOND, set the cursor as follows:
- If the list cursor for the list specified by LISTNUM does not
point to a list entry, and the list entry is moved to another list,
the list cursor will remain binary zeros.
- If the list cursor for the list specified for LISTNUM does not
point to a list entry, and the list entry is moved from and to this
same list, the cursor will be set to point to the moved list entry.
- For all other cases where the list cursor for the list specified
for LISTNUM does not point to a list entry, and the list entry is
processed and remains on this same list, the list cursor will be set
to point to the processed list entry.
- TAILTOHEAD
- Place the newly created list entry (ENTRYTYPE=NEW) according to
the following:
- If the structure was not allocated to use keyed entries, the designated
position is at the tail of the list designated by LISTNUM.
- If the structure was allocated to use keyed entries, and ASSIGN=NONE
is specified, the designated position is at the tail of the list
designated by LISTNUM.
- If the structure was allocated to use keyed entries, and ASSIGN=KEY
is specified, the designated position is at the tail of the sublist
designated by ENTRYKEY and LISTNUM.
- If the structure was allocated to use keyed entries, and ASSIGN=LISTKEY
is specified, the designated position is at the tail of the sublist
designated by the list key value and LISTNUM.
Process the existing list entry (ENTRYTYPE=OLD) according
to the following: - If the structure was allocated to use keyed entries and LOCATOR=KEYPOS,
process the list entry at the tail of the sublist designated by LISTNUM,
ENTRYKEY, and KEYREQTYPE.
- If the structure was allocated to use secondary keys and LOCATOR=KEYPOS,
process the list entry at the tail of the sublist designated by
LISTNUM, SECONDARYKEY, and SKEYREQTYPE.
- If LOCATOR=UNKEYPOS is specified, process the list entry at the
tail of the list designated by LISTNUM.
Process the list entry (ENTRYTYPE=ANY) according to
the following: - If LOCATOR=UNKEYPOS is specified, process the list entry at the
tail of the list designated by LISTNUM.
- If the structure was allocated to use keyed entries and LOCATOR=KEYPOS
is specified, process the list entry at the tail of the sublist
designated by LISTNUM, ENTRYKEY, and KEYREQTYPE.
- If the structure was allocated with secondary keys and LOCATOR=KEYPOS
is specified, process the list entry at the tail of the sublist designated
by LISTNUM, SECONDARYKEY, and SKEYREQTYPE.
- If a list entry is created as a result of this request, and the
structure was not allocated to use keyed entries, place the newly
created entry at the tail of the list designated by LISTNUM.
- If a list entry is created as a result of this request, and the
structure was allocated to use keyed entries, place the newly created
entry at the tail of the sublist designated by both LISTNUM and the
assigned entry key.
With UPDATECURSOR=YES, process the list cursor as follows:
- If CURSORUPDTYPE=NEXT is specified, set the cursor to point to
the list entry preceding the processed list entry, except when the
processed list entry is at the head of the list. In that case, the
cursor is set to all binary zeros.
- If CURSORUPDATE=NEXTCOND, set the cursor as follows:
- If the list cursor points to the list entry processed for the
request, and the list entry is deleted or moved to another list, set
the cursor to point to the preceding list entry.
- If the deleted or moved list entry was the first entry on the
list, set the cursor to all binary zeros.
- If the list cursor points to the list entry processed for the
request, and the list entry is moved to the same list, the cursor
will remain pointing to the moved list entry.
- If CURSORUPDATE=CURRENT, set the cursor as follows:
- If the list entry is deleted or moved to another list, reset the
list cursor to binary zeros.
- If the list entry is moved to the same list, the cursor will remain
pointing to the moved list entry.
- For all other cases where the list entry is processed and remains
on the same list, the list cursor will be set to point to the processed
list entry.
- If CURSORUPDATE=CURRENTCOND, set the cursor as follows:
- If the list cursor for the list specified by LISTNUM does not
point to a list entry, and the list entry is moved to another list,
the list cursor will remain binary zeros.
- If the list cursor for the list specified for LISTNUM does not
point to a list entry, and the list entry is moved from and to this
same list, the cursor will be set to point to the moved list entry.
- For all other cases where the list cursor for the list specified
for LISTNUM does not point to a list entry, and the list entry is
processed and remains on this same list, the list cursor will be set
to point to the processed list entry.
- ,ENTRYDISP=KEEP
- ,ENTRYDISP=DELETE
- Use this input parameter to specify whether an existing list entry
when ENTRYTYPE=OLD, having been read, is to remain on the list or
is to be deleted.
- KEEP
- The list entry is to remain on the list after the read is performed.
- DELETE
- The list entry is to be deleted after the read is performed.
- ,ELEMNUM=elemnum
- Use this input parameter to specify the number of elements to
be allocated to the existing or new data entry. Valid ELEMNUM values
are from zero to the MAXELEMNUM value that was specified on the IXLCONN
macro.
Considerations for specifying ELEMNUM are:
- If this request creates a new entry, the number of elements is
set to the ELEMNUM value.
- If the entry already exists, the number of elements is updated
to the ELEMNUM value specified.
Note: If the data from the buffers exceeds the amount of space in
the elements, the data will be truncated. If the data from the buffers
is less than the amount of space in the elements, the remaining space
will be padded with binary zeros.
If you specify an ELEMNUM value of zero:
- No entry data will be written to the new entry.
- Any entry data in the existing entry will be deleted.
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of a 1-byte field that contains the number of elements.
- ,ENTRYID=entryid
- Use this input parameter to specify:
- An entry identifier to be used to identify an existing list entry
to be processed.
- An entry identifier to be assigned to a newly created list entry.
To Code: Specify the RS-type name or address (using
a register from 2 to 12) of a 12-byte field that contains the entry
identifier.
- ,ENTRYKEY=entrykey
- Use this input parameter to designate an unsigned fixed 128-bit
entry key, which can be used to:
- Specify an entry key to be used in conjunction with LISTNUM, DIRECTION,
and KEYREQTYPE to locate the entry to be processed.
- Specifies an entry key to be assigned to the list entry if it
is created. If there exists a sublist of one or more entries with
a matching key on the list, the target position is at the head or
tail of the sublist, as specified by DIRECTION. If all existing list
entries have a key greater that that specified by ENTRYKEY, the target
position is at the head of the list. Similarly, if the specified ENTRYKEY
exceeds all of the entry keys, the target position is at the tail
of the list. If none of the list entries has a matching key, and ENTRYKEY
is neither the greatest nor least among the entry keys, the target
position is determined according to key sequence for the list.
- For structures allocated in a coupling facility of CFLEVEL=9
or higher, when the request specifies KEYCOMPARE=YES, specifies the
entry key to be compared to the entry key of the designated entry.
To Code: Specify the RS-type name or address (using
a register from 2 to 12) of a 16-byte field that contains the entry
key.
- ,ENTRYNAME=entryname
- Use this input parameter to either:
- Assign an entry name to a new entry to be created.
- Designate an existing entry to be processed.
Specify ENTRYNAME only for structures that support named
entries. Each entry name is unique within the structure.
To
Code: Specify the RS-type name or address (using a register from
2 to 12) of a 16-byte field that contains the entry name.
- ,ENTRYTYPE=NEW
- ,ENTRYTYPE=OLD
- ,ENTRYTYPE=ANY
- Use this input parameter to specify the state in which the list
entry is expected to be prior to performing the requested operation.
- NEW
- Write to a new list entry the contents of either the storage area
specified by BUFFER or the buffers specified by BUFLIST, and the
storage area specified by ADJAREA. LISTNUM designates the list number
on which the created entry is to reside. The value of ASSIGN specifies
whether to assign an ENTRYNAME, ENTRYKEY, or list key value to the
newly created list entry. If the structure was allocated to use secondary
keys, a secondary key value may be assigned to the newly created list
entry.
- If the structure supports entry data and BUFFER and BUFLIST are
not specified, the created entry will not contain any entry data.
- If the structure supports adjunct data and ADJAREA is not specified,
the created entry will contain binary zeros for adjunct data.
When the amount of space indicated by ELEMNUM is greater
than the amount of data specified for BUFFER or BUFLIST, the entry
will be padded with zeros. When the amount of space indicated by
ELEMNUM is less than the amount of data specified for BUFFER or BUFLIST,
the input data will be truncated.
Specifying AUTHCOMPARE in
conjunction with AUTHCOMP causes the list authority for the list designated
by LISTNUM to precede processing. If the list authority comparison
ciriterion is not met, the IXLLSTE request is terminated.
If
LOCKINDEX is specified, the lock entry designated by LOCKINDEX will
be operated on a specified by the LOCKOPER keyword.
The new
list entry will be created as follows: - If the structure was not allocated to use named entries or keyed
entries, the newly created entry will be placed on the list specified
by LISTNUM at the head or tail as specified by DIRECTION.
- If the structure was allocated to use named entries, the entry
name specified for ENTRYNAME is assigned to the newly created list
entry, provided a list entry does not already exist with the same
entry name. The newly created entry will be placed on the list specified
by LISTNUM at the head or tail as specified by DIRECTION.
- If the structure was allocated to use keyed entries, an entry
key (and therefore, the target list keyed position) is assigned to
the newly created list entry as follows:
- If ASSIGN=NONE is specified, then:
- If DIRECTION=HEADTOTAIL is specified (explicitly or by default),
the newly created list entry is assigned an entry key value of all
binary zeros.
- If DIRECTION=TAILTOHEAD is specified, the newly created list entry
is assigned an entry key value of all binary ones.
- If ASSIGN=KEY is specified, the newly created list entry is assigned
the value specified for ENTRYKEY.
- If ASSIGN=LISTKEY is specified, the newly created list entry is
assigned the list key value.
- If the assigned entry key is zero, the newly created list entry
is placed at the head of the list specified by LISTNUM.
- If the assigned entry key is non-zero, the newly created list
entry is placed on the list specified by LISTNUM at the head or tail
of the sublist composed of list entries whose entry keys are equal
to the assigned entry key. The newly created list entry is placed
at the head or tail of this sublist as specified by DIRECTION. If
a sublist of entries with entry keys equal to the assigned entry
key does not yet exist, the newly created list entry is placed on
the list in key sequence.
- If the structure was allocated to use user-provided ENTRYIDs,
the newly created list entry is assigned the ENTRYID specified by
ASSIGNENTRYID, provided a list entry does not already exist with the
same ENTRYID.
- If the structure supports secondary keys, the secondary key specified
by SECONDARYKEY will be assigned to the newly created list entry.
If the user does not supply SECONDARYKEY, the newly created list entry
is assigned a secondary key of all binary zeros.
- The newly created list entry is placed on the list specified by
LISTNUM at the head or tail, relative to secondary key ordering, of
the sublist composed of list entries whose secondary keys are equal
to the assigned secondary key. The newly created list entry is placed
at the head or tail of this sublist as specified by SKEYTARGETDIR.
If a sublist of entries with secondary keys equal to the assigned
secondary key does not yet exist, the target position relative to
secondary key ordering is determined according to secondary key sequence
for the list.
When the request completes successfully, the list entry
controls, the number of entries or elements residing on the list,
and the total number of allocated entries in the structure are returned
in the answer area specified by ANSAREA.
- OLD
- Perform a read, write, move, or delete operation on an existing
entry designated by the LOCATOR keyword. If the entry is not found,
the requested operation is not performed and no change is made to
the list structure.
Specifying AUTHCOMPARE in conjunction with
AUTHCOMP causes the list authority for the list designated by LISTNUM
to precede processing. If the list authority comparison ciriterion
is not met, the IXLLSTE request is terminated.
If LOCKINDEX
is specified, the lock entry designated by LOCKINDEX will be operated
on as specified by the LOCKOPER keyword.
If the lock comparison
criterion is not met, the IXLLSTE request is terminated.
In
order for the request to be performed, any and all requested comparison
criteria must be met. Namely, authority comparison, list number comparison,
version number comparison, lock comparison, and key comparison must
each succeed if requested.
- ANY
- Perform the specified operation on the designated entry if it
exists. If the designated entry does not exist, a new entry will
be created.
Specifying AUTHCOMPARE in conjunction with AUTHCOMP
causes the list authority for the list designated by LISTNUM to precede
processing. If the list authority comparison ciriterion is not met,
the IXLLSTE request is terminated.
If LOCKINDEX is specified,
the lock entry designated by LOCKINDEX will be operated on as specified
by the LOCKOPER keyword.
In order for the request to be performed
on an existing list entry, any and all requested comparison criteria
must be met. Namely, list number comparison, version number comparison,
lock comparison, and key comparison must each succeed if requested.
- ,KEYCOMPARE=NO
- ,KEYCOMPARE=YES
- Use this input parameter to specify whether key comparison should
be performed to determine whether the list entry should be processed.
- NO
- No key comparison should be performed to determine whether the
list entry should be processed.
- YES
- Key comparison should be performed to determine whether the list
entry should be processed. If the designated list entry exists but
the requested key comparison criterion is not met, the IXLLSTE request
is terminated.
KEYCOMPARE=YES is only meaningful when the structure
is allocated in a coupling facility of CFLEVEL=9 or higher. KEYCOMPARE=YES
will be ignored if the target structure was not allocated with keyed
list entries.
- ,KEYPOSITION=UPDATE
- ,KEYPOSITION=KEEP
- Use this input parameter to specify whether the list entry is
moved from its current position on the sublist. This keyword has effect
only if the list number specified by MOVETOLIST is the same as the
list number on which the list entry currently resides.
The KEYPOSITION
keyword is only meaningful for list structures allocated in a coupling
facility of CFLEVEL=9 or higher.
- UPDATE
- The list entry should be moved from its current position on the
sublist to a position on the sublist as specified by MOVETODIRECTION
and MOVETOKEY.
- KEEP
- The list entry should keep its current position based on entry
key ordering on the sublist if and only if the list number specified
by MOVETOLIST matches the current list number that contains the list
entry, and the list entry is not changed by the move operation when
MOVETOKEY=UNCHANGED is specified (explicitly or by default).
- ,KEYREQTYPE=EQUAL
- ,KEYREQTYPE=LESSOREQUAL
- ,KEYREQTYPE=GREATEROREQUAL
- Use this input parameter to specify how key comparison is to be
performed on the designated keyed list entry or, when LOCATOR=KEYPOS
is specified, to designate the list entry to be processed.
- EQUAL
-
- The designated list entry must have a key equal to the value specified
for ENTRYKEY. If the entry key is not equal to the value specified
for ENTRYKEY, the IXLLSTE request is terminated.
- When LOCATOR=KEYPOS, specifies that if a list entry exists with
an entry key equal to the value specified for ENTRYKEY, that list
entry is to be processed. If more than one such entry exists, the
list entry at either the head or tail of the sublist as specified
by DIRECTION is designated for processing. If no such entry exists,
the IXLLSTE request is terminated.
- LESSOREQUAL
-
- The designated list entry must have an entry key that is equal
to or less than the value specified for ENTRYKEY. If the entry
key is not equal to or less than the value specified for ENTRYKEY,
the IXLLSTE request is terminated.
- When LOCATOR=KEYPOS, specifies that:
- If a list entry exists with an entry key equal to the value specified
for ENTRYKEY, that entry is designated for processing. If more than
one such entry exists, the list entry at the head or tail of the sublist
as specified by DIRECTION is designated for processing.
- If no list entries exist with an equal entry key, the list entry
with the highest entry key less than the value specified for ENTRYKEY
is designated for processing. If more than one such entry exists,
the list entry at the head or tail of the sublist as specified by
DIRECTION is designated for processing.
- If no list entries exist with an entry key equal to or less than
the value specified for ENTRYKEY, the IXLLSTE request is terminated.
- GREATEROREQUAL
-
- The designated list entry must have an entry key that is equal
to or greater than the value specified for ENTRYKEY. If the entry
key is not equal to or greater than the value specified for ENTRYKEY,
the IXLLSTE request is terminated.
- When LOCATOR=KEYPOS, specifies that:
- If a list entry exists with an entry key equal to the value specified
for ENTRYKEY, that entry is designated for processing. If more than
one such entry exists, the list entry at the head or tail of the sublist
as specified by DIRECTION is designated for processing.
- If no list entries exist with an equal entry key, the list entry
with the lowest entry key greater than the value specified for ENTRYKEY
is designated for processing. If more than one such entry exists,
the list entry at the head or tail of the sublist as specified by
DIRECTION is designated for processing.
- If no list entries exist with an entry key equal to or greater
than the value specified for ENTRYKEY, the IXLLSTE request is terminated.
- ,KEYTYPE=ENTRY
- ,KEYTYPE=SECONDARY
- Use this input parameter to specify whether to locate the list
entry using the list entry key or the secondary key.
- ENTRY
- The list entry will be located by list entry key.
- SECONDARY
- The list entry will be located by secondary key.
KEYTYPE=SECONDARY
is valid only when the structure is allocated in a coupling facility
of CFLEVEL=9 or higher.
- ,LISTCOMPARE=NO
- ,LISTCOMPARE=YES
- Use this input parameter to specify whether list number comparison
should be performed to determine whether the list entry should be
processed.
- NO
- No list number comparison whould be performed to determine whether
the list entry should be processed.
- YES
- List number comparison should be performed to determine whether
the list entry should be processed.
The list number value specified
for LISTNUM is compared with the list number on which the designated
list entry resides. If the designated list entry exists but does not
reside on the list specified by LISTNUM, the IXLLSTE request is terminated.
- ,LISTKEYINC=NO_LISTKEYINC
- ,LISTKEYINC=listkeyinc
- Use this input parameter to specify a value to be added to the
list key after the entry key is set to the list key value. If the
entry key is not set to the list key value, the list key value will
not be changed. If the result of adding the value specified by LISTKEYINC
to the list key value is greater than the maximum list key value,
the system terminates the IXLLSTE request.
Note: The LISTKEYINC parameter
is valid only for list structures allocated in a coupling facility
of CFLEVEL=1 or higher.
To Code: Specify the RS-type
name or address (using a register from 2 to 12) of the fullword field
that contains the value to be added to the list key after the entry
key is set to the list key value.
- ,LISTLIMIT=ENFORCE
- ,LISTLIMIT=IGNORE
- Use this input parameter to specify whether the current list limits
set for the target list should be enforced or ignored on a MOVE request
when ENTRYTYPE=OLD. This has effect if the listlimit for the target
list has been modified by an IXLLSTC WRITE_LCONTROLS request and is
not equal to the default list limit.
- ENFORCE
- The move request will be failed if the list-entry count would
exceed the current list-entry count limit of the target list or the
list-element count would exceed the list-element count limit of
the target list as a result of the move request.
- IGNORE
- The move request will proceed even if the list-entry count would
exceed the current list-entry count limit of the target list or the
list-element count would exceed the list-element count of the target
list as a result of this move request.
- ,LISTNUM=NO_LISTNUM
- ,LISTNUM=listnum
- Use this input parameter to specify the number of the list on
which the entry to be processed currently resides. Use LISTNUM in
the following ways:
- Designate the list number (when ENTRYTYPE=NEW) on which the newly
created list entry should be placed.
- Check if the entry exists on the list (when ENTRYTYPE=ANY) before
proceeding with the request.
- Confirm that the entry exists on the list (when ENTRYTYPE=OLD)
before proceeding with the request.
To Code: Specify the RS-type name or address (using
a 2 register from 2 to 12) of a 4-byte field that contains the number
of the list.
- ,LOCATOR=CURSOR
- ,LOCATOR=ENTRYID
- ,LOCATOR=ENTRYNAME
- ,LOCATOR=UNKEYPOS
- ,LOCATOR=KEYPOS
- Use this input parameter to specify the location mechanism to
be used to designate the list entry to be processed.
- CURSOR
- The list cursor should be used to designate the list entry to
be processed.
- ENTRYID
- The ENTRYID is to be used to designate the list entry to be processed.
- ENTRYNAME
- The entry name specified by ENTRYNAME is to be used to designate
the list entry to be processed.
LOCATOR=ENTRYNAME may only be
specified when the structure was allocated to use named entries.
- UNKEYPOS
- LISTNUM and DIRECTION are to be used to designate the list entry
at the head or tail of the list to be processed.
- KEYPOS
- LISTNUM, DIRECTION, and the key specified by KEYTYPE are to be
used to designate the list entry to be processed.
- ,LOCKCOMP=NO_LOCKCOMP
- ,LOCKCOMP=lockcomp
- This parameter has slightly different meanings based on the value
specified for the LOCKOPER parameter. Generally, this input parameter
specifies a connection identifier to be verified as the owner of the
lock specified by LOCKINDEX. This verification is a prerequisite to
the successful completion of the request.
When LOCKCOMP is specified, the completion of the request is conditional
on there being no contention for the lock. If contention exists, the
request will fail.
The connection identifier is available from the IXLCONN answer
area, mapped by IXLYCONA, in field CONACONID.
The effect of LOCKCOMP is based on the LOCKOPER value specified.
See the description under LOCKOPER to see how each request is affected
by this parameter.
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of a 1-byte field that contains the connection identifier.
- ,LOCKDATA=NO_LOCKDATA
- ,LOCKDATA=lockdata
- Use this input parameter to specify information that is to be
passed to your notify exit when another user requests the LOCKINDEX
lock after you have obtained the lock using LOCKOPER=SET. This user-defined
information will be passed to your notify exit when the other user
issues a request specifying either one of the following:
- LOCKOPER=SET
- LOCKOPER=NOTHELD with LOCKMODE=UNCOND
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of an 8-byte field that contains the user-defined information.
- ,LOCKMODE=UNCOND
- ,LOCKMODE=COND
- Use this input parameter to specify how contention for the lock
specified by LOCKINDEX should be handled if your request causes lock
contention.
- UNCOND
- If the specified lock is held by another user, your request is
either:
- Suspended until the lock becomes available (if MODE=SYNCSUSPEND
is specified).
- Performed asynchronously with notification to you when the request
completes (if any MODE value other than SYNCSUSPEND is specified).
- COND
- The lock operation will be performed conditionally; that is, only
if there is no contention for the lock. If the specified lock is held
by another user, the request will be terminated with no change to
the structure, and return and reason codes describing the termination
are returned to the caller.
- ,LOCKOPER=SET
- ,LOCKOPER=RESET
- ,LOCKOPER=NOTHELD
- ,LOCKOPER=HELDBY
- Use this input parameter to specify the type of operation to be
performed on the lock specified by LOCKINDEX.
- SET
- Set the lock.
- When LOCKCOMP is not specified, your connection gets the lock,
providing no other connection holds the lock. If another connection
holds the lock, the request either continues once the lock is released
or fails, depending on the LOCKMODE value you specify.
- When LOCKCOMP is specified, if the connection specified by LOCKCOMP
holds the lock, the lock will be transferred to your connection.
- RESET
- Reset the lock.
- When LOCKCOMP is not specified, the lock will be released if it
is held by your connection.
- When LOCKCOMP is specified, the lock will be released if it is
held by the connection specified by LOCKCOMP.
- NOTHELD
- The request is performed only if the lock is not held by any connection.
This option also ensures that the lock remains free for the duration
of the request. If another connection holds the lock, your task is
suspended until the lock is released or your request fails, depending
on the LOCKMODE value you specify. See the LOCKMODE description for
how to handle possible lock contention.
- HELDBY
- Processing is determined by which connector is holding the lock.
- When LOCKCOMP is not specified, the request is performed only
if your connection holds the lock.
- When LOCKCOMP is specified, the request is performed only if the
lock is held by the connection specified by LOCKCOMP.
- ,MF=S
- ,MF=(L,mfctrl)
- ,MF=(L,mfctrl,mfattr)
- ,MF=(L,mfctrl,0D)
- ,MF=(E,mfctrl)
- ,MF=(E,mfctrl,COMPLETE)
- Use MF=S to specify the standard form of the macro, which builds
an inline parameter list and generates the macro invocation to transfer
control to the service.
Use MF=L to specify the list form of the macro. Use the list form
together with the execute form of the macro for applications that
require reentrant code. The list form defines an area of storage that
the execute form uses to store the parameters. Only the PLISTVER parameter
can be coded with the list form of the macro.
Use MF=E to specify the execute form of the macro. Use the execute
form together with the list form of the macro for applications that
require reentrant code. The execute form stores the parameters into
the storage area defined by the list form, and generates the macro
invocation to transfer control to the service.
- ,mfctrl
- Use this output parameter to specify a storage area to contain
the parameters.
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of the parameter list.
- ,mfattr
- Use this input parameter to specify the name of a 1- to 60-character
string that can contain any value that is valid on an assembler DS
pseudo-op. You can use this parameter to force boundary alignment
of the parameter list. If you do not code mfattr, the system
provides a value of 0D, which forces the parameter list to a doubleword
boundary.
- ,COMPLETE
- Use this input parameter to require that the system check for
required parameters and supply defaults for omitted optional parameters.
Note: In the macro expansion you might see some defaults for optional
parameters that are not documented here. The ones that are not documented
do not have any effect on the macro. For example, if SMILE=var were
an optional parameter and the default is SMILE=NO_SMILE then it would
not be documented. However, if the default was SMILE=:-), then it
would be documented because a value would be the default.
- ,MODE=SYNCSUSPEND
- ,MODE=SYNCECB
- ,MODE=SYNCEXIT
- ,MODE=SYNCTOKEN
- ,MODE=ASYNCECB
- ,MODE=ASYNCEXIT
- ,MODE=ASYNCTOKEN
- ,MODE=ASYNCNORESPONSE
- Use this input parameter to specify whether the request is to
be performed synchronously or asynchronously.
- SYNCSUSPEND
- The request will be performed synchronously. Control is not returned
to the caller until request processing is complete and the final
disposition determined.
If necessary, the caller will be suspended until the request completes.
The caller must be executing in an enabled state to use this option.
- SYNCECB
- The request will be attempted synchronously. If the request cannot
be completed synchronously, control is returned to the caller prior
to completion of the request, and the ECB specified by REQECB is posted
when the request has completed.
If the request does not complete synchronously, latent XES binds
to the storage locations specified by BUFFER, BUFLIST, MOSVECTOR,
and ANSAREA persist until the REQECB ECB is posted.
- SYNCEXIT
- The request will be attempted synchronously. If the request cannot
be completed synchronously, control is returned to the caller prior
to completion of the request. When the request completes, the connection's
Complete Exit will be called.
If the request does not complete synchronously, latent XES binds
to the storage locations specified by BUFFER, BUFLIST, MOSVECTOR,
and ANSAREA persist until the connection's Complete Exit is called.
- SYNCTOKEN
- The request will be attempted synchronously. If the request cannot
be completed synchronously, control is returned to the caller prior
to completion of the request and a token that uniquely identifies
the request is returned. This token must be specified on a subsequent
invocation of IXLFCOMP to force completion of the request and determine
its final disposition.
If the request does not complete synchronously, latent XES binds
to the storage locations specified by BUFFER, BUFLIST, MOSVECTOR,
and ANSAREA persist until a subsequent corresponding IXLFCOMP request
indicates completion of the original request.
- SYNCECB
- The request is to be initiated and control is to be returned to
the caller prior to completion of the request. When the request completes,
the ECB specified by REQECB will be posted.
Latent XES binds to the storage locations specified by BUFFER,
BUFLIST, MOSVECTOR, and ANSAREA persist until the REQECB ECB is posted.
- ASYNCEXIT
- The request is to be initiated and control is to be returned to
the caller prior to completion of the request. When the request completes,
the connection's Complete Exit will be called.
Latent XES binds to the storage locations specified by BUFFER,
BUFLIST, MOSVECTOR, and ANSAREA persist until the connection's Complete
Exit is called.
- ASYNCTOKEN
- The request is to be initiated, a token generated that uniquely
identifies the request on this system, and control returned to the
caller prior to completion of the requested operation. The token must
be specified on a subsequent invocation of IXLFCOMP to force completion
of the request and determine its final disposition.
Latent XES binds to the storage locations specified by BUFFER,
BUFLIST, MOSVECTOR, and ANSAREA persist until a subsequent corresponding
IXLFCOMP request indicates completion of the original request.
- ASYNCNORESPONSE
- The request is to be initiated and control returned to the caller
prior to completion of the requested operation. No asynchronous request
token is returned, hence no external mechanism exists to force completion
of the request.
MODE=ASYNCNORESPONSE is mutually exclusive with LOCKINDEX, BUFFER,
and BUFLIST. Any request which does not perform a locking operation
and does not use a BUFFER area or BUFLIST buffers may specify MODE=ASYNCNORESPONSE.
- ,MOVETODIRECTION=HEADTOTAIL
- ,MOVETODIRECTION=TAILTOHEAD
- Use this input parameter in conjunction with MOVETOLIST and the
entry key assigned to the list entry when keyed entries are being
used, to designate the target position for the moved or created list
entry.
- HEADTOTAIL
- One of the following:
- If the list entry is moved or created as a result of this request,
and the structure was not allocated to use keyed entries, the list
entry will be placed at the head of the list designated by MOVETOLIST.
- If the list entry is moved or created as a result of this request,
and the structure was allocated to use keyed entries, the entry will
be placed at the head of the sublist designated by MOVETOLIST and
the assigned entry key.
- TAILTOHEAD
- One of the following:
- If the list entry is moved or created as a result of this request,
and the structure was not allocated to use keyed entries, the list
entry will be placed at the tail of the list designated by MOVETOLIST.
- If the list entry is moved or created as a result of this request,
and the structure was allocated to use keyed entries, the entry will
be placed at the tail of the sublist designated by MOVETOLIST and
the assigned entry key.
- ,MOVETOKEY=NO_MOVETOKEY
- ,MOVETOKEY=movetokey
- Use this input parameter to assign a new key, and hence the position
on the MOVETOLIST, for the existing entry being moved when ENTRYTYPE=OLD.
The existing entry's key will be updated to the MOVETOKEY key value.
If MOVETOKEY is not specified, ENTRYKEY will remain unchanged.
Note: - If there is a sublist of one or more entries with a matching key
on the list then the target position is the head or tail of the sublist,
as specified by the MOVETODIRECTION parameter.
- If none of the list entries have a matching key, and MOVETOKEY
is neither the greatest nor least among the list entry keys, then
the target position is according to the appropriate key sequence for
the list.
To Code: Specify the RS-type name or address
(using a register from 2 to 12) of a 16-byte field that contains the
key.
- ,MOVETOLIST=movetolist
- Use this input parameter to specify the number of the target list
where the existing entry being moved or the new entry being created
will be placed.
To Code: Specify the RS-type name or address
(using a register from 2 to 12) of a 4-byte field that contains the
number of the target list.
- ,NEWAUTH=NO_NEWAUTH
- ,NEWAUTH=newauth
- Use this input parameter to specify a list authority value for
the list specified by LISTNUM. If NEWAUTH is omitted, the list authority
for the designated list is unchanged.
When the structure is allocated, the authority value for each list
is initialized to binary zeros.
Note: The NEWAUTH parameter is valid only for list structures allocated
in a coupling facility with CFLEVEL=1 or higher, except on WRITE_LCONTROLS
requests.
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of the 16-byte field that contains the list authority
value.
- ,NEWVERS=newvers
- Use this input parameter with VERSUPDATE=SET to specify an unsigned
fixed 64-bit value for the list entry version number to either replace
the version number of the existing entry, or initialize the version
number of a new entry.
To Code: Specify the RS-type name
or address (using a register from 2 to 12) of an 8-byte field that
contains the entry version number.
- ,PAGEABLE=YES
- ,PAGEABLE=NO
- Use this input parameter to identify whether the storage areas
specified by BUFFER or BUFLIST reside in pageable storage.
- YES
- Specify this option to indicate that the BUFFER or BUFLIST buffers
reside in pageable virtual storage.
This includes disabled reference (DREF) storage, and may include
storage that has the potential to become pageable during the processing
of a request. (An example is address space storage owned by any swappable
address space, for which a PGSER FIX has been successfully processed,
but for which the owning address space gets swapped during processing
of a cache or list request.) It does not include implicitly non-pageable
storage (such as is obtained from non-pageable subpools).
The system takes responsibility for managing binds to central storage
for the duration of the list request, regardless of what address space
owns the storage or whether the storage-owning address space is swappable
or nonswappable. The storage can be owned by any address space.
- NO
- Specify this option to indicate that the BUFFER or BUFLIST buffers
reside in non-pageable virtual storage.
This includes implicitly non-pageable storage areas. If the virtual
storage may potentially become pageable, the invoker is responsible
for ensuring the virtual storage remains non-pageable for the duration
of the request. (An example is address space storage owned by any
swappable address space, for which a PGSER FIX has been successfully
processed, but for which the owning address space gets swapped-out
during processing of a list request.)
If MODE=ASYNCTOKEN is specified or MODE=SYNCTOKEN is specified
and the request does not complete synchronously, the storage must
remain non-pageable until completion of the corresponding IXLFCOMP
request. If MODE=ASYNCEXIT is specified or MODE=SYNCEXIT is specified
and the request does not complete synchronously, the storage must
remain non-pageable until the complete exit is driven for the request.
If MODE=ASYNCECB is specified or MODE=SYNCECB is specified and the
request does not complete synchronously, the storage must remain
non-pageable until the specified ECB is posted for the request.
The system takes responsibility for managing binds to central storage
for the duration of the list request, if and only if the non-pageable
storage is owned by either the requestor's address space or the connector's
address space. If the storage is owned by any other address space,
then the invoker is responsible for ensuring that the virtual storage
remains non-pageable for the duration of the request (including the
case in which the storage is owned by a swappable address space that
is swapped during processing of a list request). Subject to this
consideration, the storage can be owned by any address space. See z/OS MVS Programming: Sysplex Services Guide.
- ,PLISTVER=IMPLIED_VERSION
- ,PLISTVER=MAX
- ,PLISTVER=plistver
- Use this input parameter to specify the version of the macro.
See Understanding IXLLSTE Version Support for a description of the
options available with the PLISTVER macro.
- ,REQDATA=NO_REQDATA
- ,REQDATA=reqdata
- Use this input parameter with MODE=SYNCEXIT or MODE=ASYNCEXIT
to pass any data you choose to the complete exit. The exit will get
control only if the request is processed asynchronously.
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of an 8-byte field that contains the data to be passed
to the complete exit.
- ,REQECB=reqecb
- Use this output parameter with either MODE=SYNCECB or MODE=ASYNCECB
to specify the address of an ECB, which is to be posted when the request
completes if the request was processed asynchronously.
Before coding REQECB, you must ensure that:
- You initialize the ECB before you issue the request.
- The ECB resides in either common storage or the home address space
where IXLCONN was issued.
- Any tasks that wait for the ECB to be posted reside in the home
address space where IXLCONN was issued.
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of a 4-byte field that contains the address of the ECB
to be posted when the request completes. The ECB must be aligned on
a fullword boundary.
- ,REQID=NO_REQID
- ,REQID=reqid
- Use this input parameter to specify a user-defined request identifier
to be associated with the request. You can specify this request identifier
on the IXLPURGE macro to cancel a request that has not yet been processed.
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of an 8-byte field that contains the user-defined request
identifier.
- ,REQTOKEN=reqtoken
- Use this output parameter with either MODE=SYNCTOKEN or MODE=ASYNCTOKEN
to specify the address of a storage area to receive the request token
that is returned when the request will be processed asynchronously.
This token, which uniquely identifies the request, must be used as
input to the IXLFCOMP macro, which you use to determine if the request
has completed.
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of a 16-byte field where the system will put the request
token.
- ,REQUEST=READ
- ,REQUEST=WRITE
- ,REQUEST=MOVE
- ,REQUEST=DELETE
- Use this input parameter to specify the type of operation to be
performed on the designated list entry.
- READ
- The entry data and adjunct data and list entry controls for the
designated entry are to be read.
Entry data is to be read into
the storage area specified by BUFFER or the buffers specified by BUFLIST.
Adjunct data is to be read into the storage area specified by ADJAREA.
The absence of BUFFER, BUFLIST, and ADJAREA specifies the request
is only interested in obtaining the list entry controls in the answer
area specified by ANSAREA.
When the request completes successfully,
the list entry controls, the number of entries or elements residing
on the list, and the total number of allocated entries in the structure
are returned in the answer area specified by ANSAREA.
- WRITE
-
- For requests that specify either ENTRYTYPE=OLD or ENTRYTYPE=ANY
and the designated entry already exists:
The contents of the
storage area specified by BUFFER or the buffers specified by BUFLIST,
and the storage area specified by ADJAREA are to be written to the
designated list entry.
The size of list entry may be altered
by specifying an ELEMNUM value that is different than the ELEMNUM
value used when the entry was created. When the amount of space indicated
by ELEMNUM is greater than the amount of data specified for BUFFER
or BUFLIST, the entry will be padded with zeros. When the amount of
spece indicated by ELEMNUM is less than the amount of data specified
for BUFFER or BUFLIST, the input data will be truncated.
When
the request completes successfully, the list entry controls, the number
of entries or elements residing on the list, and the total number
of allocated entries in the structure are returned in the answer
area specified by ANSAREA.
- For requests that specify ENTRYTYPE=ANY and the designated list
entry does not exist, a new list entry will be created as follows:
- If the structure was not allocated to use named entries or keyed
entries, the newly created entry will be placed on the list specified
by LISTNUM at the head or tail as specified by DIRECTION.
- If the structure was allocated to use named entries, the entry
name specified for ENTRYNAME is assigned to the newly created list
entry, provided a list entry does not already exist with the same
entry name. The newly created entry will be placed on the list specified
by LISTNUM at the head or tail as specified by DIRECTION.
- If the structure was allocated to use keyed entries, an entry
key (and therefore, the target list keyed position) is assigned to
the newly created list entry as follows:
- If ASSIGN=NONE is specified, then:
- If DIRECTION=HEADTOTAIL is specified (explicitly or by default),
the newly created list entry is assigned an entry key value of all
binary zeros.
- If DIRECTION=TAILTOHEAD is specified, the newly created list entry
is assigned an entry key value of all binary ones.
- If ASSIGN=KEY is specified, the newly created list entry is assigned
the value specified for ENTRYKEY.
- If ASSIGN=LISTKEY is specified, the newly created list entry is
assigned the list key value.
- If the assigned entry key is zero, the newly created list entry
is placed at the head of the list specified by LISTNUM.
- If the assigned entry key is non-zero, the newly created list
entry is placed on the list specified by LISTNUM at the head or tail
of the sublist composed of list entries whose entry keys are equal
to the assigned entry key. The newly created list entry is placed
at the head or tail of this sublist as specified by DIRECTION. If
a sublist of entries with entry keys equal to the assigned entry
key does not yet exist, the newly created list entry is placed on
the list in key sequence.
- If the structure was allocated to use user-provided ENTRYIDs,
the newly created list entry is assigned the ENTRYID specified by
ASSIGNENTRYID, provided a list entry does not already exist with the
same ENTRYID.
- If the structure supports entry data and BUFFER and BUFLIST are
not specified, the newly created list entry will not contain any entry
data.
- If the structure supports adjunct data and ADJAREA is not specified,
the newly created list entry will contain binary zeros for adjunct
data.
- If the structure supports secondary keys, the secondary key specified
by SECONDARYKEY will be assigned to the newly created list entry.
If the user does not supply SECONDARYKEY, the newly created list entry
is assigned a secondary key of all binary zeros.
- The newly created list entry is placed on the list specified by
LISTNUM at the head or tail, relative to secondary key ordering, of
the sublist composed of list entries whose secondary keys are equal
to the assigned secondary key. The newly created list entry is placed
at the head or tail of this sublist as specified by SKEYTARGETDIR.
If a sublist of entries with secondary keys equal to the assigned
secondary key does not yet exist, the target position relative to
secondary key ordering is determined according to secondary key sequence
for the list.
- MOVE
-
- When the request specifies ENTRYTYPE=OLD:
- The designated list entry is to be moved from its current location
and placed at the position specified by MOVETOLIST, MOVETODIRECTION,
and if keyed entries are being used, the entry key specified by MOVETOKEY.
When ACTION=READ and ACTION=WRITE, in addition to moving the list
entry, the entry data and/or adjunct data is read into the storage
areas specified by BUFFER or BUFLIST and, if applicable, ADJAREA.
When
the request completes successfully, the list entry controls, the number
of entries or elements residing on the target list, and the total
number of allocated entries in the structure are returned in the
answer specified by ANSAREA.
- If the structure was allocated to use keyed entries, an entry
key is assigned to the moved list entry as follows:
- If TARGETKEY is specified with MOVETOKEY=TARGETKEY, the list entry
is assigned the entry key specified by TARGETKEY.
- If MOVETOKEY=LISTKEY, the list entry is assigned the current list
key value of the target list.
- If MOVETOKEY=UNCHANGED, the entry key of the list entry remains
unchanged.
- When the request specifies ENTRYTYPE=ANY and ACTION=WRITE, and
the designated list entry exists:
- In addition to moving the list entry, the data in the storage
area(s) specified by BUFFER or BUFLIST and, if applicable ADJAREA,
is written to the list entry. If BUFFER or BUFLIST is not specified,
entry data is not to be written. If ADJAREA is not specified, structure
adjunct data will not be written.
- The size of an existing list entry may be altered by specifying
an ELEMNUM value that is different from the ELEMNUM value used when
the entry was created. When the amount of space indicated by ELEMNUM
is greater than the amount of data specified for BUFFER or BUFLIST,
the entry will be padded with zeros. When the amount of space indicated
by ELEMNUM is less than the amount of data specified for BUFFER or
BUFLIST, the input data will be truncated.
- The designated list entry will be moved as follows:
- If the structure was not allocated to use keyed entries, the list
entry will be placed on the list specified by MOVETOLIST at the head
or tail as specified by MOVETODIRECTION.
- The moved list entry is placed on the list specified by MOVETOLIST
at the head or tail of the sublist composed of list entries whose
entry keys are equal to the assigned entry key. The moved list entry
is placed at the head or tail of this sublist as specified by MOVETODIRECTION.
If a sublist of entries with entry keys equal to the assigned entry
key does not yet exist, the moved list entry is placed on the list
in key sequence.
- The moved list entry is placed on the list specified by MOVETOLIST
at the head or tail of the sublist composed of list entries whose
secondary keys are equal to the assigned secondary key. The moved
list entry is placed at the head or tail of this sublist as specified
by SKEYTARGETDIR. If a sublist of entries with secondary keys equal
to the assigned secondary key does not yet exist, the moved list
entry is placed on the list in secondary key sequence.
- If the structure was allocated to use keyed entries, an entry
key (and therefore, the target list keyed position) is assigned to
the list entry as follows:
- If TARGETKEY=NO_TARGETKEY is specified (explicitly or by default)
with ASSIGNLISTKEY=NO or with ASSIGNLISTKEY=CREATE, the entry key
remains unchanged.
- If TARGETKEY is specified with ASSIGNLISTKEY=NO or with ASSIGNLISTKEY=CREATE,
the entry key is assigned the value specified for TARGETKEY.
- If ASSIGNLISTKEY=MOVE or ASSIGNLISTKEY=ANY is specified, the entry
key is assigned the list key value of the target list.
- When the request specifies ENTRYTYPE=ANY and the designated list
entry does not exist, a new list entry will be created as follows:
- If the structure was not allocated to use named entries or keyed
entries, the newly created entry will be placed on the list specified
by MOVETOLIST at the head or tail as specified by MOVETODIRECTION.
- If the structure was allocated to use named entries, the entry
name specified for ENTRYNAME is assigned to the newly created list
entry, provided a list entry does not already exist with the same
entry name. The newly created entry will be placed on the list specified
by MOVETOLIST at the head or tail as specified by MOVETODIRECTION.
- If the structure was allocated to use keyed entries, an entry
key (and therefore, the target list keyed position) is assigned to
the newly created list entry as follows:
- If ENTRYKEY is not specified, and TARGETKEY=NO_TARGETKEY is specified
(explicitly or by default) with ASSIGNLISTKEY=NO or with ASSIGNLISTKEY=MOVE,
then:
- If MOVETODIRECTION=HEADTOTAIL is specified (explicitly or by default),
the newly created list entry is assigned an entry key value of all
binary zeros.
- If MOVETODIRECTION=TAILTOHEAD is specified, the newly created
list entry is assigned an entry key value of all binary ones.
- If ENTRYKEY is specified, and TARGETKEY=NO_TARGETKEY is specified
(explicitly or by default) with ASSIGNLISTKEY=NO or with ASSIGNLISTKEY=MOVE,
the newly created list entry is assigned the value specified by ENTRYKEY.
- If TARGETKEY is specified with ASSIGNLISTKEY=NO or with ASSIGNLISTKEY=MOVE,
the newly created list entry is assigned the value specified for TARGETKEY.
- If ASSIGNLISTKEY=CREATE or ASSIGNLISTKEY=ANY is specified, the
newly created list entry is assigned the list key value of the target
list.
- The newly created list entry is placed on the list specified by
MOVETOLIST at the head or tail of the sublist composed of list entries
whose entry keys are equal to the assigned entry key. The newly created
list entry is placed at the head or tail of this sublist as specified
by MOVETODIRECTION. If a sublist of entries with entry keys equal
to the assigned entry key does not yet exist, the newly created list
entry is placed on the list in key sequence.
- The newly created list entry is placed on the list specified by
MOVETOLIST at the head or tail of the sublist composed of list entries
whose secondary keys are equal to the secondary key of the moved entry.
The newly created list entry is placed at the head or tail of this
sublist as specified by SKEYTARGETDIR. If a sublist of entries with
secondary keys equal to the assigned secondary key does not yet exist,
the newly created list entry is placed on the list in secondary key
sequence.
- If the structure was allocated to use user provided ENTRYIDs,
the newly created list entry is assigned the ENTRYID specified by
ASSIGNENTRYID, provided a list entry does not already exist with
the same ENTRYID.
- If the structure supports entry data and BUFFER and BUFLIST are
not specified, the newly created list entry will not contain any entry
data.
- If the structure supports adjunct data and ADJAREA is not specified,
the newly created list entry will contain binary zeros for adjunct
data. If the structure was allocated to use secondary keys, then
the first 32 bytes of the adjunct data will be occupied by the secondary
key which may or may not be zeros.
- DELETE
- The designated list entry is to be removed from the list on which
it resides and returned to the pool of free entries for reuse.
When
the request completes successfully, the list entry controls for the
deleted entry, the remaining number of entries or elements residing
on the list, and the remaining total number of allocated entries
in the structure are returned in the answer area specified by ANSAREA.
- ,RETCODE=retcode
- Use this output parameter to specify a field to contain the return
code. (The return code is also returned in register 15.)
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of a 4-byte field that will contain the return code
when the request has completed.
- ,RSNCODE=rsncode
- Use this output parameter to specify a field to contain the reason
code returned, if applicable. (The reason code is also returned in
register 0.)
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of a 4-byte field that will contain the reason code
(if any) when the request has completed.
- ,SECONDARYKEY=NO_SECONDARYKEY
- ,SECONDARYKEY=secondarykey
- Use this input parameter to specify an unsigned fixed 256-bit
secondary key to be used to:
- Specify a secondary key to be used in conjunction with LISTNUM,
DIRECTION, and SKEYREQTYPE to locate the list entry to be processed.
- Specify a secondary key to be assigned to the list entry if it
is created. SKEYTARGETDIR is used to specify the position relative
to secondary key ordering on the sublist at which to place the newly
created list entry. If there exists a sublist of one or more entries
with a matching secondary key on the list, the target position is
at the head or tail of the sublist, as specified by SKEYTARGETDIR.
If all existing list entries have a secondary key greater than that
specified by SECONDARYKEY, the target position relative to secondary
key ordering is at the head of the list. Similarly, if the specified
SECONDARYKEY exceeds all of the secondary keys, the target position
relative to secondary key ordering is at the tail of the list. If
none of the list entries has a matching secondary key, and SECONDARYKEY
is neither the greatest nor least among the secondary keys, the target
position relative to secondary key ordering is determined according
to secondary key sequence for the list.
- For structures allocated in a coupling facility of CFLEVEL=9
or higher, when the request specifies SKEYCOMPARE=YES, specifies
the secondary key to be compared to the secondary key of the designated
entry.
If the user does not supply SECONDARYKEY, the secondary
key will be set to all binary zeros.
To Code: Specify
the RS-type name or address (using a register from 2 to 12) of the
32-byte field that contains the secondary key to be assigned to the
list entry.
- ,SKEYCOMPARE=NO
- ,SKEYCOMPARE=YES
- Use this input parameter to specify whether secondary key comparison
should be performed to determine whether the list entry should be
processed.
- NO
- No secondary key comparison should be performed to determine whether
the list entry should be processed.
- YES
- Secondary key comparison should be performed to determine whether
the list entry should be processed. if the designated list entry exists
but the requested key comparison criterion is not met, the IXLLSTE
request is terminated.
SKEYCOMPARE=YES is only meaningful when
the structure is allocated in a coupling facility of CFLEVEL=9 or
higher.
SKEYCOMPARE=YES will be ignored if the target structure
was not allocated with secondary keys.
- ,SKEYPOSITION=UPDATE
- ,SKEYPOSITION=KEEP
- Use this input parameter to specify whether the list entry is
moved from its current position on the secondary sublist when REQUEST=MOVE.
This keyword has effect only if the list number specified by MOVETOLIST
is the same as the list number on which the list entry currently resides.
The SKEYPOSITION keyword is only meaningful for list structures
allocated in a coupling facility of CFLEVEL=9 or higher.
- UPDATE
- The list entry should be moved from its current position on the
secondary sublist to a position on the secondary sublist as specified
by SKEYTARGETDIR.
- KEEP
- The list entry should keep its current position based on secondary
key ordering on the secondary sublist if and only if the list number
specified by MOVETOLIST matches the current list number that contains
the list entry.
- ,SKEYREQTYPE=EQUAL
- ,SKEYREQTYPE=LESSOREQUAL
- ,SKEYREQTYPE=GREATEROREQUAL
- Use this input parameter to specify how secondary key comparison
is to be performed on the designated keyed list entry or, when LOCATOR=KEYPOS
is specified, to designate the list entry to be processed.
- EQUAL
-
- The designated list entry must have a secondary key equal to the
value specified for SECONDARYKEY. If the secondary key of the entry
is not equal to the value specified for SECONDARYKEY, the IXLLSTE
request is terminated.
- When LOCATOR=KEYPOS, specifies that if a list entry exists with
a secondary key equal to the value specified for SECONDARYKEY, that
entry is designated for processing. If more than one such entry exists,
the list entry at either the head or tail of the sublist as specified
by DIRECTION is designated for processing. If no such entry exists,
the IXLLSTE request is terminated.
- LESSOREQUAL
-
- The designated list entry msut have a secondary key equal to or
less than the value specified for SECONDARYKEY. If the secondary key
of the entry is not equal to or less than the value specified for
SECONDARYKEY, the IXLLSTE request is terminated.
- When LOCATOR=KEYPOS, specifies that:
- If a list entry exists with a secondary key equal to or less than
the value specified for SECONDARY key, that entry is designated for
processing. If more than one such entry exists, the list entry at
the head or tail of the sublist as specified by DIRECTION is designated
for processing.
- If no list entries exist with an equal secondary key, the list
entry with the highest secondary key less than the value specified
for SECONDARYKEY is designated for processing. If more than one such
entry exists, the list entry at the head or tail of the sublist as
specified by DIRECTION is designated for processing.
- If no list entries exist with a secondary key equal to or less
than the value specified for SECONDARYKEY, the IXLLSTE request is
terminated.
- GREATEROREQUAL
-
- The designated list entry must have a secondary key equal to or
greater than the value specified for SECONDARYKEY. If the secondary
key of the entry is not equal to or greater than the value specified
for SECONDARYKEY, the IXLLSTE request is terminated.
- When LOCATOR=KEYPOS, specifies that:
- If a list entry exists with a secondary key equal to the value
specified for SECONDARYKEY, that entry is designated for processing.
If more than one such entry exists, the list entry at the head or
tail of the sublist as specified by DIRECTION is designated for
processing.
- If no list entries exist with an equal secondary key, the list
entry with the lowest secondary key greater than the value specified
for SECONARYKEY is designated for processing. If more than one such
entry exists, the list entry at the head or tail of the sublist as
specified by DIRECTION is designated for processing.
- If no list entries exist with a secondary key equal to or greater
than the value specified for SECONDARYKEY, the IXLLSTE request is
terminated.
- ,SKEYTARGETDIR=HEADTOTAIL
- ,SKEYTARGETDIR=TAILTOHEAD
- Use this input parameter to specify the position relative to secondary
key ordering on the sublist at which to place the newly created list
entry. This parameter is used in conjunction with LISTNUM and with
the assigned secondary key value when the structure was allocated
with secondary keys.
SKEYTARGETDIR is only valid when the structure
is allocated in a coupling facility of CFLEVEL=9 or higher.
- HEADTOTAIL
- The designated position is at the head of the sublist designated
by the secondary key value.
- TAILTOHEAD
- The designated position is at the tail of the sublist designated
by the secondary key value.
- ,TARGETKEY=NO_TARGETKEY
- ,TARGETKEY=targetkey
- Use this input parameter to specify an unsigned fixed 128-bit
entry key to be assigned to the list entry if it is moved or created
as a result of this request. The assigned entry key is used in conjunction
with MOVETOLIST and MOVETODIRECTION to designate the target keyed
position of the list entry.
This keyword is only applicable to
a structure that was allocated to used keyed entries, and is otherwise
ignored.
To Code: Specify the RS-type name or address
(using a register from 2 to 12) of a 16-byte area that contains the
entry key to be assigned to the list entry.
- ,UPDATECURSOR=NO
- ,UPDATECURSOR=YES
- Use this input parameter to specify whether the list cursor for
the list containing the processed list entry should be updated if
the request is successful.
If the structure was allocated with
keyed entries, the entry key order is always used to determine the
next or previous list entry. Note that the secondary key order is
not relevant in determining the next or previous list entry.
- NO
- The cursor should not be updated.
Note that the list cursor
will be set to binary zeros if it points to an entry that is deleted
or moved to another list as a result of this request regardless of
how UPDATECURSOR is specified.
- YES
- The cursor should be updated.
If the list entry specified
on the request exists, the list cursor for the list on which the entry
resides is updated before the list entry is processed for the request.
The
CURSORUPDTYPE values of NEXTCOND, CURRENT, and CURRENTCOND are only
meaningful for list structures allocated in a coupling facility of
CFLEVEL=1 or higher.
- ,VERSCOMP=NO_VERSCOMP
- ,VERSCOMP=verscomp
- Use this input parameter to specify a version number to be compared
to the version number of the existing entry. If this request creates
a new entry, the VERSCOMP specification is ignored.
The existing
entry is moved only if its version number meets the condition specified
by the VERSCOMPTYPE parameter. If the entry does not have the specified
version number, the request is terminated with no change to the structure.
To
Code: Specify the RS-type name or address (using a register from
2 to 12) of an 8-byte field that contains the version number.
- ,VERSCOMPARE=NO
- ,VERSCOMPARE=YES
- Use this input parameter to specify whether version number comparison
should be performed to determine whether the list entry should be
processed.
- NO
- No version number comparison should be performed to determine
whether the list entry should be processed.
- YES
- Version number comparison should be performed to determine whether
the list entry should be processed.
- ,VERSCOMPTYPE=EQUAL
- ,VERSCOMPTYPE=LESSOREQUAL
- Use this input parameter to specify how a list entry version number
comparison as specified by VERSCOMP is to be performed.
Note: The VERSCOMPTYPE parameter is valid only for list structures
allocated in a coupling facility with CFLEVEL=1 or higher.
- VERSCOMPTYPE=EQUAL
- The version number for the list entry must be equal to the value
specified for VERSCOMP.
- VERSCOMPTYPE=LESSOREQUAL
- The version number for the list entry must be less than or equal
to the value specified for VERSCOMP.
- ,VERSUPDATE=NONE
- ,VERSUPDATE=INC
- ,VERSUPDATE=DEC
- ,VERSUPDATE=SET
- Use this input parameter to specify how the entry version number
of the moved entry will be updated, or for those cases where a new
entry is created, initialized.
- NONE
- The existing entry's version number is not updated. The new entry's
version number is set to binary zeros.
- INC
- The existing entry's version number is increased by one. The new
entry's version number is set to binary zeros, except for the low-order
bit, which is set to one.
- DEC
- The existing entry's version number is decreased by one. The new
entry's version number is set to all binary ones.
- SET
- Both the existing and the new entry's version number is set to
the value specified by NEWVERS.
|