@Override public boolean isActive() { return isRunning(); }
@Override public boolean isActive() { return isRunning(); }
private void failIfNotRunning() { if (!nodeEngine.isRunning()) { throw new HazelcastInstanceNotActiveException(); } }
/** * Retrieves a DistributedObjectFuture or creates it if it is not available. * If {@code initialize} is false and DistributedObject implements {@link InitializingObject}, * {@link InitializingObject#initialize()} will be called before {@link DistributedObjectFuture#get()} returns. * * @param name The name of the DistributedObject proxy object to retrieve or create. * @param publishEvent true if a DistributedObjectEvent should be fired. * @param initialize true if the DistributedObject proxy object should be initialized. */ public DistributedObjectFuture getOrCreateProxyFuture(String name, boolean publishEvent, boolean initialize) { DistributedObjectFuture proxyFuture = proxies.get(name); if (proxyFuture == null) { if (!proxyService.nodeEngine.isRunning()) { throw new HazelcastInstanceNotActiveException(); } proxyFuture = createProxy(name, publishEvent, initialize); if (proxyFuture == null) { return getOrCreateProxyFuture(name, publishEvent, initialize); } } return proxyFuture; }
@Override public void destroy(ObjectNamespace namespace, int partitionId) { RingbufferService service; try { service = getRingbufferService(); } catch (Exception e) { if (nodeEngine.isRunning()) { logger.fine("Could not retrieve ringbuffer service to destroy event journal " + namespace, e); } return; } service.destroyContainer(partitionId, namespace); }
@Override public void destroy(ObjectNamespace namespace, int partitionId) { RingbufferService service; try { service = getRingbufferService(); } catch (Exception e) { if (nodeEngine.isRunning()) { logger.fine("Could not retrieve ringbuffer service to destroy event journal " + namespace, e); } return; } service.destroyContainer(partitionId, namespace); }
@Override public void destroy(ObjectNamespace namespace, int partitionId) { RingbufferService service; try { service = getRingbufferService(); } catch (Exception e) { if (nodeEngine.isRunning()) { logger.fine("Could not retrieve ringbuffer service to destroy event journal " + namespace, e); } return; } service.destroyContainer(partitionId, namespace); }
@Override public void destroy(ObjectNamespace namespace, int partitionId) { RingbufferService service; try { service = getRingbufferService(); } catch (Exception e) { if (nodeEngine.isRunning()) { logger.fine("Could not retrieve ringbuffer service to destroy event journal " + namespace, e); } return; } service.destroyContainer(partitionId, namespace); }
private boolean shouldCheckQuorumValues() { return isMaster() && nodeEngine.isRunning() && getInternalPartitionService().getPartitionStateManager().isInitialized(); }
private void handleAuthenticationFailure() { Exception exception; if (nodeEngine.isRunning()) { String message = "Client " + endpoint + " must authenticate before any operation."; logger.severe(message); exception = new RetryableHazelcastException(new StubAuthenticationException(message)); } else { exception = new HazelcastInstanceNotActiveException(); } sendClientMessage(exception); connection.close("Authentication failed. " + exception.getMessage(), null); }
private void handleAuthenticationFailure() { Exception exception; if (nodeEngine.isRunning()) { String message = "Client " + endpoint + " must authenticate before any operation."; logger.severe(message); exception = new RetryableHazelcastException(new StubAuthenticationException(message)); } else { exception = new HazelcastInstanceNotActiveException(); } sendClientMessage(exception); connection.close("Authentication failed. " + exception.getMessage(), null); }
/** * {@inheritDoc} * If the execution is rejected, the rejection count is increased and a failure is logged. * The event callback is not re-executed. * * @param callback the callback to execute on a random event thread */ @Override public void executeEventCallback(Runnable callback) { if (!nodeEngine.isRunning()) { return; } try { eventExecutor.execute(callback); } catch (RejectedExecutionException e) { rejectedCount.inc(); if (eventExecutor.isLive()) { logFailure("EventQueue overloaded! Failed to execute event callback: %s", callback); } } }
/** Completes the partition migration. The migration was successful if the {@code result} is {@link Boolean#TRUE}. */ private void processMigrationResult(Member partitionOwner, Boolean result) { if (Boolean.TRUE.equals(result)) { if (logger.isFineEnabled()) { logger.fine("Finished Migration: " + migrationInfo); } migrationOperationSucceeded(); } else { Level level = nodeEngine.isRunning() && migrationInfo.isValid() ? Level.WARNING : Level.FINE; if (logger.isLoggable(level)) { logger.log(level, "Migration failed: " + migrationInfo); } migrationOperationFailed(partitionOwner); } }
boolean shouldStartJobs() { ClusterState clusterState = nodeEngine.getClusterService().getClusterState(); if (!isMaster() || !nodeEngine.isRunning() || isClusterEnteringPassiveState || clusterState != ClusterState.ACTIVE && clusterState != ClusterState.NO_MIGRATION) { return false; } // if there are any members in a shutdown process, don't start jobs if (!membersShuttingDown.isEmpty()) { LoggingUtil.logFine(logger, "Not starting jobs because members are shutting down: %s", membersShuttingDown.keySet()); return false; } InternalPartitionServiceImpl partitionService = getInternalPartitionService(); return partitionService.getPartitionStateManager().isInitialized() && partitionService.areMigrationTasksAllowed() && !partitionService.hasOnGoingMigrationLocal(); }
/** Completes the partition migration. The migration was successful if the {@code result} is {@link Boolean#TRUE}. */ private void processMigrationResult(Boolean result) { if (Boolean.TRUE.equals(result)) { if (logger.isFineEnabled()) { logger.fine("Finished Migration: " + migrationInfo); } migrationOperationSucceeded(); } else { Level level = nodeEngine.isRunning() && migrationInfo.isValid() ? Level.WARNING : Level.FINE; if (logger.isLoggable(level)) { logger.log(level, "Migration failed: " + migrationInfo); } migrationOperationFailed(); } }
@Override public <T> T getService(String serviceName) { T service = serviceManager.getService(serviceName); if (service == null) { if (isRunning()) { throw new HazelcastException("Service with name '" + serviceName + "' not found!", new ServiceNotFoundException("Service with name '" + serviceName + "' not found!")); } else { throw new RetryableHazelcastException("HazelcastInstance[" + getThisAddress() + "] is not active!"); } } return service; }
@Override public <T> T getService(String serviceName) { T service = serviceManager.getService(serviceName); if (service == null) { if (isRunning()) { throw new HazelcastException("Service with name '" + serviceName + "' not found!", new ServiceNotFoundException("Service with name '" + serviceName + "' not found!")); } else { throw new RetryableHazelcastException("HazelcastInstance[" + getThisAddress() + "] is not active!"); } } return service; }
@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(); } }, createThreadName(nodeEngine.getHazelcastInstance().getName(), ".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()); } }
@Override public void memberRemoved(MembershipServiceEvent event) { MemberImpl member = event.getMember(); final String uuid = member.getUuid(); if (nodeEngine.isRunning()) { logger.info("Committing/rolling-back live transactions of " + member.getAddress() + ", UUID: " + uuid); nodeEngine.getExecutionService().execute(ExecutionService.SYSTEM_EXECUTOR, new Runnable() { @Override public void run() { finalizeTransactionsOf(uuid); } }); } else if (logger.isFinestEnabled()) { logger.finest("Will not commit/roll-back transactions of " + member.getAddress() + ", UUID: " + uuid + " because this member is not running"); } }
@Override public void memberRemoved(MembershipServiceEvent event) { MemberImpl member = event.getMember(); final String uuid = member.getUuid(); if (nodeEngine.isRunning()) { logger.info("Committing/rolling-back live transactions of " + member.getAddress() + ", UUID: " + uuid); nodeEngine.getExecutionService().execute(ExecutionService.SYSTEM_EXECUTOR, new Runnable() { @Override public void run() { finalizeTransactionsOf(uuid); } }); } else if (logger.isFinestEnabled()) { logger.finest("Will not commit/roll-back transactions of " + member.getAddress() + ", UUID: " + uuid + " because this member is not running"); } }