@Override @Retained protected InternalCacheEvent createEvent(DistributedRegion rgn) throws EntryNotFoundException { EntryEventImpl event = (EntryEventImpl) super.createEvent(rgn); event.setContext(this.context); return event; }
private EntryEventImpl createEventForLoad(KeyInfo keyInfo, boolean generateCallbacks, ClientProxyMembershipID requestingClient, Operation op) { // Do not generate Event ID EntryEventImpl event = EntryEventImpl.create(this, op, keyInfo.getKey(), null /* newValue */, keyInfo.getCallbackArg(), false, getMyId(), generateCallbacks); if (requestingClient != null) { event.setContext(requestingClient); } return event; }
@Override @Retained EntryEventImpl createEntryEvent(DistributedRegion rgn) { EntryEventImpl event = EntryEventImpl.create(rgn, getOperation(), this.key, null, /* newvalue */ this.callbackArg, true /* originRemote */, getSender(), true/* generateCallbacks */ ); event.setContext(this.context); return event; }
private void putEvent(String key, String value, byte[] memId, long threadId, boolean skipCallbacks, int sequenceId) { EntryEventImpl event = EntryEventImpl.create(region, Operation.PUTALL_CREATE, key, value, null, false, member, !skipCallbacks, new EventID(memId, threadId, sequenceId)); event.setContext(memberId); event.setVersionTag(mock(VersionTag.class)); eventTracker.recordEvent(event); }
@Override @Retained public EntryEventImpl createEntryEvent(DistributedRegion rgn) { // Object oldValue = null; final Object argNewValue = null; // boolean localLoad = false, netLoad = false, netSearch = false, // distributed = true; final boolean originRemote = true, generateCallbacks = true; @Retained EntryEventImpl ev = EntryEventImpl.create(rgn, getOperation(), this.key, argNewValue, this.callbackArg, originRemote, getSender(), generateCallbacks); ev.setContext(this.clientID); setOldValueInEvent(ev); return ev; // localLoad, netLoad, netSearch, // distributed, this.isExpiration, originRemote, this.context); }
protected void recordPutAllEvents(DistributedRegion region, byte[] memId, long threadId, boolean skipCallbacks, DistributedMember member, ClientProxyMembershipID memberId, int size) { EntryEventImpl[] events = new EntryEventImpl[size]; EventTracker eventTracker = region.getEventTracker(); for (int i = 0; i < size; i++) { events[i] = EntryEventImpl.create(region, Operation.PUTALL_CREATE, "key" + i, "value" + i, null, false, member, !skipCallbacks, new EventID(memId, threadId, i + 1)); events[i].setContext(memberId); events[i].setVersionTag(mock(VersionTag.class)); eventTracker.recordEvent(events[i]); } }
private void recordPutAllEvents(byte[] memId, long threadId, boolean skipCallbacks, int size) { for (int i = 0; i < size; i++) { putEvent("key" + i, "value" + i, memId, threadId, skipCallbacks, i + 1); EntryEventImpl event = EntryEventImpl.create(region, Operation.PUTALL_CREATE, "key" + i, "value" + i, null, false, member, !skipCallbacks, new EventID(memId, threadId, i + 1)); event.setContext(memberId); event.setVersionTag(mock(VersionTag.class)); eventTracker.recordEvent(event); } }
private void putEvent(String key, String value, byte[] memId, long threadId, boolean skipCallbacks, int sequenceId, VersionTag tag) { EntryEventImpl event = EntryEventImpl.create(region, Operation.PUTALL_CREATE, key, value, null, false, member, !skipCallbacks, new EventID(memId, threadId, sequenceId)); event.setContext(memberId); event.setVersionTag(tag); eventTracker.recordEvent(event); }
event.setContext(memberId); DistributedRemoveAllOperation removeAllOp = new DistributedRemoveAllOperation(event, keys.size(), true);
event.setContext(memberId); DistributedPutAllOperation putAllOp = new DistributedPutAllOperation(event, map.size(), true); try {
@Test public void retriedBulkOpGetsSavedVersionTag() { DistributedRegion region = prepare(true, true); DistributedMember member = mock(DistributedMember.class); ClientProxyMembershipID memberId = mock(ClientProxyMembershipID.class); byte[] memId = {1, 2, 3}; long threadId = 1; long retrySeqId = 1; ThreadIdentifier tid = new ThreadIdentifier(memId, threadId); EventID retryEventID = new EventID(memId, threadId, retrySeqId); boolean skipCallbacks = true; int size = 2; recordPutAllEvents(region, memId, threadId, skipCallbacks, member, memberId, size); EventTracker eventTracker = region.getEventTracker(); ConcurrentMap<ThreadIdentifier, BulkOperationHolder> map = eventTracker.getRecordedBulkOpVersionTags(); BulkOperationHolder holder = map.get(tid); EntryEventImpl retryEvent = EntryEventImpl.create(region, Operation.PUTALL_CREATE, "key1", "value1", null, false, member, !skipCallbacks, retryEventID); retryEvent.setContext(memberId); retryEvent.setPutAllOperation(mock(DistributedPutAllOperation.class)); region.hasSeenEvent(retryEvent); assertTrue(retryEvent.getVersionTag().equals(holder.getEntryVersionTags().get(retryEventID))); }
public void basicBridgeUpdateVersionStamp(Object key, Object callbackArg, ClientProxyMembershipID memberId, boolean fromClient, EntryEventImpl clientEvent) { // Create an event and update version stamp of the entry @Released EntryEventImpl event = EntryEventImpl.create(this, Operation.UPDATE_VERSION_STAMP, key, null, null, false, memberId.getDistributedMember(), false, clientEvent.getEventId()); event.setContext(memberId); // if this is a replayed operation we may already have a version tag event.setVersionTag(clientEvent.getVersionTag()); try { basicUpdateEntryVersion(event); } finally { clientEvent.setVersionTag(event.getVersionTag()); clientEvent.isConcurrencyConflict(event.isConcurrencyConflict()); event.release(); } }
/** * create a new EntryEvent to be used in notifying listeners, cache servers, etc. Caller must * release result if it is != to sourceEvent */ @Retained EntryEventImpl createListenerEvent(EntryEventImpl sourceEvent, PartitionedRegion r, InternalDistributedMember member) { final EntryEventImpl e2; if (this.notificationOnly && this.bridgeContext == null) { e2 = sourceEvent; } else { e2 = new EntryEventImpl(sourceEvent); if (this.bridgeContext != null) { e2.setContext(this.bridgeContext); } } e2.setRegion(r); e2.setOriginRemote(true); e2.setInvokePRCallbacks(!notificationOnly); if (this.filterInfo != null) { e2.setLocalFilterInfo(this.filterInfo.getFilterInfo(member)); } if (this.versionTag != null) { this.versionTag.replaceNullIDs(getSender()); e2.setVersionTag(this.versionTag); } return e2; }
public void basicBridgeRemove(Object key, Object expectedOldValue, Object callbackArg, ClientProxyMembershipID memberId, boolean fromClient, EntryEventImpl clientEvent) throws TimeoutException, EntryNotFoundException, CacheWriterException { if (fromClient) { // If this region is also wan-enabled, then wrap that callback arg in a // GatewayEventCallbackArgument to store the event id. if (isGatewaySenderEnabled()) { callbackArg = new GatewaySenderEventCallbackArgument(callbackArg); } } // Create an event and put the entry @Released final EntryEventImpl event = EntryEventImpl.create(this, Operation.REMOVE, key, null, callbackArg, false, memberId.getDistributedMember(), true, clientEvent.getEventId()); try { event.setContext(memberId); // we rely on exceptions to tell us that the operation didn't take // place. AbstractRegionMap performs the checks and throws the exception try { basicDestroy(event, true, expectedOldValue); } finally { clientEvent.setVersionTag(event.getVersionTag()); clientEvent.setIsRedestroyedEntry(event.getIsRedestroyedEntry()); } } finally { event.release(); } }
e2 = new EntryEventImpl(sourceEvent); if (this.bridgeContext != null) { e2.setContext(this.bridgeContext);
@Retained protected static EntryEventImpl createRemoveAllEvent(DistributedRemoveAllOperation op, InternalRegion region, Object entryKey) { @Retained EntryEventImpl e; final Operation entryOp = Operation.REMOVEALL_DESTROY; if (op != null) { EntryEventImpl event = op.getBaseEvent(); if (event.isBridgeEvent()) { e = EntryEventImpl.create(region, entryOp, entryKey, null, event.getRawCallbackArgument(), false, event.distributedMember, event.isGenerateCallbacks()); e.setContext(event.getContext()); } else { e = EntryEventImpl.create(region, entryOp, entryKey, null, event.getCallbackArgument(), false, region.getMyId(), event.isGenerateCallbacks()); } } else { e = EntryEventImpl.create(region, entryOp, entryKey, null, null, false, region.getMyId(), true); } e.removeAllOp = op; return e; }
public void basicBridgeInvalidate(Object key, Object callbackArg, ClientProxyMembershipID memberId, boolean fromClient, EntryEventImpl clientEvent) throws TimeoutException, EntryNotFoundException, CacheWriterException { Object theCallbackArg = callbackArg; if (fromClient) { // If this region is also wan-enabled, then wrap that callback arg in a // GatewayEventCallbackArgument to store the event id. if (isGatewaySenderEnabled()) { theCallbackArg = new GatewaySenderEventCallbackArgument(theCallbackArg); } } // Create an event and put the entry @Released final EntryEventImpl event = EntryEventImpl.create(this, Operation.INVALIDATE, key, null, theCallbackArg, false, memberId.getDistributedMember(), true, clientEvent.getEventId()); try { event.setContext(memberId); // if this is a replayed operation we may already have a version tag event.setVersionTag(clientEvent.getVersionTag()); try { basicInvalidate(event); } finally { clientEvent.setVersionTag(event.getVersionTag()); clientEvent.isConcurrencyConflict(event.isConcurrencyConflict()); } } finally { event.release(); } }
/** * Creates a PutAllEvent given the distributed operation, the region, and the entry data. * * @since GemFire 5.0 */ @Retained static EntryEventImpl createPutAllEvent(DistributedPutAllOperation putAllOp, InternalRegion region, Operation entryOp, Object entryKey, @Retained(ENTRY_EVENT_NEW_VALUE) Object entryNewValue) { @Retained EntryEventImpl e; if (putAllOp != null) { EntryEventImpl event = putAllOp.getBaseEvent(); if (event.isBridgeEvent()) { e = EntryEventImpl.create(region, entryOp, entryKey, entryNewValue, event.getRawCallbackArgument(), false, event.distributedMember, event.isGenerateCallbacks()); e.setContext(event.getContext()); } else { e = EntryEventImpl.create(region, entryOp, entryKey, entryNewValue, event.getCallbackArgument(), false, region.getMyId(), event.isGenerateCallbacks()); } } else { e = EntryEventImpl.create(region, entryOp, entryKey, entryNewValue, null, false, region.getMyId(), true); } e.putAllOp = putAllOp; return e; }
event.setContext(memberId);
ev.setContext(bridgeContext);