* Returns true if a wait was performed.
* Returns false if no waiting was done - return immediately.
*/
private boolean waitForShutdown(BrokerAdmin broker, String waitSessionID,
BrokerCmdProperties brokerCmdProps) {
GenericPortMapperClient pmc = null;
String hostName = broker.getBrokerHost(),
portString = broker.getBrokerPort(),
sessionID = null;
int port, shutdownDelaySecs;
long sleepTime;
/*
* Don't wait if don't have broker props
*/
if (brokerCmdProps == null) {
return (false);
}
sleepTime = brokerCmdProps.getShutdownWaitInterval();
shutdownDelaySecs = brokerCmdProps.getTime();
/*
* Don't wait if delayed shutdown (ie 'imqcmd shutdown bkr' used with -time <non-zero time>)
*/
if (shutdownDelaySecs > 0) {
return (false);
}
/*
* Don't wait if cannot identify the specific broker to wait for.
*/
if (waitSessionID == null) {
return (false);
}
try {
port = Integer.parseInt(portString);
} catch(Exception e) {
port = 7676;
}
boolean brokerDown = false;
int count = 0;
Globals.stdOutPrintln(ar.getString(ar.I_JMQCMD_WAITING_FOR_SHUTDOWN,
hostName + ":" + portString));
while (!brokerDown) {
try {
Thread.sleep(sleepTime);
} catch (Exception e) {
}
try {
pmc = new GenericPortMapperClient(hostName, port);
} catch(Exception e) {
brokerDown = true;
}
if (pmc != null) {
sessionID = pmc.getProperty("sessionid", null, "PORTMAPPER", "portmapper");
if (sessionID == null) {
brokerDown = true;
} else if (!sessionID.equals(waitSessionID)) {
brokerDown = true;