public boolean isDistributed() { return this.op.isDistributed(); }
/** * 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(); }
/** * 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 GemFire 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 verifyMirrorRegionEventsMatch(EntryEvent<String, String> event, Region region, String expectedValue) { assertThat(event.getRegion()).isSameAs(region); assertThat(event.getKey()).isEqualTo("key"); assertThat(event.getNewValue()).isEqualTo(expectedValue); assertThat(event.getOldValue()).isNull(); assertThat(event.getOperation().isLocalLoad()).isFalse(); assertThat(event.getOperation().isNetLoad()).isFalse(); assertThat(event.getOperation().isLoad()).isFalse(); assertThat(event.getOperation().isNetSearch()).isFalse(); assertThat(event.getOperation().isExpiration()).isFalse(); assertThat(event.getCallbackArgument()).isNull(); assertThat(event.isCallbackArgumentAvailable()).isTrue(); assertThat(event.isOriginRemote()).isTrue(); assertThat(event.getOperation().isDistributed()).isTrue(); }
/** * @since GemFire 5.7 */ void serverInvalidate(EntryEventImpl event) { if (event.getOperation().isDistributed() && !event.isOriginRemote()) { ServerRegionProxy mySRP = getServerProxy(); if (mySRP != null) { mySRP.invalidate(event); } } }
/** * @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); }
protected LocalRegion getRegionFromPath(ClusterDistributionManager dm, String path) { // allow a destroyed region to be returned if we're dealing with a // shared region, since another cache may // have already destroyed it in shared memory, in which our listeners // still need to be called and java region object cleaned up. InternalCache cache = dm.getExistingCache(); // only get the region while holding the appropriate destroy lock. // this prevents us from getting a "stale" region if (getOperation().isDistributed()) { String rootName = GemFireCacheImpl.parsePath(path)[0]; this.lockRoot = (LocalRegion) cache.getRegion(rootName); if (this.lockRoot == null) return null; this.lockRoot.acquireDestroyLock(); } return (LocalRegion) cache.getRegion(path); }
/** * Destroy an entry on the server given its event. * * @since GemFire 5.7 */ void serverDestroy(EntryEventImpl event, Object expectedOldValue) { if (event.getOperation().isDistributed()) { ServerRegionProxy mySRP = getServerProxy(); if (mySRP != null) { // send to server Object key = event.getKey(); Object callbackArg = event.getRawCallbackArgument(); Object result = mySRP.destroy(key, expectedOldValue, event.getOperation(), event, callbackArg); if (result instanceof EntryNotFoundException) { throw (EntryNotFoundException) result; } } } }
/** * Check INVALIDATE Operation. */ @Test public void testINVALIDATE() { Operation op = Operation.INVALIDATE; assertFalse(op.isCreate()); assertFalse(op.isUpdate()); assertTrue(op.isInvalidate()); assertFalse(op.isDestroy()); assertFalse(op.isPutAll()); assertFalse(op.isRegionInvalidate()); assertFalse(op.isRegionDestroy()); assertFalse(op.isRegion()); assertFalse(op.isLocal()); assertTrue(op.isDistributed()); assertTrue(op.isEntry()); assertFalse(op.isExpiration()); assertFalse(op.isLocalLoad()); assertFalse(op.isNetLoad()); assertFalse(op.isLoad()); assertFalse(op.isNetSearch()); assertFalse(op.isClose()); assertFalse(op.isClear()); }
/** * Check DESTROY Operation. */ @Test public void testDESTROY() { Operation op = Operation.DESTROY; assertFalse(op.isCreate()); assertFalse(op.isUpdate()); assertFalse(op.isInvalidate()); assertTrue(op.isDestroy()); assertFalse(op.isPutAll()); assertFalse(op.isRegionInvalidate()); assertFalse(op.isRegionDestroy()); assertFalse(op.isRegion()); assertFalse(op.isLocal()); assertTrue(op.isDistributed()); assertTrue(op.isEntry()); assertFalse(op.isExpiration()); assertFalse(op.isLocalLoad()); assertFalse(op.isNetLoad()); assertFalse(op.isLoad()); assertFalse(op.isNetSearch()); assertFalse(op.isClose()); assertFalse(op.isClear()); }
/** * Check REGION_CREATE Operation. */ @Test public void testREGION_CREATE() { Operation op = Operation.REGION_CREATE; assertFalse(op.isCreate()); assertFalse(op.isUpdate()); assertFalse(op.isInvalidate()); assertFalse(op.isDestroy()); assertFalse(op.isPutAll()); assertFalse(op.isRegionInvalidate()); assertFalse(op.isRegionDestroy()); assertTrue(op.isRegion()); assertTrue(op.isLocal()); assertFalse(op.isDistributed()); assertFalse(op.isEntry()); assertFalse(op.isExpiration()); assertFalse(op.isLocalLoad()); assertFalse(op.isNetLoad()); assertFalse(op.isLoad()); assertFalse(op.isNetSearch()); assertFalse(op.isClose()); assertFalse(op.isClear()); }
/** * Check EXPIRE_LOCAL_INVALIDATE Operation. */ @Test public void testEXPIRE_LOCAL_INVALIDATE() { Operation op = Operation.EXPIRE_LOCAL_INVALIDATE; assertFalse(op.isCreate()); assertFalse(op.isUpdate()); assertTrue(op.isInvalidate()); assertFalse(op.isDestroy()); assertFalse(op.isPutAll()); assertFalse(op.isRegionInvalidate()); assertFalse(op.isRegionDestroy()); assertFalse(op.isRegion()); assertTrue(op.isLocal()); assertFalse(op.isDistributed()); assertTrue(op.isEntry()); assertTrue(op.isExpiration()); assertFalse(op.isLocalLoad()); assertFalse(op.isNetLoad()); assertFalse(op.isLoad()); assertFalse(op.isNetSearch()); assertFalse(op.isClose()); assertFalse(op.isClear()); }
/** * Check REGION_EXPIRE_INVALIDATE Operation. */ @Test public void testREGION_EXPIRE_INVALIDATE() { Operation op = Operation.REGION_EXPIRE_INVALIDATE; assertFalse(op.isCreate()); assertFalse(op.isUpdate()); assertFalse(op.isInvalidate()); assertFalse(op.isDestroy()); assertFalse(op.isPutAll()); assertTrue(op.isRegionInvalidate()); assertFalse(op.isRegionDestroy()); assertTrue(op.isRegion()); assertFalse(op.isLocal()); assertTrue(op.isDistributed()); assertFalse(op.isEntry()); assertTrue(op.isExpiration()); assertFalse(op.isLocalLoad()); assertFalse(op.isNetLoad()); assertFalse(op.isLoad()); assertFalse(op.isNetSearch()); assertFalse(op.isClose()); assertFalse(op.isClear()); }
/** * Check NET_LOAD_CREATE Operation. */ @Test public void testNET_LOAD_CREATE() { Operation op = Operation.NET_LOAD_CREATE; assertTrue(op.isCreate()); assertFalse(op.isUpdate()); assertFalse(op.isInvalidate()); assertFalse(op.isDestroy()); assertFalse(op.isPutAll()); assertFalse(op.isRegionInvalidate()); assertFalse(op.isRegionDestroy()); assertFalse(op.isRegion()); assertFalse(op.isLocal()); assertTrue(op.isDistributed()); assertTrue(op.isEntry()); assertFalse(op.isExpiration()); assertFalse(op.isLocalLoad()); assertTrue(op.isNetLoad()); assertTrue(op.isLoad()); assertFalse(op.isNetSearch()); assertFalse(op.isClose()); assertFalse(op.isClear()); }
/** * Check REGION_LOCAL_INVALIDATE Operation. */ @Test public void testREGION_LOCAL_INVALIDATE() { Operation op = Operation.REGION_LOCAL_INVALIDATE; assertFalse(op.isCreate()); assertFalse(op.isUpdate()); assertFalse(op.isInvalidate()); assertFalse(op.isDestroy()); assertFalse(op.isPutAll()); assertTrue(op.isRegionInvalidate()); assertFalse(op.isRegionDestroy()); assertTrue(op.isRegion()); assertTrue(op.isLocal()); assertFalse(op.isDistributed()); assertFalse(op.isEntry()); assertFalse(op.isExpiration()); assertFalse(op.isLocalLoad()); assertFalse(op.isNetLoad()); assertFalse(op.isLoad()); assertFalse(op.isNetSearch()); assertFalse(op.isClose()); assertFalse(op.isClear()); }
/** * Check CACHE_CREATE Operation */ @Test public void testCACHE_CREATE() { Operation op = Operation.CACHE_CREATE; assertFalse(op.isCreate()); assertFalse(op.isUpdate()); assertFalse(op.isInvalidate()); assertFalse(op.isDestroy()); assertFalse(op.isPutAll()); assertFalse(op.isRegionInvalidate()); assertFalse(op.isRegionDestroy()); assertTrue(op.isRegion()); assertTrue(op.isLocal()); assertFalse(op.isDistributed()); assertFalse(op.isEntry()); assertFalse(op.isExpiration()); assertFalse(op.isLocalLoad()); assertFalse(op.isNetLoad()); assertFalse(op.isLoad()); assertFalse(op.isNetSearch()); assertFalse(op.isClose()); assertFalse(op.isClear()); }
/** * Check REGION_LOAD_SNAPSHOT Operation. */ @Test public void testREGION_LOAD_SNAPSHOT() { Operation op = Operation.REGION_LOAD_SNAPSHOT; assertFalse(op.isCreate()); assertFalse(op.isUpdate()); assertFalse(op.isInvalidate()); assertFalse(op.isDestroy()); assertFalse(op.isPutAll()); assertFalse(op.isRegionInvalidate()); assertTrue(op.isRegionDestroy()); assertTrue(op.isRegion()); assertFalse(op.isLocal()); assertTrue(op.isDistributed()); assertFalse(op.isEntry()); assertFalse(op.isExpiration()); assertFalse(op.isLocalLoad()); assertFalse(op.isNetLoad()); assertFalse(op.isLoad()); assertFalse(op.isNetSearch()); assertFalse(op.isClose()); assertFalse(op.isClear()); }
/** * Check CACHE_CLOSE Operation. */ @Test public void testCACHE_CLOSE() { Operation op = Operation.CACHE_CLOSE; assertFalse(op.isCreate()); assertFalse(op.isUpdate()); assertFalse(op.isInvalidate()); assertFalse(op.isDestroy()); assertFalse(op.isPutAll()); assertFalse(op.isRegionInvalidate()); assertTrue(op.isRegionDestroy()); assertTrue(op.isRegion()); assertTrue(op.isLocal()); assertFalse(op.isDistributed()); assertFalse(op.isEntry()); assertFalse(op.isExpiration()); assertFalse(op.isLocalLoad()); assertFalse(op.isNetLoad()); assertFalse(op.isLoad()); assertFalse(op.isNetSearch()); assertTrue(op.isClose()); assertFalse(op.isClear()); }