z/OS MVS Programming: Sysplex Services Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Parameter Descriptions

z/OS MVS Programming: Sysplex Services Reference
SA38-0658-00

The parameter descriptions for IXLLSTC are listed in alphabetical order. Default values are underlined:
,ACTION=START
,ACTION=STOP
Depending on the IXLLSTC request type, use this input parameter to specify:
  • For REQUEST=MONITOR_EVENTQ, whether event queue monitoring is to be started or stopped. Requires that the list structure be allocated in a coupling facility of CFLEVEL=3 or higher.
  • For REQUEST=MONITOR_LIST, whether list monitoring is to be started or stopped.
  • For REQUEST=MONITOR_KEYRANGE, whether key-range monitoring is to be started or stopped. Requires that the list structure be allocated in a coupling facility of CFLEVEL=9 or higher.
  • For REQUEST=MONITOR_SUBLIST, whether sublist monitoring is to be started or stopped. Requires that the list structure be allocated in a coupling facility of CFLEVEL=3 or higher.
START
  • For REQUEST=MONITOR_EVENTQ, start event queue monitoring for the connection specified by CONTOKEN for the specified event queue.
  • For REQUEST=MONITOR_LIST, start monitoring for the connection specified by CONTOKEN for the list specified by LISTNUM.
  • For REQUEST=MONITOR_KEYRANGE, start key-range monitoring for the connection specified by CONTOKEN for the list specified by LISTNUM.
  • For REQUEST=MONITOR_SUBLIST, start sublist monitoring for the connection specified by CONTOKEN for the designated sublist.
STOP
  • For REQUEST=MONITOR_EVENTQ, stop monitoring the event queue for the connection specified by CONTOKEN.
  • For REQUEST=MONITOR_LIST, stop list monitoring for the connection specified by CONTOKEN for the list specified by LISTNUM.
  • For REQUEST=MONITOR_KEYRANGE, stop key-range monitoring for the connection specified by CONTOKEN for the list specified by LISTNUM.
  • For REQUEST=MONITOR_SUBLIST, stop monitoring of the designated sublist for the connection specified by CONTOKEN.
,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.

,AUTHCOMP=authcomp
Use this input parameter to specify a value to be compared to the list authority value of the list designated by LISTNUM. If the specified list authority fails to equal the list authority for the designated list, the IXLLSTC operation is terminated with no resultant change to the structure. Indicative return and reason codes are provided to the invoker.

To Code: Specify the RS-type name or address (using a register from 2 to 12) of a 16 byte field that contains the list authority value.

,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 input or output parameter to hold either input data for the request or output data from the request. 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.
  • For READ_LCONTROLS requests, the buffer must be 4096 bytes on a 4096-byte boundary.

    Upon successful completion of a READ_LCONTROLS request, the BUFFER area contains, starting at offset zero, an array of list monitoring information for the specified list and an array of key-range monitoring information for the specified list. The relative position of an array element associates it with a connection identifier. The first array element is associated with a connection identifier of zero, and is reserved. The length and contents of each array element is defined by mapping macro IXLYLMI.

  • For DEQ_EVENTQ requests, the buffer must be 4096 bytes on a 4096-byte boundary.

    Upon successful completion of a DEQ_EVENTQ request, the BUFFER area contains, starting at offset zero, an array of event monitor controls that were dequeued from the event queue. The length and contents of each array element is defined by mapping macro IXLYEMC.

  • For MONITOR_SUBLISTS requests, the BUFSIZE keyword specifies the size of the buffer. 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.

    For a MONITOR_SUBLISTS request, the BUFFER is used to input an array of entries, each mapped by IXLYMSRI, and each of which contains the information necessary to register as a sublist monitor for one sublist.

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 input or output parameter to specify a list of buffers to contain input data for the request or to receive output data from the request.

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 buffer address description is an 8-byte element. The first four bytes of the element is reserved space. The second four bytes of the element contains the address of the buffer.

  • For READ_LCONTROLS requests, only one buffer may be passed. The buffer must be 4096 bytes in length and must start on a 4096-byte boundary.

    Upon successful completion of a READ_LCONTROLS request, the BUFLIST buffer contains, starting at offset zero, an array of list monitoring information for the specified list and an array of key-range monitoring information for the specified list. The relative position of an array element associates it with a connection identifier. The first array element is associated with a connection identifier of zero, and is reserved. The length and contents of each array element is defined by mapping macro IXLYLMI.

  • For DEQ_EVENTQ requests, only one buffer may be passed. The buffer must be 4096 bytes in length on a 4096-byte boundary.

    Upon successful completion of a DEQ_EVENTQ request, the BUFLIST buffer contains, starting at offset zero, an array of event monitor controls that were dequeued from the event queue. The length and contents of each array element is defined by mapping macro IXLYEMC.

  • For MONITOR_SUBLISTS requests, there may be 1 to 16 buffers in the list. Each buffer in the list must be the same size and must reside in the same address space or data space. Data is fetched from the buffers in the order specified.

    For MONITOR_SUBLISTS requests, the length of a buffer must be a multiple of 256 bytes between 256 and 4096. Each buffer must start on a 256-byte boundary and must not cross a 4096-byte boundary.

    For a MONITOR_SUBLISTS request, the BUFLIST is used to input an array of entries, each mapped by IXLYMSRI, and each of which contains the information necessary to register as a sublist monitor for one sublist.

    Note: The buffers do not have to be contiguous in storage. (List services treats BUFLIST buffers as a single, contiguous buffer, even if the buffers are not contiguous.)

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 1 to 16.

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 connect token uniquely identifies your 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.

,DRIVEEXIT=YES
,DRIVEEXIT=NO
Depending on the IXLLSTC request type, use this input parameter to specify:
  • For REQUEST=MONITOR_EVENTQ, whether XES should drive the connection's list transition exit when the state of the specified user's event queue changes from empty to not-empty.
  • For REQUEST=MONITOR_LIST, whether XES should drive the connection's list transition exit when the state of a list changes from empty to not-empty.
  • For REQUEST=MONITOR_KEYRANGE, whether XES should drive the connection's list transition exit when the state of the key-range changes from empty to not-empty.
YES
  • For REQUEST=MONITOR_EVENTQ, when the state of the user's event queue changes from empty to not-empty, XES will drive the connection's list transition exit.
  • For REQUEST=MONITOR_LIST, when the state of a list changes from empty to not-empty, XES will drive the connection's list transition exit.
  • For REQUEST=MONITOR_KEYRANGE, when the state of a key-range changes from empty to not-empty, XES will drive the connection's list transition exit.
NO
  • For REQUEST=MONITOR_EVENTQ, when the state of the user's event queue changes from empty to not-empty, XES will not drive the connection's list transition exit.
  • For REQUEST=MONITOR_LIST, when the state of a list changes from empty to not-empty, XES will not drive the connection's list transition exit.
  • For REQUEST=MONITOR_KEYRANGE, when the state of the key-range changes from empty to not-empty, XES will not drive the connection's list transition exit.
,ENDINDEX=endindex
For REQUEST=MONITOR_SUBLIST, use this input parameter to specify the 1-origin index number of the last IXLYMSRI entry which is requested to be processed. The valid range is from the STARTINDEX value to 1024, inclusive. The specified index must not imply a larger buffer size than the user has actually provided for the BUFFER or BUFLIST.

To Code: Specify the RS-type name or address (using a register from 2 to 12) of a halfword field that contains the 1-origin index number of the last entry to be processed. that contains the entry identifier.

,ENTRYKEY=entrykey
Depending on the IXLLSTC request type, use this input parameter to specify an unsigned 128-bit entry key to be used in conjunction with LISTNUM to designate:
  • For REQUEST=READ_EMCONTROLS, a sublist whose EMCs are to be read.
  • For REQUEST=MONITOR_SUBLIST, a sublist whose monitoring is to be started or stopped.

Specify ENTRYKEY only for structures that support keyed entries. The use of ENTRYKEY requires that the list structure be allocated in a coupling facility of CFLEVEL=3 or higher.

To Code: Specify the RS-type name or address (using a register from 2 to 12) of a 16-byte field that contains the unsigned 128-bit entry key.

,KEYRANGE=NO_CHANGE
,KEYRANGE=SET
For REQUEST=WRITE_LCONTROLS, use this input parameter to specify whether the key-range is to be updated.
NO_CHANGE
The key-range currently defined for the list will remain unchanged.
SET
The key-range defined for the list is to be set to the range specified by KEYRANGESTART and KEYRANGEEND.

SET is valid for keyed list structures allocated in a coupling facility of CFLEVEL=9 or higher. SET is ignored and the request processed as if NO_CHANGE were specified when the structure is allocated in a coupling facility of CFLEVEL=8 or lower, or if the structure does not support keyed list entries.

The default key-range start and end key values are initialized to binary zeros for all lists when the structure is allocated.

,KEYRANGEEND=keyrangeend
Use this input parameter to specify an unsigned 128-bit key-range end key value to be associated with the list. The end key value must be greater than or equal to the start key value.

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-range end key value.

,KEYRANGESTART=keyrangestart
Use this input parameter to specify an unsigned 128-bit key-range start key value to be associated with 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-range start key value.

,KEYRANGESTATE=NO_CHANGE
,KEYRANGESTATE=DEFINE
For REQUEST=WRITE_LCONTROLS, use this input parameter to specify whether the threshold counts that define the empty or not-empty state of a key-range are to be updated.
NO_CHANGE
The threshold counts will remain unchanged.
DEFINE
The threshold counts that define the empty or not-empty state of a key-range are to be set to the values indicated by KREMPTY and KRNOTEMPTY.

DEFINE is valid for keyed list structures allocated in a coupling facility of CFLEVEL=9 or higher. DEFINE is ignored and the request processed as if NO_CHANGE were specified when the structure is allocated in a coupling facility of CFLEVEL=8 or lower, or if the structure does not support keyed list entries.

A key-range is either in the empty state or the not-empty state. Use a REQUEST=MONITOR_KEYRANGE request to register interest in monitoring transitions between key-range states.

The default key-range empty or not-empty threshold counts are initialized to zero for all lists when the structure is allocated.

A request to define the key-range empty or not-empty threshold counts can timeout. The caller is expected to reissue the request until it completes without timing out.

,KEYTYPE=ENTRY
,KEYTYPE=SECONDARY
Depending on the IXLLSTC request type, use this input parameter to specify:
  • For REQUEST=READ_EQCONTROLS, whether to return information about the event queue for state transitions of sublists identified by list entry key or to return information about the event queue for state transitions of sublists identified by secondary key.
  • For REQUEST=DEQ_EVENTQ, whether to dequeue EMCs for state transitions of sublists identified by list entry key or to dequeue EMCs for state transitions of sublists identified by secondary key.
  • For REQUEST=MONITOR_EVENTQ, whether to monitor the event queue for state transitions of sublists identified by list entry key or to monitor the event queue for state transitions of sublists identified by secondary key.
ENTRY
  • For REQUEST=READ_EQCONTROLS, return information about the event queue for state transitions of sublists identified by list entry key.
  • For REQUEST=DEQ_EVENTQ, dequeue the EMCs for state transitions of sublists identified by list entry.
  • For REQUEST=MONITOR_EVENTQ, monitor the event queue for state transitions of sublists identified by list entry key.

KEYTYPE=ENTRY is valid only when the structure is allocated in a coupling facility of CFLEVEL=3 or higher.

SECONDARY
  • For REQUEST=READ_EQCONTROLS, return information about the event queue for state transitions of sublists identified by secondary key.
  • For REQUEST=DEQ_EVENTQ, dequeue the EMCs for state transitions of sublists identified by secondary key.
  • For REQUEST=MONITOR_EVENTQ, monitor the event queue for state transitions of sublists identified by secondary key.

KEYTYPE=SECONDARY is valid only when the structure is allocated in a coupling facility of CFLEVEL=9 or higher.

,KREMPTY=krempty
Use this input parameter to specify the key-range empty threshold count to be associated with the list.

A key-range is in the empty state if the number of list entries in the key-range is either less than or equal to the KREMPTY threshold or zero. Upon completion of the key-range state definition, the key-range is also considered to be in the empty state if the number of list entries in the key-range is less than or equal to the KRNOTEMPTY threshold. Once the key-range state becomes empty, it remains empty until the number of list entries in the key-range becomes greater than the KRNOTEMPTY threshold.

The KREMPTY keyword is valid only for a keyed list structure allocated in a coupling facility of CFLEVEL=9 or higher.

To Code: Specify the RS-type name or address (using a register from 2 to 12) of a fullword field that contains the key-range empty threshold count to be associated with the list.

,KRNOTEMPTY=krnotempty
Use this input parameter to specify the key-range not-empty threshold count to be associated with the list. The key-range not-empty count must be greater than or equal to the key-range empty count.

A key-range is in the not-empty state if the number of list entries in the key-range is greater than the KRNOTEMPTY threshold. Once the key-range state is not-empty, it remains not-empty until the number of list entries in the key-range either becomes less than or equal to the KREMPTY threshold or becomes zero.

The KRNOTEMPTY keyword is valid only for a keyed list structure allocated in a coupling facility of CFLEVEL=9 or higher.

To Code: Specify the RS-type name or address (using a register from 2 to 12) of a fullword field that contains the key-range not-empty threshold to be associated with the list.

,LISTDESC=NO_LISTDESC
,LISTDESC=listdesc
For REQUEST=WRITE_LCONTROLS, use this input parameter to specify the user-defined description to be associated with the list. If LISTDESC is not specified, the user description for the designated list will remain unchanged.
Note: The default list description for all lists when the structure is allocated is binary zeros.

To Code: Specify the RS-type name or address (using a register from 2 to 12) of a 32-byte field that contains the user-defined description.

,LISTEMPTY=listempty
Use this input parameter to specify the list empty threshold count to be associated with the list.

A list is in the empty state if the number of list entries on the list is either zero or less than or equal to the LISTEMPTY threshold.

The LISTEMPTY keyword is valid only for a list structure allocated in a coupling facility of CFLEVEL=9 or higher.

To Code: Specify the RS-type name or address (using a register from 2 to 12) of a fullword field that contains the list empty threshold count.

,LISTKEY=NO_LISTKEY
,LISTKEY=listkey
For REQUEST=WRITE_LCONTROLS, use this input parameter to specify the list key to be associated with the list. The list key value may be assigned to list entries when they are created or moved.

If LISTKEY is not specified, the list key for the designated list will remain unchanged. LISTKEY is ignored when the structure does not support keyed entries.

Note: The default list key for all lists when the structure is allocated is binary zeros.

The LISTKEY keyword is only meaningful 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 a 16-byte field that contains the list key to be associated with the list.

,LISTLIMIT=NO_LISTLIMIT
,LISTLIMIT=listlimit
For REQUEST=WRITE_LCONTROLS, use this input parameter to specify the list limit bounding the number of entries or elements that can reside on the list. If LISTLIMIT is not specified, the list limit for the designated list will remain unchanged.
Note: The default list limit for all lists when the structure is allocated is the total number of list entries or elements in the structure.

When an IXLALTER is processed for a list structure, if the list limit for a list is equal to the default value then it will be automatically adjusted to the new number of entries or elements. If a list limit is not equal to the default value then the alter process will not adjust it and it is the responsibility of the user, if desired, to set a new limit taking into account the current entry and element counts for the altered structure.

To Code: Specify the RS-type name or address (using a register from 2 to 12) of a fullword field that contains the list limit for the list.

,LISTNOTEMPTY=listnotempty
Use this input parameter to specify the list not-empty threshold count to be associated with the list. The list not-empty threshold count must be greater than or equal to the list empty threshold count.

A list is in the not-empty state if the number of list entries on the list is greater than the LISTNOTEMPTY threshold.

The LISTNOTEMPTY keyword is valid only for a list structure allocated in a coupling facility of CFLEVEL=9 or higher.

To Code: Specify the RS-type name or address (using a register from 2 to 12) of a fullword field that contains the list not-empty threshold count.

,LISTNUM=NO_LISTNUM
,LISTNUM=listnum
Depending on the IXLLSTC request type, use this input parameter to specify the number of the list to be processed.
  • For REQUEST=READ_LCONTROLS, the number of the list to be processed.
  • For REQUEST=WRITE_LCONTROLS, the number of the list to be processed.
  • For REQUEST=READ_EMCONTROLS, the partial designation of the sublist to be processed.

    LISTNUM is used in conjunction with either ENTRYKEY or SECONDARYKEY to designate a sublist for which the user's event monitor controls are to be read.

  • For REQUEST=MONITOR_LIST, the number of the list to be monitored.
  • For REQUEST=MONITOR_KEYRANGE, the number of the list whose key-range is to be monitored.
  • For REQUEST=MONITOR_SUBLIST, the partial designation of the sublist to be processed.

    LISTNUM may be used in conjunction with ENTRYKEY or SECONDARYKEY to designate a sublist for which the user wishes to start or stop sublist monitoring.

To Code: Specify the RS-type name or address (using a 2 register from 2 to 12) of a fullword field that contains the appropriate list or sublist value.

,LISTSTATE=NO_CHANGE
,LISTSTATE=DEFINE
For REQUEST=WRITE_LCONTROLS, use this input parameter to specify whether the threshold counts that define the empty or not-empty state of a list are to be updated.
NO_CHANGE
The threshold counts will remain unchanged.
DEFINE
The threshold counts are to be set to the values indicated by LISTEMPTY and LISTNOTEMPTY.

Upon completion of the definition of the list empty or not-empty thresholds, the list state may change. If the number of list entries is less than the new list empty thresholds, the list state is empty. If the number of list entries is greater than the new list not-empty threshold, the list state is not-empty. When the number of list entries is greater than or equal to the new list empty threshold and less than or equal to the new list not-empty threshold, the list state remains unchanged.

DEFINE is valid for coupling facilities of CFLEVEL=9 or higher. DEFINE is ignored and the request processed as if NO_CHANGE were specified when the structure is allocated in a coupling facility of CFLEVEL=8 or lower.

A list is either in the empty state or the not-empty state. Use a REQUEST=MONITOR_LIST request to register interest in monitoring transitions between list states.

The default list empty or not-empty threshold counts are initialized to zero for all lists when the structure is allocated. For structures allocated in a coupling facility of CFLEVEL=8 or lower, the list-empty and list-not-empty threshold counts are always zero.

,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 this 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 of the LOCKOPER values 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 user information that is to be passed to the Notify exit for the connection when the lock is held because of a LOCKOPER=SET operation and another connection issues one of the following requests:
  • An IXLLSTC LOCK request specifying LOCKOPER=SET with LOCKMODE=UNCOND
  • An IXLLSTE request specifying LOCKOPER=SET with LOCKMODE=UNCOND
  • An IXLLSTM request specifying LOCKOPER=NOTHELD

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-specified information.

,LOCKINDEX=lockindex
For REQUEST=LOCK, use this input parameter to specify the index of the lock within the lock table for the list structure that is to be operated on as specified by the LOCKOPER keyword. The index value must fall within the range 0 to the number of lock table entries minus one, inclusive.

To Code: Specify the RS-type name or address (using a register from 2 to 12) of a fullword field that contains the lock index.

,LOCKMODE=UNCOND
,LOCKMODE=COND
Use this input parameter to specify how contention on the lock is to be handled.
UNCOND
The lock operation will be performed unconditionally. If the specified lock is held, the IXLLSTC request will be held up until the operation can be processed.
  • If MODE=SYNCSUSPEND is specified, the caller is suspended until the lock becomes available.
  • If any MODE value other than SYNCSUSPEND is specified, the request is processed asynchronously and the caller is notified by the means indicated on the MODE keyword.
COND
The lock operation is performed conditionally. If the lock is held, the IXLLSTC request is terminated with no resultant change to the structure, and indicative return and reason codes are returned to the caller.
,LOCKOPER=SET
,LOCKOPER=RESET
,LOCKOPER=TEST
,LOCKOPER=READNEXT
For REQUEST=LOCK, use this input parameter to specify the type of operation to be performed on the lock specified by LOCKINDEX.
SET
  • When LOCKCOMP is not specified, requests ownership of the lock for the connection specified by CONTOKEN.
  • When LOCKCOMP is specified, requests that ownership of the lock be transferred from the connection specified by LOCKCOMP to the connection specified by CONTOKEN. Any outstanding requests awaiting contention resolution on this lock are ignored.
RESET
  • When LOCKCOMP is not specified, requests that ownership of the lock be released if held by the connection specified by CONTOKEN.
  • When LOCKCOMP is specified, requests that ownership of the lock be released if it is held by the connection specified by LOCKCOMP.

The RESET operation will always be done unconditionally when LOCKCOMP is not specified and conditionally when LOCKCOMP is specified.

TEST
  • When LOCKCOMP is not specified, requests that the lock be tested to see if it is owned by the connection specified by CONTOKEN.
  • When LOCKCOMP is specified, requests that the lock be tested to see if it is owned by the LOCKCOMP connection.

In both cases return code X'0' indicates that the lock was held and return code X'4' indicates that the lock is either not held or is held by a different connection.

The lock state remains unchanged as a result of this option.

READNEXT
  • When LOCKCOMP is not specified, requests that the lock index and connection ID of the owner of the next owned lock starting at the lock index specified by LOCKINDEX be returned.
  • When LOCKCOMP is specified, requests that the lock index of the next lock owned by the LOCKCOMP connection, starting at the lock index specified by LOCKINDEX, be returned.

The lock state remains unchanged as a result of this option.

A request specifying LOCKOPER=READNEXT may complete prematurely if coupling facility model-dependent timeout criteria is exceeded. In this event, indicative return and reason codes are provided, and the index of the next lock to be processed is returned in the answer area specified by ANSAREA. This lock index can be specified on a subsequent LOCKOPER=READNEXT request to resume processing with the appropriate lock entry.

,MAXLISTKEY=NO_MAXLISTKEY
,MAXLISTKEY=maxlistkey
For REQUEST=WRITE_LCONTROLS, use this input parameter to specify the maximum list key value to be associated with the list. This value specifies an upper bound for the list key value.

If MAXLISTKEY is not specified, the maximum list key for the designated list will remain unchanged. MAXLISTKEY is ignored when the structure does not support keyed entries.

Note: The default maximum list key for all lists when the structure is allocated is binary zeros.

The MAXLISTKEY keyword is only meaningful 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 a 16-byte field that contains the maximum list key value to be associated with the list.

,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 LOCK, READ_LCONTROLS, DEQ_EVENTQ, and MONITOR_SUBLISTS requests. It is also mutually exclusive with REQUEST=MONITOR_LIST and REQUEST=MONITOR_KEYRANGE when ACTION=START is specified. Any other request can specify MODE=ASYNCNORESPONSE.

,MOSVECTOR=mosvector
Use this input parameter to specify a 1-origin bit string in which each bit represents the monitored object state (empty or not-empty) of a particular sublist at the time that the REQUEST=MONITOR_SUBLISTS request was processed.

The MOSVECTOR bits correspond one-to-one with the IXLYMSRI entries that were passed as input in the BUFFER or BUFLIST. Only the bits corresponding to the IXLYMSRI entries that were actually processed on the current request (that is, between STARTINDEX and ENDINDEX for a request that completed successfully, or between STARTINDEX and the returned index of the first unprocessed entry minus one for premature completion cases) will contain valid monitored object state information for the sublists designated by the corresponding IXLYMSRI entries. Bits in the MOSVECTOR that lie outside the valid range are not meaningful.

When a bit in the valid range is on, the sublist designated by the corresponding IXLYMSRI entry was not-empty at the time the request was processed. When a bit in the valid range is off, the sublist designated by the corresponding IXLYMSRI entry was empty at the time the request was processed.

To Code: Specify the RS-type name or address (using a register from 2 to 12) of a 128-byte field that contains a 1-origin bit string in which each bit represents the monitored object state of a particular sublist.

,NEWAUTH=NO_NEWAUTH
,NEWAUTH=newauth
For REQUEST=WRITE_LCONTROLS, use this input parameter to specify a new value to be established as the list authority of the designated list. If NEWAUTH is not specified, the list authority for the designated list will remain unchanged.

To Code: Specify the RS-type name or address (using a register from 2 to 12) of a 16-byte field that contains the list authority value.

,NOTIFICATION=FIRST
,NOTIFICATION=EVERY
For REQUEST=MONITOR_SUBLIST, use this input parameter to specify the condition for which the coupling facility is to queue an EMC to the registered user's event queue.
FIRST
Queue the EMC to the registered user's event queue when the monitored sublist transitions from empty to not-empty.
EVERY
Queue the EMC to the registered user's event queue whenever a list entry is queued to the monitored sublist.

NOTIFICATION=EVERY is valid only when the structure is allocated in a coupling facility of CFLEVEL=9 or higher.

,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 IXLLSTC 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=LOCK
,REQUEST=READ_LCONTROLS
,REQUEST=WRITE_LCONTROLS
,REQUEST=READ_EQCONTROLS
,REQUEST=READ_EMCONTROLS
,REQUEST=DEQ_EVENTQ
,REQUEST=MONITOR_EVENTQ
,REQUEST=MONITOR_LIST
,REQUEST=MONITOR_KEYRANGE
,REQUEST=MONITOR_SUBLIST
,REQUEST=MONITOR_SUBLISTS
,REQUEST=READ_STRCOUNTS
Use this input parameter to specify the type of operation to be performed on the structure.
LOCK
The lock entry designated by LOCKINDEX is to be operated on as specified by the LOCKOPER keyword. This request type may only be specified for structures that contain a lock table.

REQUEST=LOCK is mutually exclusive with MODE=ASYNCNORESPONSE.

READ_LCONTROLS
Read the control information for the list specified by the LISTNUM keyword. The information returned in the answer area specified by ANSAREA consists of the list controls as mapped by the IXLYLAA macro. In addition, the list monitoring information and key-range monitoring information for the list, as mapped by the IXLYLMI macro, is returned in the storage specified by BUFFER or the buffers specified by BUFLIST.

REQUEST=READ_LCONTROLS is mutually exclusive with MODE=ASYNCNORESPONSE.

WRITE_LCONTROLS
Update one or more of the list controls for the list specified by LISTNUM. The list controls that can be updated include:
  • List authority (NEWAUTH)
  • List limit bounding the number of entries or elements that may reside on the list (LISTLIMIT)
  • List descriptor (LISTDESC)
  • List key (LISTKEY)
  • Maximum list key (MAXLISTKEY)
  • List cursor and list cursor direction (SETCURSOR)
  • Key-range start and end values (KEYRANGESTART and KEYRANGEEND)
  • Key-range empty and key-range not-empty threshold counts (KREMPTY and KRNOTEMPTY)
  • List empty and list not-empty threshold counts (LISTEMPTY and LISTNOTEMPTY
READ_EQCONTROLS
Read event queue control information for the requesting user's event queue. Event queue processing is used in conjunction with sublist monitoring and requires that the list structure be allocated in a coupling facility of CFLEVEL=3 or higher. For list structures allocated in a coupling facility of CFLEVEL=9 or higher, a sublist can be identified either by entry key or by secondary key. Event monitor controls (EMCs) for sublists identified by entry key are queued to a different event queue than EMCs for sublists identified by secondary key. The different event queues can be monitored independently. The KEYTYPE keyword designates which event queue is the subject of the READ_EQCONTROLS request.
Information returned in the answer area specified by ANSAREA consists of the following:
  • The total number of event monitor controls (EMCs) currently on the event queue
  • The number of times that the event queue has transitioned from the empty to the non-empty state
  • The vector index number that is being used to monitor the event queue
  • An indication of whether or not the user's list transition exit is to be driven when the event queue transitions from the empty to the not-empty state
  • An indication of whether the EMCs are for sublists identified by entry key or for sublists identified by secondary key.
READ_EMCONTROLS
Read the EMC control information for the requesting user's registered interest in monitoring a particular sublist designated by the LISTNUM keyword and either ENTRYKEY or SECONDARYKEY.
  • For entry keys, this request type is valid only when the structure is allocated in a coupling facility of CFLEVEL=3 or higher. The structure must support keyed list entries (REFOPTION=KEY must be specified on the IXLCONN request when the structure is allocated).
  • For secondary keys, this request type is valid only when the structure is allocated in a coupling facility of CFLEVEL=9 or higher. The structure must support secondary keys (KEYTYPE=SECONDARY must be specified on the IXLCONN request when the structure is allocated).
Information returned in the answer area specified by ANSAREA includes the following:
  • The user notification controls (UNC)
  • The list number and entry key or secondary key of the sublist with which the event monitor control information is associated
  • An indication of whether or not the EMC is currently queued to the user's event queue
  • An indication of whether the EMCs are for sublists identified by entry key or for sublists identified by secondary key
  • An indication of whether the EMC is queued to the event queue for only the first list entry added to the sublist or for every list entry added to the sublist.
DEQ_EVENTQ
Dequeue the event monitor controls from an event queue. The sublist associated with the event queue can be identified either by list entry key or by secondary key. Identification by list entry key requires that the list structure be allocated in a coupling facility of CFLEVEL=3 or higher; identification by secondary key requires that the list structure be allocated in a coupling facility of CFLEVEL=9 or higher. If the structure is allocated with secondary keys, there are two event queues that can be monitored. The KEYTYPE keyword designates which event queue is the subject of the DEQ_EVENTQ request.

The contents of the dequeued EMCs are returned in the specified BUFFER or BUFLIST area. Each individual EMC is mapped by the IXLYEMC macro. Note that neither the EMCs nor the sublist monitoring interest which they represent is deleted by this request. Sublist monitoring remains active until it is stopped by a subsequent MONITOR_SUBLIST ACTION=STOP request.

This request type is valid only when the structure is allocated in a coupling facility of CFLEVEL=3 or higher (for entry keys) or CFLEVEL=9 or higher (for secondary keys).

The DEQ_EVENTQ request may complete prematurely, that is, without having dequeued all of the EMCs from an event queue. In such a case, the user is expected to process the EMCs that were returned on the current request and then re-issue the DEQ_EVENTQ request to continue the process of dequeueing the remaining EMCs from the event queue.

Information returned in the answer area specified by ANSAREA consists of the number of EMCs that were returned and the number of EMCs that still remain on the user's event queue.

REQUEST=DEQ_EVENTQ is mutually exclusive with MODE=ASYNCNORESPONSE.

MONITOR_EVENTQ
Start or stop list notification vector monitoring of an event queue for a requesting user.

This request type is valid only when the structure is allocated in a coupling facility of CFLEVEL=3 or higher. The user must have a local vector associated with the connection to the structure, and the structure must support keyed list entries. If the structure is allocated in a coupling facility of CFLEVEL=9 or higher and is allocated with secondary keys, there are two event queues that can be monitored. The KEYTYPE keyword designates which event queue is the subject of the MONITOR_EVENTQ request.

While event queue monitoring is in effect for an event queue, the IXLVECTR service can be used to determine whether the event queue contains any event monitor controls (EMCs). These EMCs represent not-empty sublists in which the user has registered sublist monitoring interest. (See IXLVECTR — Check or Modify Local Cache Vector or List Notification Vector.) Use event queue monitoring in conjunction with sublist monitoring (MONITOR_SUBLIST or MONITOR_SUBLISTS) to process state transitions for monitored sublists. Use the DEQ_EVENTQ request to dequeue queued EMCs from an event queue and to read the contents of the EMCs.

If a list notification vector index is in use for monitoring, a request to stop monitoring should be performed before using the same vector index to start another monitor. If event queue monitoring is in effect, a request to start monitoring the same event queue with a different VECTORINDEX or DRIVEEXIT specification will cause the old specifications to be immediately replaced by the new specifications. It is not necessary to stop event queue monitoring before requesting to start monitoring the same event queue using the new specifications. However, because the replaced vector index is no longer being used to monitor an event queue, it may be reassigned for other uses (for example, to monitor a list).

When event queue monitoring is stopped, the state of the vector index that was previously being used to monitor the event queue is not defined. However, because the vector index is no longer being used to monitor the event queue, it may be reassigned for other uses (for example, to monitor a list).

MONITOR_LIST
Start or stop monitoring the list specified by LISTNUM.

While list monitoring is in effect for a list, the IXLVECTR service can be used to determine whether the list is considered empty or not-empty according to the thresholds established with a WRITE_LCONTROLS request.

The IXLVECTR service can also be used to alter the size of the list notification vector, and thus changed the number of lists, key-ranges, or event queues that can be monitored concurrently. (See IXLVECTR — Check or Modify Local Cache Vector or List Notification Vector.)

If a list notification vector index is in use for monitoring, a request to stop monitoring should be performed before using the same vector index to start another monitor. If a vector index is in use for monitoring a list, a request to start list monitoring for the same list with a different vector index will cause the vector index in use for the list to be replaced by the new vector index. In this case, it is not necessary to stop monitoring using the old index before requesting to start monitoring using the new index.

REQUEST=MONITOR_LIST with ACTION=START is mutually exclusive with MODE=ASYNCNORESPONSE.

REQUEST=WRITE_LCONTROLS can be used to set the empty or not-empty threshold counts that are used to define the empty or not-empty state of a list for list monitoring.

MONITOR_KEYRANGE
Start or stop key-range monitoring of the list specified by LISTNUM. This request type is valid only for keyed list structures allocated in a coupling facility of CFLEVEL=9 or higher.

While key-range monitoring is in effect for a list, the IXLVECTR service can be used to determine whether the key-range is considered empty or not-empty according to the thresholds established with a WRITE_LCONTROLS request that specifies KEYRANGESTATE=DEFINE.

The IXLVECTR service can also be used to alter the size of the list notification vector, and thus change the number of lists, key-ranges, or event queues that can be monitored concurrently. (See IXLVECTR — Check or Modify Local Cache Vector or List Notification Vector.)

If a list notification vector index is in use for monitoring, a request to stop monitoring should be performed before using the same vector index to start another monitor. If a vector index is in use for monitoring a key-range, a request to start key-range monitoring of the same list with a different vector index will cause the vector index in use for the key-range to be replaced by the new vector index. In this case, it is not necessary to stop monitoring using the old index before equesting to start monitoring using the new index.

Only one key-range can be monitored per list. REQUEST=WRITE_LCONTROLS can be used to set the starting and ending key-range values, and the empty or not-empty threshold counts that define the empty or not-empty state of a key-range for key-range monitoring.

REQUEST=MONITOR_KEYRANGE with ACTION=START is mutually exclusive with MODE=ASYNCNORESPONSE.

A request to start monitoring a key-range for a list can timeout if definition of the key-range is not complete (see REQUEST=WRITE_LCONTROLS with KEYRANGESTATE=DEFINE). The caller is expected to reissue the request until it completes without timing out.

MONITOR_SUBLIST
Start or stop monitoring a sublist designated by a list number and either an entry key or secondary key within the list structure.

A request to monitor a keyed sublist is valid only when the structure is allocated in a coupling facility of CFLEVEL=3 or higher. The user must have a local vector associated with the connection to the structure, and the structure must support keyed list entries (REFOPTION=KEY must be specified on IXLCONN when the structure is allocated).

A request to monitor a secondary keyed sublist is valid only when the structure is allocated in a coupling facility of CFLEVEL=9 or higher. The user must have a local vector associated with the connection to the structure, and the structure must support secondary keys (KEYTYPE=SECONDARY must be specified on IXLCONN when the structure is allocated).

MONITOR_SUBLISTS
Start monitoring a set of sublists designated by list number and either entry key or secondary key in a list structure. MONITOR_SUBLISTS cannot be used to stop sublist monitoring.

A request to monitor a sublist identified by a list entry key is valid only when the structure is allocated in a coupling facility of CFLEVEL=3 or higher. A request to monitor a sublist identified by a secondary key is valid only when the structure is allocated in a coupling facility of CFLEVEL=9 or higher and the structure supports secondary keys. In both cases, the user must have a local vector associated with the connection to the structure, and the structure must support keyed list entries.

REQUEST=MONITOR_SUBLISTS is mutually exclusive with MODE=ASYNCNORESPONSE.

READ_STRCOUNTS
Request the information on the maximum and in-use counts be returned.
Information returned in the answer area specified by ANSAREA mapped by LAARSTC in the IXLYLAA consists of the following:
  • The current in-use number of elements and maximum number of elements defined for the structure if data elements are defined for the structure.
  • The current in-use number of entries and the maximum number of entries defined for the structure.
  • The current in-use number of event monitor controls and the total number of event monitor controls defined for the structure if event monitor controls are supported by the structure.
  • The number of lock entries defined for the structure if the structure is defined as a serialized list structure.
,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=secondarykey
Depending on the IXLLSTC request type, use this input parameter to specify the unsigned 256-bit secondary key to be used in conjunction with LISTNUM to designate:
  • For REQUEST=READ_EMCONTROLS, a sublist whose EMCs are to be read.
  • For REQUEST=MONITOR_SUBLIST, a sublist whose monitoring is to be started or stopped.

SECONDARYKEY is valid only for structures that are allocated in a coupling facility of CFLEVEL=9 or higher. The structure must support secondary keys.

To Code: Specify the RS-type name or address (using a register from 2 to 12) of a 32-byte field that contains the unsigned 256-bit secondary key.

,SETCURSOR=NO_SETCURSOR
,SETCURSOR=HEAD
,SETCURSOR=TAIL
For REQUEST=WRITE_LCONTROLS, use this input parameter to specify that the list cursor and the list cursor direction are to be set.

The list cursor direction is only used when an IXLLSTE invocation specifies UPDATECURSOR=YES with CURSORUPDATETYPE=NEXTCOND.

Note: The default list cursor for all lists when the structure is allocated is binary zeros. The default list cursor direction for all lists when the structure is allocated is a head-to-tail direction.

The SETCURSOR keyword is only meaningful for list structures allocated in a coupling facility of CFLEVEL=1 or higher.

NO_SETCURSOR
The list cursor and the list cursor direction will remain unchanged.
HEAD
The list cursor is to be set to the entry identifier for the first entry on the list and the list cursor direction is to be set in a head-to-tail direction. If the list is empty, the list cursor will be reset to binary zeros.
TAIL
The list cursor is to be set to the entry identifier for the last entry on the list and the list cursor direction is to be set in a tail-to-head direction. If the list is empty, the list cursor will be reset to binary zeros.
,STARTINDEX=startindex
For REQUEST=MONITOR_SUBLISTS, use this input parameter to specify the 1-origin index number of the first IXLYMSRI entry that is requested to be processed. The valid range is from 1 to the ENDINDEX value, inclusive.

To Code: Specify the RS-type name or address (using a register from 2 to 12) of a halfword field that contains the 1-origin index number of the first entry to be processed.

,UNC=unc
For REQUEST=MONITOR_SUBLIST, use this input parameter to specify the user notication controls (UNC) that represent the user's monitoring interest in the designated sublist. The user notification control information resides in the event monitor controls (EMC), which is queued to an event queue when the monitored sublist becomes not-empty, and is returned along with other information from the EMC on a REQUEST=DEQ_EVENTQ.

To Code: Specify the RS-type name or address (using a register from 2 to 12) of a 16-byte field that contains the user notification controls (UNC).

,VECTORINDEX=vectorindex
Depending on the IXLLSTC request, use this input parameter to specify a vector index.
  • For REQUEST=MONITOR_EVENTQ, specify the vector index to be associated with the monitored event queue. If the request completes successfully, this local vector index in the vector for the connection specified by CONTOKEN will subsequently reflect the empty or not-empty state of the user's event queue.
  • For REQUEST=MONITOR_LIST, specify the vector index that is to reflect the empty or not-empty state of the monitored list. If the request completes successfully, this local notification vector index in the vector for the connection specified by CONTOKEN will subsequently reflect the empty or not-empty state of the monitored list.
  • For REQUEST=MONITOR_KEYRANGE, specify the vector index that is to reflect the empty or not-empty state of the monitored key-range. If the request completes successfully, this local notification vector index in the vector for the connection specified by CONTOKEN will subsequently reflect the empty or not-empty state of the monitored key-range.

To Code: Specify the RS-type name or address (using a register from 2 to 12) of a fullword field that contains the list notification vector index.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014