private void createMemberState(MemberStateImpl memberState) { final Node node = factory.node; memberState.setAddress(node.getThisAddress()); memberState.getMemberHealthStats().setOutOfMemory(node.isOutOfMemory()); memberState.getMemberHealthStats().setActive(node.isActive()); memberState .getMemberHealthStats() .setServiceThreadStats(node.getCpuUtilization().serviceThread); memberState.getMemberHealthStats().setOutThreadStats(node.getCpuUtilization().outThread); memberState.getMemberHealthStats().setInThreadStats(node.getCpuUtilization().inThread); PartitionService partitionService = factory.getPartitionService(); Set<Partition> partitions = partitionService.getPartitions(); memberState.clearPartitions(); for (Partition partition : partitions) { if (partition.getOwner() != null && partition.getOwner().localMember()) { memberState.addPartition(partition.getPartitionId()); } } Collection<HazelcastInstanceAwareInstance> proxyObjects = new ArrayList<HazelcastInstanceAwareInstance>(factory.getProxies()); createMemState(memberState, proxyObjects.iterator(), InstanceType.MAP); createMemState(memberState, proxyObjects.iterator(), InstanceType.QUEUE); createMemState(memberState, proxyObjects.iterator(), InstanceType.TOPIC); createRuntimeProps(memberState); // uncomment when client changes are made // createMemState(memberState, proxyObjects.iterator(), InstanceType.ATOMIC_LONG); // createMemState(memberState, proxyObjects.iterator(), InstanceType.COUNT_DOWN_LATCH); // createMemState(memberState, proxyObjects.iterator(), InstanceType.SEMAPHORE); }
@Override public void doRun() { Collection<MemberInfo> lsMemberInfos = membersUpdate.getMemberInfos(); List<Address> newMemberList = new ArrayList<Address>(lsMemberInfos.size()); for (final MemberInfo memberInfo : lsMemberInfos) { newMemberList.add(memberInfo.address); } doCall(membersUpdate, newMemberList, true); systemLogService.logJoin("JoinRunnable update members done."); doCall(new SyncProcess(), newMemberList, false); systemLogService.logJoin("JoinRunnable sync done."); doCall(new ConnectionCheckCall(), newMemberList, false); systemLogService.logJoin("JoinRunnable connection check done."); }
private Set<String> getLongInstanceNames() { Set<String> setLongInstanceNames = new HashSet<String>(maxVisibleInstanceCount); Collection<HazelcastInstanceAwareInstance> proxyObjects = new ArrayList<HazelcastInstanceAwareInstance>(factory.getProxies()); collectInstanceNames(setLongInstanceNames, proxyObjects.iterator(), InstanceType.MAP); collectInstanceNames(setLongInstanceNames, proxyObjects.iterator(), InstanceType.QUEUE); collectInstanceNames(setLongInstanceNames, proxyObjects.iterator(), InstanceType.TOPIC); // uncomment when client changes are made // collectInstanceNames(setLongInstanceNames, proxyObjects.iterator(), // InstanceType.ATOMIC_NUMBER); // collectInstanceNames(setLongInstanceNames, proxyObjects.iterator(), // InstanceType.COUNT_DOWN_LATCH); // collectInstanceNames(setLongInstanceNames, proxyObjects.iterator(), InstanceType.SEMAPHORE); return setLongInstanceNames; }
void updateMembers(Collection<MemberInfo> lsMemberInfos) { checkServiceThread(); final Map<Address, MemberImpl> mapOldMembers = new HashMap<Address, MemberImpl>(); for (MemberImpl member : lsMembers) { mapOldMembers.put(member.getAddress(), member); } if (mapOldMembers.size() == lsMemberInfos.size()) { boolean same = true; for (MemberInfo memberInfo : lsMemberInfos) { MemberImpl member = mapOldMembers.get(memberInfo.getAddress()); if (member == null || !member.getUuid().equals(memberInfo.uuid)) { same = false; break; } } if (same) { logger.log(Level.FINEST, "No need to process member update..."); return; } } logger.log(Level.FINEST, "Updating Members"); lsMembers.clear(); dataMemberCount.reset(); mapMembers.clear(); memberMasterConfirmationTimes.clear(); for (MemberInfo memberInfo : lsMemberInfos) { MemberImpl member = mapOldMembers.get(memberInfo.address); if (member == null) { member = addMember(memberInfo.address, memberInfo.nodeType, memberInfo.uuid); } else { addMember(member); } member.didRead(); } if (!lsMembers.contains(thisMember)) { throw new RuntimeException("Member list doesn't contain local member!"); } heartBeater(); node.getClusterImpl().setMembers(lsMembers); node.setJoined(); logger.log(Level.INFO, this.toString()); }