#################################################################### # restart the nodeagent, sync the nodeagent, restart all running servers. # NB: the node agent must be running in order to be restarted. There is no facility to start the noteagent remotely. # NB: the restart is asynchronous. There is no wait for server restarts. Tail the logs to confirm restart. #################################################################### proc restartAll { } { global AdminConfig global AdminControl # display procedure arguments. set procName [ lindex [ info level 0 ] 0 ] putsLog "## proc - $procName" foreach i [ info args $procName ] { upvar 0 $i ilocal set propertiesArray($i) $ilocal } putsLog "procedure arguments are................." foreach { a b } [ array get propertiesArray ] { putsLog [ format "%-35s %s" "$a" "$b" ] } # there may be more than one node agent. set nodeAgentList [ $AdminControl queryNames type=NodeAgent,* ] if { $nodeAgentList == {} } { putsLog "ERROR: no Node Agents running in the cell" return -code error } # restart the node # sync the node # restart the servers putsLog "Restarting node agents........................" foreach i $nodeAgentList { regexp {(.*node\=)(.*)(,diagnosticProvider)} $i a b c d putsLog [ format "%-5s %s" " " "restarting node agent for $c" ] if { [ catch { $AdminControl invoke $i restart "true true" } r ] == 0 } { putsLog [ format "%-5s %s" " " "NodeAgent $i started successfully" ] putsLog $r } else { putsLog [ format "%-5s %s" " " "ERROR: NodeAgent $i failed to start" ] putsLog $r return -code error $r } } }