.

meiSynqNetNodeShutdown

Declaration

 
long meiSynqNetNodeShutdown(MEISynqNet                  synqNet,
                            MEISynqNetShutdownNodeMask  nodeMask)
  Required Header: stdmei.h
Change History: Added in the 03.04.00

Description

meiSynqNetNodeShutdown is used to systematically shutdown a bank of nodes specified by the nodeMask that are to be repaired or replaced. It should be called prior to meiSynqNetNodeRestart(…), but if the node has already failed shutdown, it is not necessary. The nodes being shutdown should be consecutive to avoid stranding other nodes in the network. Recovery Mode should be enabled before shutting down the nodes in a ring topology.

 
synqNet a handle to a SynqNet object.
nodeMask

a bit mask signifying the nodes that will be shutdown. Each bit represents a node (0x1 = node 0, 0x2 = node 1, etc.)

   
 
Return Values
MPIMessageOK  
MPIMessageARG_INVALID  
MEISynqNetMessageSHUTDOWN_NODES_NONCONSECUTIVE  
MEISynqNetMessageSHUTDOWN_NODES_STRANDED  
MEISynqNetMessageSHUTDOWN_RECOVERY_DISABLED  

Sample Code

The following code will attempt to restart nodes 9, 10, and 11.

 

#define   NODE_9    (9)
#define NODE_10 (10)
#define NODE_11 (11) MEISynqNetShutdownNodeMask nodeMask;
nodeMask[0] = (1<<NODE_9) | (1<<NODE_10) | (1<<NODE_11) ; returnValue = meiSynqNetNodeShutdown (synqNet, nodeMask); msgCHECK(returnValue); /* swap out and/or repair nodes 9, 10, 11 */ /* Restart nodes 9, 10, 11 */ returnValue = meiSynqNetNodeRestart(synqNet);
msgCHECK(returnValue); /* check to see which nodes have been restarted */
returnValue = meiSynqNetStatus(synqNet,
&status);
msgCHECK(returnValue);

if((nodeMask[0] & (status.failedNodeMask[0] |
status.shutdownNodeMask[0]))) {
/* a node did not restart... time for error handling */
}

See Also

meiSynqNetShutdown | meiSynqNetNodeRestart | meiSynqNetStatus | MEISynqNetShutdownNodeMask

SynqNet HotReplace

 

       Legal Notice  |  Tech Email  |  Feedback
      
Copyright ©
2001-2021 Motion Engineering