@Override public List<InternalDistributedMember> getViewMembers() { return membershipManager.getView().getMembers(); }
List<InternalDistributedMember> getElderCandidates() { List<InternalDistributedMember> theMembers = clusterDistributionManager.getViewMembers(); return theMembers.stream() .filter(member -> member.getVmKind() != ClusterDistributionManager.ADMIN_ONLY_DM_TYPE) .filter( member -> !clusterDistributionManager.getMembershipManager().isSurpriseMember(member)) .collect(Collectors.toList()); }
private void setRemoteAddr(DistributedMember m) { this.remoteAddr = this.owner.getDM().getCanonicalId(m); MembershipManager mgr = this.conduit.getMembershipManager(); mgr.addSurpriseMember(m); }
shutdownInProgress = true; if (membershipManager != null) { membershipManager.setShutdown(); logger.info("Now closing distribution for {}", this.localAddress); this.membershipManager.disconnect(beforeJoined);
remoteAddr, (ackTimeout) / 1000); mgr.suspectMember(remoteAddr, "Unable to form a TCP/IP connection in a reasonable amount of time"); suspected = true; mgr.suspectMember(remoteAddr, "Unable to form a TCP/IP connection in a reasonable amount of time"); suspected = true; if (!mgr.memberExists(remoteAddr) || mgr.isShunned(remoteAddr) || mgr.shutdownInProgress()) { throw new IOException("Member " + remoteAddr + " left the system"); mgr.getLocalMember(), remoteAddr);
/** * initiate suspect processing if a shared/ordered connection is lost and we're not shutting down */ private void initiateSuspicionIfSharedUnordered() { if (this.isReceiver && this.handshakeRead && !this.preserveOrder && this.sharedResource) { if (!this.owner.getConduit().getCancelCriterion().isCancelInProgress()) { this.owner.getDM().getMembershipManager().suspectMember(this.getRemoteAddress(), INITIATING_SUSPECT_PROCESSING); } } }
verify(membershipManager, times(1)).waitForDeparture(isA(DistributedMember.class), isA(Integer.class));
owner.getDM().getMembershipManager().suspectMember(this.remoteAddr, String.format( "Connection handshake with %s timed out after waiting %s milliseconds.", if (this.isReceiver) { needToClose = !owner.getConduit().getMembershipManager().addSurpriseMember(this.remoteAddr); if (needToClose) { reason = "this member is shunned";
this.localAddress = membershipManager.getLocalMember(); membershipManager.postConnect();
@Override public void forceUDPMessagingForCurrentThread() { membershipManager.forceUDPMessagingForCurrentThread(); }
System.err.println("DEBUG: closing membership manager"); mm.emergencyClose(); if (DEBUG) { System.err.println("DEBUG: back from closing membership manager");
DistributedMember getCoordinator() { InternalDistributedSystem ids = InternalDistributedSystem.getConnectedInstance(); if (ids == null || !ids.isConnected()) { return null; } MembershipManager mmgr = ids.getDistributionManager().getMembershipManager(); if (mmgr == null) { return null; } return mmgr.getCoordinator(); } }
conn.setSharedUnorderedForTest(); conn.run(); verify(membership).suspectMember(isNull(InternalDistributedMember.class), any(String.class));
try { serverConnection.getCache().getDistributionManager().getMembershipManager() .waitForDeparture(target, timeToWait); } catch (TimeoutException e) {
@Override public boolean done() { return !getMembershipManager(sys).getView().contains(member); }
lockHolder = remoteToken.getLessee(); if (lockHolder != null) { dm.getMembershipManager().suspectMember(lockHolder, "Has not released a global region entry lock in over " + ackWaitThreshold / 1000 + " sec");
dm.getMembershipManager().waitForDeparture(this.lostMemberID); RegionVersionHolder rvh = rgn.getVersionVector().getHolderForMember(this.lostMemberVersionID);
@Test public void getElderIdIgnoresSurpriseMembers() { ClusterElderManager clusterElderManager = new ClusterElderManager(clusterDistributionManager); when(memberManager.isSurpriseMember(eq(member1))).thenReturn(true); when(clusterDistributionManager.getViewMembers()).thenReturn(Arrays.asList(member1, member2)); assertThat(clusterElderManager.getElderId()).isEqualTo(member2); }
@Override public void memberJoined(DistributionManager distributionManager, InternalDistributedMember id) { log("A new member joined: " + id + ". " + system.getDM().getMembershipManager().getView()); }
lockHolder = remoteToken.getLessee(); if (lockHolder != null) { dm.getMembershipManager().suspectMember(lockHolder, "Has not released a partitioned region lock in over " + ackWaitThreshold / 1000 + " sec");