throws Exception
{
super(properties, systemRegistry, txnProxy, logger);
logger.log(Level.CONFIG, "Creating WatchdogServerImpl properties:{0}",
properties);
PropertiesWrapper wrappedProps = new PropertiesWrapper(properties);
isFullStack = fullStack;
if (logger.isLoggable(Level.CONFIG)) {
logger.log(Level.CONFIG, "WatchdogServerImpl[" + host +
"]: detected " +
(isFullStack ? "full stack" : "server stack"));
}
/*
* Check service version.
*/
transactionScheduler.runTask(
new AbstractKernelRunnable("CheckServiceVersion") {
public void run() {
checkServiceVersion(
VERSION_KEY, MAJOR_VERSION, MINOR_VERSION);
} }, taskOwner);
int requestedPort = wrappedProps.getIntProperty(
PORT_PROPERTY, DEFAULT_PORT, 0, 65535);
boolean noRenewIntervalProperty =
wrappedProps.getProperty(RENEW_INTERVAL_PROPERTY) == null;
renewInterval =
isFullStack && noRenewIntervalProperty ?
RENEW_INTERVAL_UPPER_BOUND :
wrappedProps.getLongProperty(
RENEW_INTERVAL_PROPERTY, DEFAULT_RENEW_INTERVAL,
RENEW_INTERVAL_LOWER_BOUND, RENEW_INTERVAL_UPPER_BOUND);
if (logger.isLoggable(Level.CONFIG)) {
logger.log(Level.CONFIG, "WatchdogServerImpl[" + host +
"]: renewInterval:" + renewInterval);
}
idBlockSize = wrappedProps.getIntProperty(
ID_BLOCK_SIZE_PROPERTY, DEFAULT_ID_BLOCK_SIZE,
IdGenerator.MIN_BLOCK_SIZE, Integer.MAX_VALUE);
idGenerator =
new IdGenerator(ID_GENERATOR_NAME,
idBlockSize,
txnProxy,
transactionScheduler);
FailedNodesRunnable failedNodesRunnable = new FailedNodesRunnable();
transactionScheduler.runTask(failedNodesRunnable, taskOwner);
Collection<NodeImpl> failedNodes = failedNodesRunnable.nodes;
statusChangedNodes.addAll(failedNodes);
for (NodeImpl failedNode : failedNodes) {
recoveringNodes.put(failedNode.getId(), failedNode);
}
// Create the node manager MBean and register it. This must be
// done before regiseterNode is called.
ProfileCollector collector =
systemRegistry.getComponent(ProfileCollector.class);
nodeMgr = new NodeManager(this);
try {
collector.registerMBean(nodeMgr, NodeManager.MXBEAN_NAME);
} catch (JMException e) {
logger.logThrow(Level.CONFIG, e, "Could not register MBean");
}
// register our local id
int jmxPort = wrappedProps.getIntProperty(
StandardProperties.SYSTEM_JMX_REMOTE_PORT, -1);
long[] values = registerNode(host, client, jmxPort);
localNodeId = values[0];
exporter = new Exporter<WatchdogServer>(WatchdogServer.class);