If a problem occurs on system 1, causing member 1 to miss updating
its status field, the following events occur:
- Member 1's status user routine gets control.
- The status user routine determines that the DBMGR's work queue
has work to be done, so the routine sets a return code of SEUPDMIS,
and issues IXCMSGOX to member 2, with the work queue in the message
buffer. 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.
IXCMSGOX MEMTOKEN=MEM1TKN,MSGBUF=WORKQUE,MSGLEN=LENMSG X
MSGCNTL=WORKXFER,TARGET=MEM2TKN,RETCODE=RETURN, X
RSNCODE=REASON,MF=(E,MSGOLSTD)
- XCF schedules the group user routines of both member 2 and member
3, and the message user routine of member 2. These events can occur
in any order.
- When member 3's group user routine receives control, it takes
no action because member 2 is the BACKUP.
- Member 2's CLEANUP task waits for TASKECB1 and TASKECB2 (to be
posted by the message user routine and group user routine respectively).
The CLEANUP task needs the information being passed to the message
user routine.
- Member 2's message user routine checks the message control information
and determines that it contains WORKXFER.
- Member 2's message user routine reads in the work queue from the
message buffer, places the address of the queue into MDATASTR, and
posts TASKECB1.
- Member 2's group user routine now gets control.
- Member 2's group user routine posts TASKECB2 to alert the CLEANUP
task to terminate member 1 and change member 2's user state value
from BACKUP to PRIMARY.
- Work requests coming in will now go to member 2 for processing,
because member 2 is now PRIMARY.