/** * Returns the ProxyBucketRegion which owns this advisor. * * @return the ProxyBucketRegion which owns this advisor */ public ProxyBucketRegion getProxyBucketRegion() { return (ProxyBucketRegion)getAdvisee(); }
/** * Returns the ProxyBucketRegion which owns this advisor. * * @return the ProxyBucketRegion which owns this advisor */ public ProxyBucketRegion getProxyBucketRegion() { return (ProxyBucketRegion)getAdvisee(); }
private Bucket getBucket() { return (Bucket)getAdvisee(); }
private Bucket getBucket() { return (Bucket)getAdvisee(); }
@Override public DistributedRegion getRegionForDeltaGII() { DistributedRegion result = super.getRegionForDeltaGII(); if (result == null && getAdvisee() instanceof ProxyBucketRegion) { result = ((ProxyBucketRegion)getAdvisee()).getHostedBucketRegion(); } return result; }
@Override public DistributedRegion getRegionForDeltaGII() { DistributedRegion result = super.getRegionForDeltaGII(); if (result == null && getAdvisee() instanceof ProxyBucketRegion) { result = ((ProxyBucketRegion)getAdvisee()).getHostedBucketRegion(); } return result; }
@Override public String toString() { //String identity = super.toString(); //String identity = "BucketAdvisor " + getAdvisee().getFullPath() + // ":" + getAdvisee().getSerialNumber(); //identity = identity.substring(identity.lastIndexOf(".")+1); //final StringBuffer sb = new StringBuffer("[" + identity + ": "); final StringBuilder sb = new StringBuilder("[BucketAdvisor ") .append(getAdvisee().getFullPath()).append(':') .append(getAdvisee().getSerialNumber()).append(": "); sb.append("state=").append(primaryStateToString()); sb.append("]"); return sb.toString(); }
@Override public String toString() { //String identity = super.toString(); //String identity = "BucketAdvisor " + getAdvisee().getFullPath() + // ":" + getAdvisee().getSerialNumber(); //identity = identity.substring(identity.lastIndexOf(".")+1); //final StringBuffer sb = new StringBuffer("[" + identity + ": "); final StringBuilder sb = new StringBuilder("[BucketAdvisor ") .append(getAdvisee().getFullPath()).append(':') .append(getAdvisee().getSerialNumber()).append(": "); sb.append("state=").append(primaryStateToString()); sb.append("]"); return sb.toString(); }
/** * Returns all {@link InternalDistributedMember}s currently * flagged as primary. * <p> * Since profile messages may arrive out of order from different members, * more than one member may temporarily be flagged as primary. * <p> * The user of this BucketAdvisor should simply assume that the first * profile is primary until the dust settles, leaving only one primary * profile. * * @return zero or greater array of primary members */ private InternalDistributedMember[] findPrimaryMembers() { Set primaryMembers = adviseFilter(new Filter() { public boolean include(Profile profile) { assert profile instanceof BucketProfile; BucketProfile srp = (BucketProfile) profile; return srp.isPrimary; } }); if (primaryMembers.size() > 1 && logger.isDebugEnabled()) { logger.debug("[findPrimaryProfiles] found the following primary members for {}: {}", getAdvisee().getName(), primaryMembers); } return (InternalDistributedMember[]) primaryMembers.toArray( new InternalDistributedMember[primaryMembers.size()]); }
/** * Initiates volunteering for primary. Repeated calls are harmless. Invoked * by the BucketAdvisor. Caller must be synchronized on BucketAdvisor. */ void volunteerForPrimary() { boolean handedOff = false; while (!handedOff) { getAdvisee().getCancelCriterion().checkCancelInProgress(null); boolean interrupted = Thread.interrupted(); try { execute(new Runnable() { public void run() { doVolunteerForPrimary(); } }); handedOff = true; } catch (InterruptedException e) { interrupted = true; getAdvisee().getCancelCriterion().checkCancelInProgress(e); } finally { if (interrupted) { Thread.currentThread().interrupt(); } } } }
/** * Initiates volunteering for primary. Repeated calls are harmless. Invoked * by the BucketAdvisor. Caller must be synchronized on BucketAdvisor. */ void volunteerForPrimary() { boolean handedOff = false; while (!handedOff) { getAdvisee().getCancelCriterion().checkCancelInProgress(null); boolean interrupted = Thread.interrupted(); try { execute(new Runnable() { public void run() { doVolunteerForPrimary(); } }); handedOff = true; } catch (InterruptedException e) { interrupted = true; getAdvisee().getCancelCriterion().checkCancelInProgress(e); } finally { if (interrupted) { Thread.currentThread().interrupt(); } } } }
/** * Called from catch blocks in {@link #doVolunteerForPrimary()}. Handles * the exception properly based on advisor settings and shutdown condition. * * @param e the RuntimeException that was caught while volunteering * @param loggit true if message should be logged if shutdown condition * is not met */ private void handleException(Exception e, boolean loggit) { boolean safe = isClosed() || getAdvisee().getCancelCriterion().cancelInProgress() != null; if (!safe) { if (ENFORCE_SAFE_CLOSE) { Assert.assertTrue(safe, LocalizedStrings.BucketAdvisor_BUCKETADVISOR_WAS_NOT_CLOSED_PROPERLY.toLocalizedString()); } else if (loggit) { logger.warn(LocalizedMessage.create(LocalizedStrings.BucketAdvisor_BUCKETADVISOR_WAS_NOT_CLOSED_PROPERLY), e); } } }
getLogWriter().fine("[findPrimaryProfiles] " + "found the following primary members for " + getAdvisee().getName() + ": " + primaryMembers);
/** * Called from catch blocks in {@link #doVolunteerForPrimary()}. Handles * the exception properly based on advisor settings and shutdown condition. * * @param e the RuntimeException that was caught while volunteering * @param loggit true if message should be logged if shutdown condition * is not met */ private void handleException(Exception e, boolean loggit) { boolean safe = isClosed() || getAdvisee().getCancelCriterion().cancelInProgress() != null; if (!safe) { if (ENFORCE_SAFE_CLOSE) { Assert.assertTrue(safe, LocalizedStrings.BucketAdvisor_BUCKETADVISOR_WAS_NOT_CLOSED_PROPERLY.toLocalizedString()); } else if (loggit) { getLogWriter().warning(LocalizedStrings.BucketAdvisor_BUCKETADVISOR_WAS_NOT_CLOSED_PROPERLY, e); } } }
while (true) { getAdvisee().getCancelCriterion().checkCancelInProgress(null); synchronized (volunteeringQueue) {
final int bucketId = ((ProxyBucketRegion) getAdvisee()).getBucketId();
final int bucketId = ((ProxyBucketRegion) getAdvisee()).getBucketId();
@Override public boolean shallExclude(ClassTraverser c) { if (super.shallExclude(c)) return true; if (c.member instanceof GemFireContainer) { return !containerInFocus.equals(c.member); } if (c.member instanceof Region<?, ?>) { return !super.regionNameCheck(regionInFocus, ((Region<?, ?>)c.member).getFullPath()); } if (c.member instanceof Bucket) { return !super.regionNameCheck(regionInFocus, ((Bucket)c.member) .getPartitionedRegion().getFullPath()); } if (c.member instanceof DistributionAdvisor) { return !super.regionNameCheck(regionInFocus, ((DistributionAdvisor)c.member).getAdvisee().getFullPath()); } if (c.member instanceof ProxyBucketRegion) { return !super.regionNameCheck(regionInFocus, ((ProxyBucketRegion)c.member).getBucketAdvisor().getAdvisee() .getFullPath()); } if (c.member instanceof GfxdIndexManager) { return true; } return false; } };
@Override public boolean shallExclude(ClassTraverser c) { if (super.shallExclude(c)) return true; if (c.member instanceof GemFireContainer) { return !containerInFocus.equals(c.member); } if (c.member instanceof Region<?, ?>) { return !super.regionNameCheck(regionInFocus, ((Region<?, ?>)c.member).getFullPath()); } if (c.member instanceof Bucket) { return !super.regionNameCheck(regionInFocus, ((Bucket)c.member) .getPartitionedRegion().getFullPath()); } if (c.member instanceof DistributionAdvisor) { return !super.regionNameCheck(regionInFocus, ((DistributionAdvisor)c.member).getAdvisee().getFullPath()); } if (c.member instanceof ProxyBucketRegion) { return !super.regionNameCheck(regionInFocus, ((ProxyBucketRegion)c.member).getBucketAdvisor().getAdvisee() .getFullPath()); } if (c.member instanceof GfxdIndexManager) { return true; } return false; } };
@Override public boolean shallExclude(ClassTraverser c) { if (super.shallExclude(c)) return true; if (c.member instanceof GemFireContainer) { return !containerInFocus.equals(c.member); } if (c.member instanceof Region<?, ?>) { return !super.regionNameCheck(regionInFocus, ((Region<?, ?>)c.member).getFullPath()); } if (c.member instanceof Bucket) { return !super.regionNameCheck(regionInFocus, ((Bucket)c.member) .getPartitionedRegion().getFullPath()); } if (c.member instanceof DistributionAdvisor) { return !super.regionNameCheck(regionInFocus, ((DistributionAdvisor)c.member).getAdvisee().getFullPath()); } if (c.member instanceof ProxyBucketRegion) { return !super.regionNameCheck(regionInFocus, ((ProxyBucketRegion)c.member).getBucketAdvisor().getAdvisee() .getFullPath()); } if (c.member instanceof GfxdIndexManager) { return true; } return false; } };