logger.debug("Creating Cache for HostTracker");
try {
this.clusterContainerService.createCache(ACTIVE_HOST_CACHE,
- EnumSet.of(IClusterServices.cacheMode.NON_TRANSACTIONAL));
+ EnumSet.of(IClusterServices.cacheMode.TRANSACTIONAL));
this.clusterContainerService.createCache(INACTIVE_HOST_CACHE,
- EnumSet.of(IClusterServices.cacheMode.NON_TRANSACTIONAL));
+ EnumSet.of(IClusterServices.cacheMode.TRANSACTIONAL));
} catch (CacheConfigException cce) {
logger.error("Cache couldn't be created for HostTracker - check cache mode");
} catch (CacheExistException cce) {
}
private void replaceHost(InetAddress networkAddr, HostNodeConnector removedHost, HostNodeConnector newHost) {
+ // Ignore ARP messages from internal nodes
+ NodeConnector newHostNc = newHost.getnodeConnector();
+ boolean newHostIsInternal = topologyManager.isInternal(newHostNc);
+ if (newHostIsInternal) {
+ return;
+ }
+
newHost.initArpSendCountDown();
+
if (hostsDB.replace(networkAddr, removedHost, newHost)) {
logger.debug("Host move occurred: Old Host IP:{}, New Host IP: {}", removedHost.getNetworkAddress()
.getHostAddress(), newHost.getNetworkAddress().getHostAddress());