@Override public String toString() { return new StringBuffer().append(getShortClassName()).append("[").append("region=") .append(getRegion()).append(";op=").append(getOperation()).append(";isReinitializing=") .append(isReinitializing()).append(";callbackArg=").append(getCallbackArgument()) .append(";originRemote=").append(isOriginRemote()).append(";originMember=") .append(getDistributedMember()).append(";tag=").append(this.versionTag).append("]") .toString(); }
/** * decide if InvalidateRegionOperation should be sent to peers. broken out so that BucketRegion * can override * * @return true if {@link InvalidateRegionOperation} should be distributed, false otherwise */ protected boolean shouldDistributeInvalidateRegion(RegionEventImpl event) { return event.getOperation().isDistributed() && !event.isOriginRemote(); }
private void sendPendingRegionDestroyEvents(Set regionEvents) { for (Object regionEvent : regionEvents) { RegionEventImpl regionEventImpl = (RegionEventImpl) regionEvent; regionEventImpl.region.dispatchListenerEvent(EnumListenerEvent.AFTER_REGION_DESTROY, regionEventImpl); if (!this.cache.forcedDisconnect()) { SystemMemberCacheEventProcessor.send(getCache(), regionEventImpl.getRegion(), regionEventImpl.getOperation()); } } }
/** * * @param recipients the set of members on which the partitioned region should be destoryed * @param region the partitioned region * @param processor the processor that the reply will use to notify of the reply. * @see #send(Set, PartitionedRegion, RegionEventImpl, int[]) */ private DestroyPartitionedRegionMessage(Set recipients, PartitionedRegion region, ReplyProcessor21 processor, final RegionEventImpl event, int serials[]) { super(recipients, region.getPRId(), processor); this.cbArg = event.getRawCallbackArgument(); this.op = event.getOperation(); this.prSerial = region.getSerialNumber(); Assert.assertTrue(this.prSerial != DistributionAdvisor.ILLEGAL_SERIAL); this.bucketSerials = serials; }
protected void distributedRegionCleanup(RegionEventImpl event) { if (event == null || event.getOperation() != Operation.REGION_REINITIALIZE) {
/** * @since GemFire 5.7 */ void serverRegionDestroy(RegionEventImpl regionEvent) { if (regionEvent.getOperation().isDistributed()) { ServerRegionProxy mySRP = getServerProxy(); if (mySRP != null) { EventID eventId = regionEvent.getEventId(); Object callbackArg = regionEvent.getRawCallbackArgument(); mySRP.destroyRegion(eventId, callbackArg); } } }
/** * @since GemFire 5.7 */ private void serverRegionClear(RegionEventImpl regionEvent) { if (regionEvent.getOperation().isDistributed()) { ServerRegionProxy mySRP = getServerProxy(); if (mySRP != null) { EventID eventId = regionEvent.getEventId(); Object callbackArg = regionEvent.getRawCallbackArgument(); mySRP.clear(eventId, callbackArg); } } }
@Override void basicInvalidateRegion(RegionEventImpl event) { // disallow local invalidation for replicated regions if (!event.getOperation().isDistributed() && getScope().isDistributed() && getDataPolicy().withReplication()) { throw new IllegalStateException( "Not allowed to do a local invalidation on a replicated region"); } if (shouldDistributeInvalidateRegion(event)) { distributeInvalidateRegion(event); } super.basicInvalidateRegion(event); }
if (this instanceof PartitionedRegion && !((PartitionedRegion) this).getParallelGatewaySenderIds().isEmpty()) { ((PartitionedRegion) this).destroyParallelGatewaySenderRegion(event.getOperation(), cacheWrite, lock, callbackEvents);
/** * This invokes a cache writer before a destroy operation. Although it has the same method * signature as the method in LocalRegion, it is invoked in a different code path. LocalRegion * invokes this method via its "entries" member, while PartitionedRegion invokes this method in * its region operation methods and messages. */ @Override boolean cacheWriteBeforeRegionDestroy(RegionEventImpl event) throws CacheWriterException, TimeoutException { if (event.getOperation().isDistributed()) { serverRegionDestroy(event); CacheWriter localWriter = basicGetWriter(); Set netWriteRecipients = localWriter == null ? this.distAdvisor.adviseNetWrite() : null; if (localWriter == null && (netWriteRecipients == null || netWriteRecipients.isEmpty())) { return false; } final long start = getCachePerfStats().startCacheWriterCall(); try { SearchLoadAndWriteProcessor processor = SearchLoadAndWriteProcessor.getProcessor(); processor.initialize(this, "preDestroyRegion", null); processor.doNetWrite(event, netWriteRecipients, localWriter, SearchLoadAndWriteProcessor.BEFOREREGIONDESTROY); processor.release(); } finally { getCachePerfStats().endCacheWriterCall(start); } return true; } return false; }
@Override boolean cacheWriteBeforeRegionDestroy(RegionEventImpl event) throws CacheWriterException, TimeoutException { boolean result = false; if (event.getOperation().isDistributed()) { CacheWriter localWriter = basicGetWriter(); Set netWriteRecipients = localWriter == null ? this.distAdvisor.adviseNetWrite() : null; if (localWriter != null || netWriteRecipients != null && !netWriteRecipients.isEmpty()) { final long start = getCachePerfStats().startCacheWriterCall(); try { SearchLoadAndWriteProcessor processor = SearchLoadAndWriteProcessor.getProcessor(); try { processor.initialize(this, "preDestroyRegion", null); processor.doNetWrite(event, netWriteRecipients, localWriter, SearchLoadAndWriteProcessor.BEFOREREGIONDESTROY); result = true; } finally { processor.release(); } } finally { getCachePerfStats().endCacheWriterCall(start); } } serverRegionDestroy(event); } return result; }
boolean isClose = event.getOperation().isClose(); if (!isClose) { this.cache.beginDestroy(path, this);
this.cache.getInternalResourceManager(false).removeResourceListener(this); final Operation op = event.getOperation(); stopMissingColocatedRegionLogger(); if (op.isClose() || Operation.REGION_LOCAL_DESTROY.equals(op)) {
obtainWriteLocksForClear(regionEvent, participants); clearRegionLocally(regionEvent, cacheWrite, null); if (!regionEvent.isOriginRemote() && regionEvent.getOperation().isDistributed()) { DistributedClearOperation.clear(regionEvent, null, participants); getCacheDistributionAdvisor().adviseInvalidateRegion(); clearRegionLocally(regionEvent, cacheWrite, null); if (!regionEvent.isOriginRemote() && regionEvent.getOperation().isDistributed()) { DistributedClearOperation.clear(regionEvent, null, participants);
final boolean isClose = regionEvent.getOperation().isClose();
final boolean isClose = event.getOperation().isClose(); if (isClose) { this.isClosed = true; if (!event.getOperation().isClose() && getDiskStore() != null && getDataStore() != null) { for (BucketRegion bucketRegion : getDataStore().getAllLocalBucketRegions()) { bucketRegion.isDestroyingDiskRegion = true;
boolean isLocked = false; boolean removeFromDisk = !event.getOperation().isClose(); try { logger.info("Partitioned Region {} with prId={} is being destroyed.",
final boolean isClose = event.getOperation().isClose(); destroyPartitionedRegionLocally(!isClose); destroyCleanUp(event, serials);
logger.trace(LogMarker.RVV_VERBOSE, "processing version information for {}", regionEvent); if (!regionEvent.isOriginRemote() && !regionEvent.getOperation().isLocal()) {