use of com.hazelcast.internal.cluster.impl.ClusterServiceImpl in project hazelcast by hazelcast.
the class ShutdownNodeOperation method run.
@Override
public void run() {
final ClusterServiceImpl clusterService = getService();
final ILogger logger = getLogger();
final ClusterState clusterState = clusterService.getClusterState();
if (clusterState == ClusterState.PASSIVE) {
final NodeEngineImpl nodeEngine = (NodeEngineImpl) getNodeEngine();
if (nodeEngine.isRunning()) {
logger.info("Shutting down node in cluster passive state. Requested by: " + getCallerAddress());
new Thread(new Runnable() {
@Override
public void run() {
final Node node = nodeEngine.getNode();
node.hazelcastInstance.getLifecycleService().shutdown();
}
}, nodeEngine.getHazelcastThreadGroup().getThreadNamePrefix(".clusterShutdown")).start();
} else {
logger.info("Node is already shutting down. NodeState: " + nodeEngine.getNode().getState());
}
} else {
logger.severe("Can not shut down node because cluster is in " + clusterState + " state. Requested by: " + getCallerAddress());
}
}
use of com.hazelcast.internal.cluster.impl.ClusterServiceImpl in project hazelcast by hazelcast.
the class SplitBrainMergeValidationOperation method afterRun.
@Override
public void afterRun() throws Exception {
if (removeCaller) {
ClusterServiceImpl service = getService();
Address caller = getCallerAddress();
service.removeAddress(caller, "Removing " + caller + ", since it thinks it's already split from this cluster " + "and looking to merge.");
}
}
use of com.hazelcast.internal.cluster.impl.ClusterServiceImpl in project hazelcast by hazelcast.
the class SplitBrainMergeValidationOperation method run.
@Override
public void run() {
ClusterServiceImpl service = getService();
NodeEngineImpl nodeEngine = (NodeEngineImpl) getNodeEngine();
Node node = nodeEngine.getNode();
if (!preCheck(node)) {
return;
}
if (!masterCheck(node)) {
return;
}
if (request != null) {
ILogger logger = getLogger();
try {
if (service.getClusterJoinManager().validateJoinMessage(request)) {
// surprise to users and may cause unexpected issues.
if (service.getClusterVersion().equals(request.getClusterVersion())) {
response = node.createSplitBrainJoinMessage();
} else {
logger.info("Join check from " + getCallerAddress() + " failed validation due to incompatible version," + "remote cluster version is " + request.getClusterVersion() + ", this cluster is " + service.getClusterVersion());
}
}
if (logger.isFineEnabled()) {
logger.fine("Returning " + response + " to " + getCallerAddress());
}
} catch (Exception e) {
if (logger.isFineEnabled()) {
logger.fine("Could not validate split-brain join message! -> " + e.getMessage());
}
}
}
}
use of com.hazelcast.internal.cluster.impl.ClusterServiceImpl in project hazelcast by hazelcast.
the class TriggerMemberListPublishOperation method run.
@Override
public void run() throws Exception {
final ClusterServiceImpl clusterService = getService();
clusterService.sendMemberListToMember(getCallerAddress());
}
use of com.hazelcast.internal.cluster.impl.ClusterServiceImpl in project hazelcast by hazelcast.
the class ChangeClusterStateOperation method run.
@Override
public void run() throws Exception {
ClusterServiceImpl service = getService();
ClusterStateManager clusterStateManager = service.getClusterStateManager();
getLogger().info("Changing cluster state state to " + stateChange + ", Initiator: " + initiator + " transient: " + isTransient);
clusterStateManager.commitClusterState(stateChange, initiator, txnId, isTransient);
}
Aggregations