@Override public void remoteRegionInitialized(CacheProfile profile) { synchronized (this.advisorListener) { if (this.advisorListener.members == null && hasListener()) { Object callback = TEST_HOOK_ADD_PROFILE ? profile : null; RegionEventImpl event = new RegionEventImpl(this, Operation.REGION_CREATE, callback, true, profile.peerMemberId); dispatchListenerEvent(EnumListenerEvent.AFTER_REMOTE_REGION_CREATE, event); } } }
private void sendLocalDestroyRegionMessage(RegionEventImpl event) { int serials[] = getRegionAdvisor().getBucketSerials(); RegionEventImpl eventForLocalDestroy = (RegionEventImpl) event.clone(); eventForLocalDestroy.setOperation(Operation.REGION_LOCAL_DESTROY); sendDestroyRegionMessage(event, serials); }
@Override public void fromData(DataInput in) throws IOException, ClassNotFoundException { super.fromData(in); String[] requiredRoleNames = DataSerializer.readStringArray(in); Set requiredRolesSet = new HashSet(requiredRoleNames.length); for (int i = 0; i < requiredRoleNames.length; i++) { Role role = InternalRole.getRole(requiredRoleNames[i]); requiredRolesSet.add(role); } this.requiredRoles = Collections.unmodifiableSet(requiredRolesSet); }
/** * 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(); }
@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(); }
/** * @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); } } }
boolean isClose = event.getOperation().isClose(); if (!isClose) { this.cache.beginDestroy(path, this); if (!event.isOriginRemote()) { distributeDestroyRegion(event, true); } else { if (!event.isReinitializing()) { RegionEventImpl localEvent = new RegionEventImpl(this, Operation.REGION_LOCAL_DESTROY, event.getCallbackArgument(), false, getMyId(), generateEventID()/* generate EventID */); distributeDestroyRegion(localEvent, false/* fixes bug 41111 */);
logger.trace(LogMarker.RVV_VERBOSE, "processing version information for {}", regionEvent); if (!regionEvent.isOriginRemote() && !regionEvent.getOperation().isLocal()) { logger.trace(LogMarker.RVV_VERBOSE, "generated version tag for clear: {}", tag); regionEvent.setVersionTag(tag); } else { VersionTag tag = regionEvent.getVersionTag(); if (tag != null) { if (isRvvDebugEnabled) { return; regionEvent.setEventType(EnumListenerEvent.AFTER_REGION_CLEAR);
@Override protected InternalCacheEvent createEvent(DistributedRegion rgn) throws EntryNotFoundException { RegionEventImpl event = new RegionEventImpl(rgn, getOperation(), this.callbackArg, true, getSender()); event.setEventID(this.eventID); if (this.filterRouting != null) { event.setLocalFilterInfo( this.filterRouting.getFilterInfo((InternalDistributedMember) rgn.getMyId())); } return event; }
this.cache.getInternalResourceManager(false).removeResourceListener(this); final Operation op = event.getOperation(); stopMissingColocatedRegionLogger(); if (op.isClose() || Operation.REGION_LOCAL_DESTROY.equals(op)) { if (logger.isDebugEnabled()) { logger.debug("Making closePartitionedRegion call for {} with origin = {} op= {}", this, event.isOriginRemote(), op); logger.debug( "PartitionedRegion#postDestroyRegion: Making destroyPartitionedRegion call for {} with originRemote = {}", this, event.isOriginRemote()); getFilterProfile().getFilterRoutingInfoPart2(localCqFrInfo, event); if (localCqInterestFrInfo != null) { event.setLocalFilterInfo(localCqInterestFrInfo.getLocalFilterInfo());
final boolean isClose = regionEvent.getOperation().isClose(); regionEvent = (RegionEventImpl) regionEvent.clone(); regionEvent.region = region; if (regionEvent.isReinitializing()) { this.reinitialized_old = true;
public static DistributedTombstoneOperation gc(DistributedRegion region, EventID eventId) { RegionEventImpl rev = new RegionEventImpl(region, Operation.REGION_EXPIRE_DESTROY, null, false, region.getMyId()); rev.setEventID(eventId); DistributedTombstoneOperation top = new DistributedTombstoneOperation(rev); top.op = TOperation.GC; return top; }
@Override protected boolean operateOnPartitionedRegion(final ClusterDistributionManager dm, PartitionedRegion r, long startTime) throws ForceReattemptException { if (logger.isTraceEnabled(LogMarker.DM_VERBOSE)) { logger.trace("PRTombstoneMessage operateOnRegion: {}", r.getFullPath()); } FilterProfile fp = r.getFilterProfile(); if (this.keys != null && this.keys.size() > 0) { // sanity check if (fp != null && CacheClientNotifier.getInstance() != null && this.eventID != null) { RegionEventImpl regionEvent = new RegionEventImpl(r, Operation.REGION_DESTROY, null, true, r.getGemFireCache().getMyId()); regionEvent.setLocalFilterInfo(fp.getLocalFilterRouting(regionEvent)); ClientUpdateMessage clientMessage = ClientTombstoneMessage.gc(r, this.keys, this.eventID); CacheClientNotifier.notifyClients(regionEvent, clientMessage); } } return true; }
protected RegionEventImpl createRegionEvent(DistributedRegion rgn) { RegionEventImpl event = new RegionEventImpl(rgn, getOperation(), this.callbackArg, true /* originRemote */, getSender()); event.setVersionTag(this.operationTag); return event; }
protected void distributedRegionCleanup(RegionEventImpl event) { if (event == null || event.getOperation() != Operation.REGION_REINITIALIZE) {
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; }
if (this instanceof PartitionedRegion && !((PartitionedRegion) this).getParallelGatewaySenderIds().isEmpty()) { ((PartitionedRegion) this).destroyParallelGatewaySenderRegion(event.getOperation(), cacheWrite, lock, callbackEvents); event.setEventType(EnumListenerEvent.AFTER_REGION_DESTROY); notifyBridgeClients(event);
} else { RegionEventImpl regionEvent = (RegionEventImpl) event; callbackArgument = regionEvent.getRawCallbackArgument(); eventIdentifier = regionEvent.getEventId(); if (event instanceof ClientRegionEventImpl) { ClientRegionEventImpl bridgeEvent = (ClientRegionEventImpl) event;
RegionEventImpl event2 = (RegionEventImpl) event.clone(); event2.region = region; region.dispatchListenerEvent(EnumListenerEvent.AFTER_REGION_INVALIDATE, event2); event.setEventType(EnumListenerEvent.AFTER_REGION_INVALIDATE); notifyBridgeClients(event);