When a member misses updating its status field within its prescribed
interval, XCF schedules the member's status user routine. The routine
determines whether the member is operating normally by checking the
following:
- For the PRIMARY member, the DBMGR's work queue
- For the BACKUP and NO-BACKUP members, the member's work queue.
The status user routine's actions depend on whether the member
is PRIMARY. The routine determines this by checking a table that
is maintained by the group user routine. If the member is PRIMARY
(MEMUSTAT=PRIMARY), the status user routine checks the DBMGR's work
queue, and does the following:
- If the work queue is empty, the routine sets a return code of
SEUPDRES to indicate the member is operating normally.
- If the work queue is not empty, the routine sets a return code
of SEUPDMIS, indicating that the member's status update is missing.
It then issues IXCMSGOX, sending the DBMGR's work queue to the BACKUP
member. To send the work queue, the status user routine places each
element into the message buffer so that all the elements are sent
as one block of data. XCF then:
- Schedules the message user routine of the BACKUP member. (This
message user routine reads in the work queue and posts TASKECB1.)
- Schedules the group user routines of the BACKUP and NO-BACKUP
members. (The backup member's group user routine is responsible for
posting TASKECB2 to alert the CLEANUP task to do the takeover.)
If the member is not PRIMARY, the status user routine checks the
member's work queue, and does the following:
- If the work queue is empty, the routine sets a return code of
SEUPDRES, indicating that the member is operating normally.
- If the work queue is not empty, the routine sets a return code
of SEUPDMIS, indicating that the member's status update is missing.