public RemoveBucketMessage(DataInput in) throws IOException, ClassNotFoundException { fromData(in); }
@Override protected final boolean operateOnPartitionedRegion(DistributionManager dm, PartitionedRegion region, long startTime) throws ForceReattemptException { PartitionedRegionDataStore dataStore = region.getDataStore(); boolean removed = dataStore.removeBucket(this.bucketId, this.forceRemovePrimary); region.getPrStats().endPartitionMessagesProcessing(startTime); RemoveBucketReplyMessage.send( getSender(), getProcessorId(), dm, null, removed); return false; }
public Object call() { InternalDistributedMember recipient = members[finalOtherVM]; PartitionedRegion pr = (PartitionedRegion) getCache().getRegion(regionPath[0]); RemoveBucketResponse response = RemoveBucketMessage.send(recipient, pr, 0, false); if (response != null) { response.waitForRepliesUninterruptibly(); return true; } else { return Boolean.FALSE; } } })).booleanValue();
/** * Sends a message to remove the bucket. * * @param recipient the member to remove the bucket from * @param region the PartitionedRegion of the bucket * @param bucketId the bucket to remove * @return the processor used to wait for the response */ public static RemoveBucketResponse send( InternalDistributedMember recipient, PartitionedRegion region, int bucketId, boolean forceRemovePrimary) { Assert.assertTrue(recipient != null, "RemoveBucketMessage NULL recipient"); RemoveBucketResponse response = new RemoveBucketResponse( region.getSystem(), recipient, region); RemoveBucketMessage msg = new RemoveBucketMessage( recipient, region.getPRId(), response, bucketId, forceRemovePrimary); Set<InternalDistributedMember> failures = region.getDistributionManager().putOutgoing(msg); if (failures != null && failures.size() > 0) { //throw new ForceReattemptException("Failed sending <" + msg + ">"); return null; } region.getPrStats().incPartitionMessagesSent(); return response; }
public Object call() { InternalDistributedMember recipient = members[finalOtherVM]; PartitionedRegion pr = (PartitionedRegion) getCache().getRegion(regionPath[0]); RemoveBucketResponse response = RemoveBucketMessage.send(recipient, pr, 0, false); if (response != null) { response.waitForRepliesUninterruptibly(); return true; } else { return Boolean.FALSE; } } })).booleanValue();
/** * Sends a message to remove the bucket. * * @param recipient the member to remove the bucket from * @param region the PartitionedRegion of the bucket * @param bucketId the bucket to remove * @return the processor used to wait for the response */ public static RemoveBucketResponse send( InternalDistributedMember recipient, PartitionedRegion region, int bucketId, boolean forceRemovePrimary) { Assert.assertTrue(recipient != null, "RemoveBucketMessage NULL recipient"); RemoveBucketResponse response = new RemoveBucketResponse( region.getSystem(), recipient, region); RemoveBucketMessage msg = new RemoveBucketMessage( recipient, region.getPRId(), response, bucketId, forceRemovePrimary); Set<InternalDistributedMember> failures = region.getDistributionManager().putOutgoing(msg); if (failures != null && failures.size() > 0) { //throw new ForceReattemptException("Failed sending <" + msg + ">"); return null; } region.getPrStats().incPartitionMessagesSent(); return response; }
RemoveBucketResponse response = RemoveBucketMessage.send(source, this.partitionedRegion, bucketId, false); if (response != null) {
@Override protected final boolean operateOnPartitionedRegion(DistributionManager dm, PartitionedRegion region, long startTime) throws ForceReattemptException { PartitionedRegionDataStore dataStore = region.getDataStore(); boolean removed = dataStore.removeBucket(this.bucketId, this.forceRemovePrimary); region.getPrStats().endPartitionMessagesProcessing(startTime); RemoveBucketReplyMessage.send( getSender(), getProcessorId(), dm, null, removed); return false; }
registerDSFID(PR_BECOME_PRIMARY_BUCKET_REPLY, () -> new BecomePrimaryBucketReplyMessage()); registerDSFID(PR_REMOVE_BUCKET_MESSAGE, () -> new RemoveBucketMessage());
public RemoveBucketMessage(DataInput in) throws IOException, ClassNotFoundException { fromData(in); }
private static boolean dumpBucket(final DistributedMember source, final Region<?, ?> region, final int bucketId) { final PartitionedRegion pr = prCheck(region, bucketId); InternalDistributedMember bucketSource = dataStoreCheck(source, pr); Set<InternalDistributedMember> currentBucketOwners = pr.getRegionAdvisor() .getBucketOwners(bucketId); if (!currentBucketOwners.contains(bucketSource)) { Object[] params = new Object[] { bucketSource, Integer.valueOf(bucketId) }; throw new IllegalArgumentException( LocalizedStrings.PartitionManager_SOURCE_MEMBER_0_BUCKETID_1_DOES_NOT_HAVE_THE_BUCKET .toLocalizedString(params)); } InternalDistributedMember self = (InternalDistributedMember)pr.getCache() .getDistributedSystem().getDistributedMember(); if (bucketSource.equals(self)) { PartitionedRegionDataStore dataStore = pr.getDataStore(); return dataStore.removeBucket(bucketId, true); } else { RemoveBucketResponse response = RemoveBucketMessage.send(bucketSource, pr, bucketId, true); if (response != null) { return response.waitForResponse(); } } return false; }
/** * Remove a redundant bucket on the target member * * @param target * the member on which to create the redundant bucket * @param bucketId * the identifier of the bucket * @param pr * the partitioned region which contains the bucket * @return true if the redundant bucket was removed */ public static boolean removeRedundantBucketForRegion( InternalDistributedMember target, int bucketId, PartitionedRegion pr) { boolean removed = false; if (pr.getDistributionManager().getId().equals(target)) { // invoke directly on local member... removed = pr.getDataStore().removeBucket(bucketId, false); } else { // send message to remote member... RemoveBucketResponse response = RemoveBucketMessage.send(target, pr, bucketId, false); if (response != null) { removed = response.waitForResponse(); } } return removed; }
/** * Remove a redundant bucket on the target member * * @param target * the member on which to create the redundant bucket * @param bucketId * the identifier of the bucket * @param pr * the partitioned region which contains the bucket * @return true if the redundant bucket was removed */ public static boolean removeRedundantBucketForRegion( InternalDistributedMember target, int bucketId, PartitionedRegion pr) { boolean removed = false; if (pr.getDistributionManager().getId().equals(target)) { // invoke directly on local member... removed = pr.getDataStore().removeBucket(bucketId, false); } else { // send message to remote member... RemoveBucketResponse response = RemoveBucketMessage.send(target, pr, bucketId, false); if (response != null) { removed = response.waitForResponse(); } } return removed; }
RemoveBucketResponse response = RemoveBucketMessage.send(source, this.partitionedRegion, bucketId, false); if (response != null) {