Types of Coupling Facility Structures

The characteristics and services associated with each structure support certain types of uses and offer certain unique functions:
Cache structure
Allows high-performance sharing of frequently-referenced data. Cache structure services, accessed through the IXLCACHE macro, allow you to:
  • Store and access data in the cache structure.
  • Automatically notify affected users when you change shared data in the cache system. The system keeps track of which users are using a particular piece of data and notifies those users when an update to the data makes their locally-cached version obsolete.
  • Determine whether your copy of shared data is valid by checking system-maintained validity indicators for your locally-cached copies of shared data.

Certain functions provided by cache structure services depend on the level of a coupling facility in which the cache structure is allocated.

List structure
Enables users to share information organized as entries on a set of lists or queues. Connections could use a list structure, for example, to distribute work or maintain shared status information.
List structure services, accessed through the IXLLIST, IXLLSTC, IXLLSTE, and IXLLSTM macros, allow you to:
  • Read, write, move, and delete list entries in a variety of ways, with and without serialization.
  • Monitor list transitions from empty to non-empty without accessing the coupling facility and checking the lists directly.
  • Define a lock table of exclusive locks as part of the list structure. You can use the lock table to serialize access to lists, list entries, or any other resources in the list structure.

Certain functions provided by list structure services depend on the level of a coupling facility in which the list structure is allocated.

Note: As of OS/390® Release 9, functional enhancements will be made to the IXLLSTC, IXLLSTE, and IXLLSTM macros only. The IXLLIST macro will be maintained, but will not be updated with any new support.
Lock structure
Allows users to create a customized set of locks and locking protocols for serializing user-defined resources, including list or cache structure data.

You can implement a serialization mechanism with any scope you require, thereby reducing contention for resources. For instance, rather than serializing at a data set level, you can use the lock structure to serialize access at the record or field level.

Lock structure services, accessed through the IXLLOCK macro, allow you to:
  • Associate user-specified data with each lock. IXLLOCK supports shared and exclusive lock states. However, you can use the user-specified data to create additional lock states to tailor the locks to your application's needs.
  • Implement customized locking protocols for your user-defined lock states.
  • Resolve lock contention according to your own protocol by providing exits to handle contention resolution. The system assists in contention resolution by supplying your exit with information about the cause of the contention.
  • Recover locks as part of an overall recovery mechanism to recover for the failure of another connector.

Certain functions provided by lock structure services depend on the level of a coupling facility in which the lock structure is allocated.