gtpm6m0w | Main Supervisor Reference |
Interprocessor communications (IPC) allows you to move data between loosely coupled processors using the Multi-Processor Interconnect Facility (MPIF) licensed feature and channel-to-channel (CTC) communication links. The MPIF path active exit establishes a MPIF connection across each CTC communication link between processors. The system whose name is first in the alphabetic generally initiates connection processing.
IPC maintains an internal control block structure. The IPC global table (IGT) contains control information and one entry for each processor in a loosely coupled complex. Each entry contains data collection counters and a chain of IPC connection definition blocks (ICDBs) mapped by data macro DCTICD. An ICDB is established for each IPC connection between processors. For example, if 3 CTC links exist between processors A and B, the IGT entry for B in processor A contains a chain of 3 ICDBs. The ICDB contains the connection token, the identify token (IDTOK) for the resident system, and a pointer to the relevant IGT entry. CCCTIN allocates the IPC control block area based on the maximum number of links between loosely coupled processors in keypoint record E (CTKE) and places the address of the IGT in the CINFC table.
IPC restart:
The SIPCC macro invokes the staging and transmit function to pass data to other processors within a loosely coupled complex. This function then:
The SIPCC macro passes IPC items to destination users in sequence. The MPIF data received exit queues items until they can be presented in sequence. The sending system halts transmission when its send sequence number reaches the largest positive value (X'FFFFFFFF'). When the receiving system has received all pending messages, a message (with sequence number zero) is returned. Transmission then begins with send sequence number 1.
MPIF activates the receive function when data is received from IPC. Receive is also activated following a successful send if Device End notification was requested in the send parameter list.
If the data received exit has been activated for Device End notification, the receive function places the IPC item on the ready list to be passed to the IPC user by the IPC post interrupt routine. Otherwise, receive checks the sequence number and if the received item is next in sequence places the item on the ready list for IPC post interrupt processing. If the received item is not next in sequence, receive queues it for resequencing. Resequencing occurs when an in-sequence item is received. If the receive sequence number is about to roll over to zero, receive sends a restart message to the remote system. This message (with an IPC sequence number of zero) informs the remote system to send IPC items again. Receive then releases the block containing the data received exit parameter list.
This function returns IPC items to the sender when data is not transmitted within the required time period. The timing function scans the IGT for remote systems that don't have connections to the local system. When such a system is found, timing decrements the time-out count for the items on the output queue. When the count reaches zero, timing sends a message to the operator. If the SIPCC return option was specified, each queued item is returned to the sender. Otherwise, the core blocks are released.
The ZSIPC command allows the operator to display and alter the IPC status, time intervals, number of IPC paths, class of IPC paths, and transmit or receive counts to any or all processors.
ZSIPC DISPLAY displays status and processor counts. The STATUS display shows the restart connection time-out value, the amount of time IPC will wait, the maximum number of IPC paths, and the IPC path class. The COUNTS parameter displays a processor's total activity and a breakdown of receiving processor activity.
ZSIPC ALTER alters the IPC timing values, the maximum number of paths between processors, the path class IPC uses, and resets the IPC counters. You can use the INTERVAL parameter to modify IPC time values. Use the TIME subparameter to set the length of the IPC interval and the TOUT subparameter to set the number of IPC intervals to wait before timing out.
Increasing the number of connections defined for IPC to use between processors improves IPC performance. Also, you can dynamically tune IPC for optimum system performance by altering the IPC timing values.