@Override public void run() { final Address endpoint = getCallerAddress(); if (endpoint == null) { return; } final ClusterServiceImpl clusterService = getService(); final ILogger logger = getLogger(); final MemberImpl member = clusterService.getMember(endpoint); if (member == null) { logger.warning( "MasterConfirmation has been received from " + endpoint + ", but it is not a member of this cluster!"); OperationService operationService = getNodeEngine().getOperationService(); operationService.send(new MemberRemoveOperation(clusterService.getThisAddress()), endpoint); } else { if (clusterService.isMaster()) { clusterService.getClusterHeartbeatManager().acceptMasterConfirmation(member, timestamp); } else { logger.warning(endpoint + " has sent MasterConfirmation, but this node is not master!"); } } }
private void callDisconnectionOperation(ClientEndpointImpl endpoint) { Collection<Member> memberList = nodeEngine.getClusterService().getMembers(); OperationService operationService = nodeEngine.getOperationService(); ClientDisconnectionOperation op = createClientDisconnectionOperation(endpoint.getUuid()); operationService.runOperationOnCallingThread(op); for (Member member : memberList) { if (!member.localMember()) { op = createClientDisconnectionOperation(endpoint.getUuid()); operationService.send(op, member.getAddress()); } } }
private void invokeCheckReplicaVersion(int partitionId, int replicaIndex, Address target) { InternalPartitionServiceImpl partitionService = getService(); long[] currentVersions = partitionService.getPartitionReplicaVersions(partitionId); long currentReplicaVersion = currentVersions[replicaIndex - 1]; if (currentReplicaVersion > 0) { CheckReplicaVersion op = createCheckReplicaVersion(partitionId, replicaIndex, currentReplicaVersion); NodeEngine nodeEngine = getNodeEngine(); OperationService operationService = nodeEngine.getOperationService(); if (sync) { operationService .createInvocationBuilder(InternalPartitionService.SERVICE_NAME, op, target) .setExecutionCallback(callback) .setTryCount(OPERATION_TRY_COUNT) .setTryPauseMillis(OPERATION_TRY_PAUSE_MILLIS) .invoke(); } else { operationService.send(op, target); } } else { notifyCallback(true); } }