public Vector getViewMembers() { Vector result = null; DistributionChannel ch = this.channel; if (ch != null) { MembershipManager mgr = ch.getMembershipManager(); if (mgr != null) { result = mgr.getView(); } } if (result == null) { result = new Vector(); } return result; } /* implementation of DM.getOldestMember */
protected boolean giveUpOnMember(MembershipManager mgr, DistributedMember remoteAddr) { return !mgr.memberExists(remoteAddr) || mgr.isShunned(remoteAddr) || mgr.shutdownInProgress(); }
private long getViewId(DM dm) { MembershipManager mm = dm.getMembershipManager(); return mm != null ? mm.getViewId() : -1; }
public void disconnect(boolean duringStartup) { StringBuilder sb = new StringBuilder(); sb.append("Disconnected from distribution channel "); long start = System.currentTimeMillis(); if (membershipManager != null) { sb.append(membershipManager.getLocalMember()); sb.append(" (took "); long begin = System.currentTimeMillis(); if (duringStartup) { membershipManager.uncleanShutdown("Failed to start distribution", null); } else { membershipManager.shutdown(); } long delta = System.currentTimeMillis() - begin; sb.append(delta); sb.append("/"); } membershipManager = null; if (DistributionManager.VERBOSE) { long delta = System.currentTimeMillis() - start; sb.append(delta); sb.append(" ms)"); logger.fine(sb.toString()); } }
/** * Returns the id of this distribution channel. If this channel * uses JavaGroups and the conduit to communicate with others, then * the port of the JavaGroups channel's {@link InternalDistributedMember address} is * returned. * * @since 3.0 */ public long getId() { InternalDistributedMember moi = membershipManager.getLocalMember(); if (moi == null) { throw new DistributedSystemDisconnectedException(LocalizedStrings.DistributionChannel_I_NO_LONGER_HAVE_A_MEMBERSHIP_ID.toLocalizedString(), membershipManager.getShutdownCause()); } return moi.getPort(); }
new Object[] { remoteAddr, (ackTimeout)/1000 })); mgr.suspectMember(remoteAddr, LocalizedStrings.Connection_UNABLE_TO_FORM_A_TCPIP_CONNECTION_IN_A_REASONABLE_AMOUNT_OF_TIME.toLocalizedString()); suspected = true; mgr.suspectMember(remoteAddr, LocalizedStrings.Connection_UNABLE_TO_FORM_A_TCPIP_CONNECTION_IN_A_REASONABLE_AMOUNT_OF_TIME.toLocalizedString()); suspected = true; if (!mgr.memberExists(remoteAddr) || mgr.isShunned(remoteAddr) || mgr.shutdownInProgress()) { throw new IOException("Member " + remoteAddr + " left the system"); logger.info(LocalizedMessage.create( LocalizedStrings.Connection_0_SUCCESSFULLY_REESTABLISHED_CONNECTION_TO_PEER_1, new Object[] {mgr.getLocalMember(), remoteAddr}));
public InternalDistributedMember getElderId() throws DistributedSystemDisconnectedException { // membershipManager.waitForEventProcessing(); if (closeInProgress) { throw new DistributedSystemDisconnectedException(LocalizedStrings.DistributionManager_NO_VALID_ELDER_WHEN_SYSTEM_IS_SHUTTING_DOWN.toLocalizedString(), this.getRootCause()); } getSystem().getCancelCriterion().checkCancelInProgress(null); // Cache a recent value of the elder InternalDistributedMember result = elder; if (result != null && membershipManager.memberExists(result)) { return result; } logger.info(LocalizedMessage.create(LocalizedStrings.DistributionManager_ELDER__0__IS_NOT_CURRENTLY_AN_ACTIVE_MEMBER_SELECTING_NEW_ELDER, elder)); selectElder(); // ShutdownException can be thrown here logger.info(LocalizedMessage.create(LocalizedStrings.DistributionManager_NEWLY_SELECTED_ELDER_IS_NOW__0_, elder)); return elder; }
mgr.suspectMember(remoteAddr, LocalizedStrings.Connection_UNABLE_TO_FORM_A_TCPIP_CONNECTION_IN_A_REASONABLE_AMOUNT_OF_TIME.toLocalizedString()); suspected = true; mgr.suspectMember(remoteAddr, LocalizedStrings.Connection_UNABLE_TO_FORM_A_TCPIP_CONNECTION_IN_A_REASONABLE_AMOUNT_OF_TIME.toLocalizedString()); suspected = true; InternalDistributedMember m = mgr.getMemberForStub(key, true); if (m == null) { throw new IOException("Member for stub " + key + " left the group"); InternalDistributedMember m = mgr.getMemberForStub(key, true); if (m == null) { throw new IOException(LocalizedStrings.Connection_MEMBER_FOR_STUB_0_LEFT_THE_GROUP.toLocalizedString(key)); InternalDistributedMember m = mgr.getMemberForStub(key, true); if (m == null) { throw ioe; InternalDistributedMember m = mgr.getMemberForStub(key, true); if (m == null) { throw new IOException(LocalizedStrings.Connection_MEMBER_FOR_STUB_0_LEFT_THE_GROUP.toLocalizedString(key)); InternalDistributedMember m = mgr.getMemberForStub(key, true); if (m == null) { IOException ioe = new IOException(LocalizedStrings.Connection_HANDSHAKE_FAILED.toLocalizedString()); InternalDistributedMember m = mgr.getMemberForStub(key, true); if (m == null) { throw e;
this.quorumChecker = mbrMgr.getQuorumChecker(); if (logger.isDebugEnabled()) { if (quorumChecker == null) { mbrMgr.releaseQuorumChecker(quorumChecker);
this.myid = membershipManager.getLocalMember(); membershipManager.postConnect();
owner.getDM().getMembershipManager().suspectMember(this.remoteAddr, LocalizedStrings.Connection_CONNECTION_HANDSHAKE_WITH_0_TIMED_OUT_AFTER_WAITING_1_MILLISECONDS.toLocalizedString( new Object[] {peerName, Integer.valueOf(HANDSHAKE_TIMEOUT_MS)})); needToClose = !owner.getConduit().getMembershipManager().addSurpriseMember(this.remoteAddr); if (needToClose) { reason = "this member is shunned";
private InternalDistributedMember getElderMember( final Set<String> serverGroups) { final GetElderMember doGet = new GetElderMember(serverGroups); this.membershipManager.forEachViewMember(doGet, true); return doGet.elder; }
assertTrue("expected the serial queue to be flushed", mgr.getMembershipManager().waitForDeparture(mbr)); } catch (InterruptedException e) { fail("interrupted");
private void setRemoteAddr(DistributedMember m) { this.remoteAddr = this.owner.getDM().getCanonicalId(m); MembershipManager mgr = this.owner.owner.getMembershipManager(); mgr.addSurpriseMember(m); }
@Override public void forceUDPMessagingForCurrentThread() { membershipManager.forceUDPMessagingForCurrentThread(); }
public InternalDistributedMember getLocalAddress() { return membershipManager.getLocalMember(); }
System.err.println("DEBUG: closing membership manager"); mm.emergencyClose(); if (DEBUG) { System.err.println("DEBUG: back from closing membership manager");
.memberExists(this.replicatedTableTriggerFiringNode)) { needToRefreshInfo = false;
public void disconnect(boolean duringStartup) { StringBuffer sb = new StringBuffer(); sb.append("Disconnected from distribution channel "); long start = System.currentTimeMillis(); logger.debug("DistributionChannel disconnecting with "+ membershipManager + "; duringStartup="+duringStartup); if (membershipManager != null) { sb.append(membershipManager.getLocalMember()); sb.append(" (took "); long begin = System.currentTimeMillis(); if (duringStartup) { membershipManager.uncleanShutdown("Failed to start distribution", null); } else { membershipManager.shutdown(); } long delta = System.currentTimeMillis() - begin; sb.append(delta); sb.append("/"); } membershipManager = null; if (logger.isTraceEnabled(LogMarker.DM)) { long delta = System.currentTimeMillis() - start; sb.append(delta); sb.append(" ms)"); logger.trace(LogMarker.DM, sb); } }
/** * Returns the id of this distribution channel. If this channel * uses JavaGroups and the conduit to communicate with others, then * the port of the JavaGroups channel's {@link InternalDistributedMember address} is * returned. * * @since 3.0 */ public long getId() { MembershipManager mgr = this.membershipManager; if (mgr == null) { throw new DistributedSystemDisconnectedException(LocalizedStrings.DistributionChannel_I_NO_LONGER_HAVE_A_MEMBERSHIP_ID.toLocalizedString()); } InternalDistributedMember moi = mgr.getLocalMember(); if (moi == null) { throw new DistributedSystemDisconnectedException(LocalizedStrings.DistributionChannel_I_NO_LONGER_HAVE_A_MEMBERSHIP_ID.toLocalizedString(), membershipManager.getShutdownCause()); } return moi.getPort(); }