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


Using List Services (IXLLIST)

z/OS MVS Programming: Sysplex Services Guide
SA23-1400-00

List services allow database products, subsystems, and authorized applications running in the same sysplex to use a coupling facility to share data organized in a list structure. The list structure consists of a set of lists and an optional lock table. Information is stored on each list as a series of list entries. Lists can be used as arrays, stacks, or queues. List entries can also be kept in sorted order by key value. The lock table can be used to serialize on resources in the list structure, such as a particular list or list entry.

You can use the list structure and its associated services to distribute work requests among members of the sysplex or to maintain shared status information. For instance, different lists in the list structure could represent different classes of data or states of work items. A user could move a list entry from one list to another to reflect a change in the class or the state of the work represented by the list entry.

Interfaces to list services provide the functions necessary to access and manage the list structure. Prior to OS/390® Release 9, IXLLIST was the sole interface to list services. Starting with OS/390 Release 9, three additional interfaces are available — IXLLSTC, IXLLSTE, and IXLLSTM. Functionally, these latter three interfaces provide the same services as IXLLIST, but also provide additional function beyond that provided by IXLLIST. It is IBM's intention to continue to support the IXLLIST service, but to add any new functions only to the IXLLSTC, IXLLSTE, and IXLLSTM services.

IXLLSTC, IXLLSTE, and IXLLSTM contain updated syntax and may contain keyword names changed from IXLLIST. However, each IXLLIST invocation can be replaced by an equivalent IXLLSTC, IXLLSTE, or IXLLSTM invocation. Table 1 lists the services available with IXLLIST and names the equivalent IXLLSTC, IXLLSTE, or IXLLSTM invocation. Using List Services (IXLLSTE, IXLLSTM, IXLLSTC) discusses the additional functions provided by the IXLLSTC, IXLLSTE, and IXLLSTM services at OS/390 Release 9 and higher. Note that many of the new functions require that the list structure be allocated in a coupling facility of CFLEVLE=9 or higher.

The IXLLIST macro, an interface to list services, allows you to:
  • Read, write, move, or delete an entry in the list structure
  • Combine operations, such as the following, using a single IXLLIST request:
    • Read an entry and delete it
    • Move an entry and update it
    • Move an entry and read it
  • Read or delete multiple entries with a single IXLLIST request
  • Perform a serialized update to a list entry by performing a lock operation (such as obtain, release, or test) and a list entry operation as part of the same IXLLIST request. The ability to perform a lock operation together with a list entry operation helps applications protect the integrity of data in the list structure.

The lock table consists of an array of exclusive locks. The purpose and scope of each entry in the lock table is entirely user-defined.

IXLLIST also provides high-performance list transition monitoring that allows you to detect when a list changes from the empty state to the nonempty state (in which it has one or more entries) without having to access the coupling facility to check the list. For instance, if you are using the list structure as a distribution mechanism for work requests, list transition monitoring allows users to detect easily the presence or absence of incoming work requests on their queues.

With a coupling facility of CFLEVEL=3 or higher, IXLLIST also provides two additional monitoring functions for keyed list structures — event queue monitoring and sublist monitoring.
  • An event queue exists in the list structure for each connected user. Its purpose is to be a repository for event monitor controls objects (EMCs) that represent events. An example of an event is the change in the state of a sublist from the empty state to the nonempty state. Event queue monitoring allows users to determine efficiently whether there are events queued on their event queue.
  • A sublist is a subset of a list in which each entry in the sublist has the same key. As with list monitoring, the sublist monitoring function allows users to detect when the sublist has changed from the empty state to the nonempty state. However, the system reports the state transition by queueing or withdrawing EMCs from the user's event queue. It is this queueing or withdrawing of EMCs to or from the user's event queue that causes the event queue transitions to nonempty or empty. Event queue monitoring monitors these transitions.

You can choose to be notified of list transitions and/or event queue transitions by having your list transition exit receive control or you can issue the IXLVECTR macro to test whether a list or event queue you are monitoring has changed from empty to nonempty.

The system processes each IXLLIST request atomically, that is, a request is processed from start to finish without interruption, ensuring that the list structure data can never be viewed or accessed by other connections while it is being modified. The serialized list structure allows you to serialize multiple IXLLIST requests so that they are performed atomically as seen by other users of the structure who are observing the same serialization protocols.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014