/** * generate version tag if it does not exist and set it into the event. * @param event * @param entry */ public void generateAndSetVersionTag(InternalCacheEvent event, RegionEntry entry) { if (entry != null && event.getOperation().isEntry()) { generateAndSetVersionTag((EntryEventImpl)event, entry); } }
/** * Return true if this operation needs to check for reliable delivery. Return * false if not. Currently the only case it doesn't need to be is a * DestroyRegionOperation doing a "local" destroy. * * @since 5.0 */ boolean isOperationReliable() { Operation op = this.event.getOperation(); if (!op.isRegionDestroy()) { return true; } if (op.isDistributed()) { return true; } // must be a region destroy that is "local" which means // Region.localDestroyRegion or Region.close or Cache.clsoe // none of these should do reliability checks return false; }
/** * Return true if this operation needs to check for reliable delivery. Return * false if not. Currently the only case it doesn't need to be is a * DestroyRegionOperation doing a "local" destroy. * * @since 5.0 */ boolean isOperationReliable() { Operation op = this.event.getOperation(); if (!op.isRegionDestroy()) { return true; } if (op.isDistributed()) { return true; } // must be a region destroy that is "local" which means // Region.localDestroyRegion or Region.close or Cache.clsoe // none of these should do reliability checks return false; }
private void removeDestroyTokensFromCqResultKeys(InternalCacheEvent event, FilterInfo filterInfo){ FilterProfile regionProfile = ((LocalRegion)event.getRegion()).getFilterProfile(); if (event.getOperation().isEntry() && filterInfo.getCQs() != null) { EntryEventImpl entryEvent = (EntryEventImpl)event; for (Map.Entry<Long, Integer> e: filterInfo.getCQs().entrySet()) { Long cqID = e.getKey(); String cqName = regionProfile.getRealCqID(cqID); if (cqName != null) { ServerCQ cq = regionProfile.getCq(cqName); if (cq != null && e.getValue().equals(Integer.valueOf(MessageType.LOCAL_DESTROY))) { cq.removeFromCqResultKeys(entryEvent.getKey(), true); } } } } }
private void removeDestroyTokensFromCqResultKeys(InternalCacheEvent event, FilterInfo filterInfo){ FilterProfile regionProfile = ((LocalRegion)event.getRegion()).getFilterProfile(); if (event.getOperation().isEntry() && filterInfo.getCQs() != null) { EntryEventImpl entryEvent = (EntryEventImpl)event; for (Map.Entry<Long, Integer> e: filterInfo.getCQs().entrySet()) { Long cqID = e.getKey(); String cqName = regionProfile.getRealCqID(cqID); if (cqName != null) { CqQueryImpl cq = (CqQueryImpl)regionProfile.getCq(cqName); if (cq != null && e.getValue().equals(Integer.valueOf(MessageType.LOCAL_DESTROY))) { cq.removeFromCqResultKeys(entryEvent.getKey(), true); } } } } }
@Override void dispatchListenerEvent(EnumListenerEvent op, InternalCacheEvent event) { // don't dispatch the event if the interest policy forbids it if (hasListener()) { if (event.getOperation().isEntry()) { EntryEventImpl ev = (EntryEventImpl)event; if (!ev.getInvokePRCallbacks()) { if (this.getSubscriptionAttributes().getInterestPolicy() == InterestPolicy.CACHE_CONTENT) { if (logger.isDebugEnabled()) { logger.trace(LogMarker.DM_BRIDGE_SERVER, "not dispatching PR event in this member as there is no interest in it"); } return; } } } super.dispatchListenerEvent(op, event); } }
if (event.getOperation().isCreate()) { if (logger.isDebugEnabled()) { logger.debug("invoking listeners: " + Arrays.toString(listeners));
/** * generate version tag if it does not exist and set it into the event. * @param event * @param entry */ public void generateAndSetVersionTag(InternalCacheEvent event, RegionEntry entry) { if (entry != null && event.getOperation().isEntry()) { EntryEventImpl entryEvent = (EntryEventImpl)event; if (!entryEvent.isOriginRemote() && shouldGenerateVersionTag(entry, entryEvent)) { boolean eventHasDelta = (getSystem().getConfig().getDeltaPropagation() && !this.scope.isDistributedNoAck() && entryEvent.getDeltaBytes() != null); VersionTag v = entry.generateVersionTag(null, eventHasDelta, this, entryEvent); if(logger.isDebugEnabled()) { logger.debug("generated version tag {} for {}", v, entryEvent.getKey()); } } } }
boolean isEntryEvent = event.getOperation().isEntry(); EntryEventImpl entryEvent = isEntryEvent? (EntryEventImpl)event : null; if (routing != null && event.getOperation().isEntry() && ((EntryEventImpl)event).isConcurrencyConflict()) { if(logger.isDebugEnabled()) {
protected void initMessage(CacheOperationMessage msg, DirectReplyProcessor p) { final DistributedRegion region = getRegion(); msg.regionPath = region.getFullPath(); msg.processorId = p == null ? 0 : p.getProcessorId(); msg.processor = p; if (this.event.getOperation().isEntry()) { EntryEventImpl entryEvent = getEvent(); msg.callbackArg = entryEvent.getRawCallbackArgument(); msg.possibleDuplicate = entryEvent.isPossibleDuplicate(); VersionTag tag = entryEvent.getVersionTag(); msg.setInhibitNotificationsBit(entryEvent.inhibitAllNotifications()); if (tag != null && tag.hasValidVersion()) { msg.setVersionTag(tag); } } else { msg.callbackArg = ((RegionEventImpl)this.event).getRawCallbackArgument(); } msg.op = this.event.getOperation(); msg.owner = this; msg.regionAllowsConflation = region.getEnableAsyncConflation(); }
protected void initMessage(CacheOperationMessage msg, DirectReplyProcessor p) { msg.regionPath = getRegion().getFullPath(); msg.processorId = p == null ? 0 : p.getProcessorId(); msg.processor = p; if (this.event.getOperation().isEntry()) { EntryEventImpl entryEvent = getEvent(); msg.callbackArg = entryEvent.getRawCallbackArgument(); msg.possibleDuplicate = entryEvent.isPossibleDuplicate(); VersionTag tag = entryEvent.getVersionTag(); msg.setInhibitNotificationsBit(entryEvent.inhibitAllNotifications()); if (tag != null && tag.hasValidVersion()) { msg.setVersionTag(tag); } } else { msg.callbackArg = ((RegionEventImpl)this.event).getRawCallbackArgument(); } msg.op = this.event.getOperation(); msg.owner = this; msg.regionAllowsConflation = getRegion().getEnableAsyncConflation(); }
boolean isEntry = event.getOperation().isEntry();
eventID, tag, event.getOperation());
&& !this.event.getOperation().isRegion()) {
/** * @param event * @param eventID * @return true if the event should not be tracked, false otherwise */ private boolean ignoreEvent(InternalCacheEvent event, EventID eventID) { if (eventID == null) { return true; } else { boolean isVersioned = (event.getVersionTag() != null); boolean isClient = event.hasClientOrigin(); if (isVersioned && isClient) { return false; // version tags for client events are kept for retries by the client } boolean isEntry = event.getOperation().isEntry(); boolean isPr = event.getRegion().getAttributes().getDataPolicy().withPartitioning() || ((LocalRegion)event.getRegion()).isUsedForPartitionedRegionBucket(); return (!isClient && // ignore if it originated on a server, and isEntry && // it affects an entry and !isPr); // is not on a PR } }
/** * @param event * @param eventID * @return true if the event should not be tracked, false otherwise */ private boolean ignoreEvent(InternalCacheEvent event, EventID eventID) { if (eventID == null) { return true; } else { boolean isVersioned = (event.getVersionTag() != null); boolean isClient = event.hasClientOrigin(); if (isVersioned && isClient) { return false; // version tags for client events are kept for retries by the client } boolean isEntry = event.getOperation().isEntry(); boolean isPr = event.getRegion().getAttributes().getDataPolicy().withPartitioning() || ((LocalRegion)event.getRegion()).isUsedForPartitionedRegionBucket(); return (!isClient && // ignore if it originated on a server, and isEntry && // it affects an entry and (!isPr && !GemFireCacheImpl.gfxdSystem())); // is not on a PR } }
if (event.getOperation().isEntry()) { EntryEventImpl ev = (EntryEventImpl)event; if (!ev.getInvokePRCallbacks()) {
&& (event.getOperation().isPutAll() || event.getOperation().isRemoveAll()) && lr.getServerProxy() == null) { recordBulkOpEvent(event, membershipID);
boolean isEntryEvent = event.getOperation().isEntry(); EntryEventImpl entryEvent = isEntryEvent? (EntryEventImpl)event : null; if (routing != null && event.getOperation().isEntry() && ((EntryEventImpl)event).isConcurrencyConflict()) { if (getLogWriterI18n().fineEnabled()) {
&& event.getOperation().isPutAll() && lr.getServerProxy() == null) { recordPutAllEvent(event, membershipID);