public static HazelcastInstance findDefaultInstance() { HazelcastInstance hzInstance = null; Set<HazelcastInstance> instances = Hazelcast.getAllHazelcastInstances(); for (HazelcastInstance instance: instances) { if (hzInstance == null) { hzInstance = instance; } else { if (hz_instance.equals(hzInstance.getName())) { hzInstance = instance; } } } return hzInstance; }
private boolean isEventAcceptable(final InetSocketAddress socketAddress) { final Set<HazelcastInstance> hazelcastInstanceSet = Hazelcast.getAllHazelcastInstances(); final Set<SocketAddress> localSocketAddressesSet = getLocalSocketAddresses(hazelcastInstanceSet); return localSocketAddressesSet.isEmpty() || (!localSocketAddressesSet.isEmpty() && (localSocketAddressesSet.contains(socketAddress) || isEventComingFromNonRegisteredHazelcastInstance(hazelcastInstanceSet.iterator().next(), localSocketAddressesSet, socketAddress))); }
@Override public Boolean call() throws Exception { logger.trace("call.enter; reloading module: {}", module); // refresh module in every found schemas.. boolean result = false; for (HazelcastInstance hz: Hazelcast.getAllHazelcastInstances()) { SchemaRepositoryImpl repo = (SchemaRepositoryImpl) hz.getUserContext().get(ctx_repo); logger.debug("call; got repo: {} on instance: {}", repo, hz); if (repo != null) { repo.updateModule(module); result = true; } } logger.trace("call.exit; returning: {}", result); return result; }
@Override public CompositeData call() throws Exception { MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); if (type == InfoType.memory) { ObjectName memName = new ObjectName("java.lang:type=Memory"); return (CompositeData) mbs.getAttribute(memName, "HeapMemoryUsage"); } else if (type == InfoType.timing) { ObjectName osName = new ObjectName("java.lang:type=Runtime"); Map<String, Object> times = new HashMap<String, Object>(2); long time = (Long) mbs.getAttribute(osName, "StartTime"); times.put("StartTime", new Date(time).toString()); time = (Long) mbs.getAttribute(osName, "Uptime"); times.put("Uptime", DateUtils.getDuration(time)); return JMXUtils.mapToComposite("Timings", "Timing info", times); } else { Set<HazelcastInstance> instances = Hazelcast.getAllHazelcastInstances(); Map<String, Object> clients = new HashMap<String, Object>(); for (HazelcastInstance hzInstance: instances) { for (Client client: hzInstance.getClientService().getConnectedClients()) { clients.put(client.getUuid(), client.getSocketAddress().toString()); } } return JMXUtils.mapToComposite("Clients", "Clients info", clients); } }
/** * Returns the Vert.x Hazelcast instance. * * @return The Vert.x Hazelcast instance. */ public static HazelcastInstance getHazelcastInstance() { for (HazelcastInstance instance : Hazelcast.getAllHazelcastInstances()) { MapConfig map = instance.getConfig().findMapConfig("subs"); if (map != null && map.getName().equals("subs")) { return instance; } } return null; }
@Override public void afterSingletonsInstantiated() { if (this.hazelcastInstance == null) { if (!Hazelcast.getAllHazelcastInstances().isEmpty()) { HazelcastInstance hazelcastInstance = Hazelcast.getAllHazelcastInstances().iterator().next(); hazelcastInstance.getCluster().addMembershipListener(new HazelcastMembershipListener()); syncConfigurationMultiMap(hazelcastInstance); } else { logger.warn("No HazelcastInstances for MembershipListener registration"); } } else { syncConfigurationMultiMap(this.hazelcastInstance); this.hazelcastInstance.getCluster().addMembershipListener(new HazelcastMembershipListener()); } }
@Override public void run() { logger.info("run.enter; about to stop schemas: {}", Arrays.toString(schemas)); HazelcastInstance hzSystem = null; Set<HazelcastInstance> instances = Hazelcast.getAllHazelcastInstances(); logger.info("run; instances: {}", instances); int cnt = 0; for (HazelcastInstance instance: instances) { if (matchNames(instance.getName(), hz_instance)) { hzSystem = instance; } else if (shutdownInstance(instance)) { instance.shutdown(); cnt++; } } logger.info("run.exit; instances stopped: {}", cnt); if (schemas.length == 0 || (hzSystem != null && instances.size() - cnt == 1)) { if ("admin".equals(hzSystem.getCluster().getLocalMember().getStringAttribute(pn_cluster_node_role))) { // close all open clients to cache nodes! for (HazelcastInstance client: HazelcastClient.getAllHazelcastClients()) { client.shutdown(); } } hzSystem.shutdown(); logger.info("run.exit; admin instance terminated as well"); System.exit(0); } }
@Override public void memberRemoved(MembershipEvent membershipEvent) { SocketAddress removedMemberSocketAddress = membershipEvent.getMember().getSocketAddress(); Set<HazelcastInstance> hazelcastLocalInstanceSet = Hazelcast.getAllHazelcastInstances(); if (!hazelcastLocalInstanceSet.isEmpty()) { HazelcastInstance hazelcastInstance = hazelcastLocalInstanceSet.iterator().next();
private void syncConfigurationMultiMap(HazelcastInstance hazelcastInstance) { Lock lock = hazelcastInstance.getLock(SPRING_INTEGRATION_INTERNAL_CLUSTER_LOCK); lock.lock(); try { MultiMap<SocketAddress, SocketAddress> multiMap = hazelcastInstance .getMultiMap(SPRING_INTEGRATION_INTERNAL_CLUSTER_MULTIMAP); for (HazelcastInstance localInstance : Hazelcast.getAllHazelcastInstances()) { SocketAddress localInstanceSocketAddress = localInstance.getLocalEndpoint().getSocketAddress(); if (multiMap.size() == 0) { multiMap.put(localInstanceSocketAddress, localInstanceSocketAddress); } else { multiMap.put(multiMap.keySet().iterator().next(), localInstanceSocketAddress); } } } finally { lock.unlock(); } }