ZCOM Tables and Data Structures

ZCOM Header Structure

HNDSIG - ZNODE signal number

Contains the type of signal to use when informing ZNODE of the arrival of new data in the ZNODE queue. This field is initialized to zero by TTGEN and is set up by the ZNODE program when it starts up.

HNIDLE - ZNODE idle timer

This contains the time in seconds since ZNODE last issued a Node-Status Update ioctl request to the ZCOM subsystem (LDM). The LDM timer increments this field once every second and marks all nodes as DOWN when it exceeds the inactivity period (currently 20 seconds). This field is initialized to zero when the ZCOM runtime subsystem is started up.

HNHIGH, HNLOW - ZNODE queue high and low water marks (flow control)

These two fields are used by the LDM to control the flow of data between the ZNODE daemon and the LDM. When the number of pending messages on the ZNODE queue reaches the high-water mark, programs initiating remote requests are suspended to avoid excessive buffer usage. Suspended programs will be allowed to resume execution when the number of queued messages drops to or below the low-water mark.

A special case exists when both the high and low water marks are set to the same value. In this situation, whenever the number of pending messages on the ZNODE queue is at or above this mark, all remote requests are rejected with an immediate error return value of ZENBUSY (-1, ZNODE is busy).

Note that this mechanism is only applicable to programs initiating remote requests and does not limit the messages or responses generated as a result of ZCOM subsystem operation (e.g. a terminal ZLU returns a message to its receiver in a remote system).

These two values are defined by the Flow-Control keyword in the TTGEN configuration file. If not specified, they will default to a high-water mark value of the maximum queue limit and a low-water mark value of zero (i.e. the mechanism is disabled).

HNWAIT - ZNODE queue high-water mark waiter

This field is maintained and used by the LDM to keep track of the number of programs currently suspended due to the high/low water mark flow control mechanism. It is initialized to zero by TTGEN.

Chapter 3

51