/** * Creates the HDFS Queue instance for a region (this skips the creation of * event processor) */ private HDFSParallelGatewaySenderQueue getHDFSQueue(Region region, Cache c) { ParallelGatewaySenderImpl gatewaySender = new ParallelGatewaySenderImpl(c, new GatewaySenderAttributes()); HashSet<Region> set = new HashSet<Region>(); set.add(region); return new HDFSParallelGatewaySenderQueue(gatewaySender, set, 0, 1); }
protected AbstractGatewaySenderEventProcessor getHDFSEventProcessor() { final AsyncEventQueueImpl asyncQ = getHDFSEventQueue(); final ParallelGatewaySenderImpl gatewaySender = (ParallelGatewaySenderImpl)asyncQ.getSender(); AbstractGatewaySenderEventProcessor eventProcessor = gatewaySender.getEventProcessor(); return eventProcessor; }
public static HashMap checkQueue_PR(String senderId){ Set<GatewaySender> senders = cache.getGatewaySenders(); GatewaySender sender = null; for(GatewaySender s : senders){ if(s.getId().equals(senderId)){ sender = s; break; } } RegionQueue parallelQueue = (RegionQueue)((ParallelGatewaySenderImpl)sender) .getQueues().toArray(new RegionQueue[1])[0]; PartitionedRegion region = (PartitionedRegion)parallelQueue.getRegion(); QueueListener listener = (QueueListener)region.getCacheListener(); HashMap listenerAttrs = new HashMap(); listenerAttrs.put("Create", listener.createList); listenerAttrs.put("Update", listener.updateList); listenerAttrs.put("Destroy", listener.destroyList); return listenerAttrs; }
public void fillInProfile(Profile profile) { assert profile instanceof GatewaySenderProfile; GatewaySenderProfile pf = (GatewaySenderProfile)profile; pf.Id = getId(); pf.remoteDSId = getRemoteDSId(); pf.isRunning = isRunning(); pf.isPrimary = isPrimary(); pf.isParallel = true; pf.isBatchConflationEnabled = isBatchConflationEnabled(); pf.isPersistenceEnabled = isPersistenceEnabled(); pf.alertThreshold = getAlertThreshold(); pf.manualStart = isManualStart(); pf.dispatcherThreads = getDispatcherThreads(); pf.orderPolicy = getOrderPolicy(); for (com.gemstone.gemfire.cache.wan.GatewayEventFilter filter : getGatewayEventFilters()) { pf.eventFiltersClassNames.add(filter.getClass().getName()); } for (GatewayTransportFilter filter : getGatewayTransportFilters()) { pf.transFiltersClassNames.add(filter.getClass().getName()); } for (AsyncEventListener listener : getAsyncEventListeners()) { pf.senderEventListenerClassNames.add(listener.getClass().getName()); } pf.isDiskSynchronous = isDiskSynchronous(); }
this.lifeCycleLock.writeLock().lock(); try { if (!this.isRunning()) { return; stompProxyDead(); ((GemFireCacheImpl)getCache()).gatewaySenderStopped(this); this.getLogger().info(LocalizedStrings.GatewayImpl_STOPPED__0, this); system.handleResourceEvent(ResourceEvent.GATEWAYSENDER_STOP, this); clearTempEventsAfterSenderStopped();
this.lifeCycleLock.writeLock().lock(); try { if (isRunning()) { if (logger.warningEnabled()) { logger.warning( LocalizedStrings.GatewaySender_SENDER_0_IS_ALREADY_RUNNING, this.getId()); waitForRunningStatus(); final GemFireCacheImpl cache = (GemFireCacheImpl)getCache(); cache.getPdxRegistry().gatewaySenderStarted(this); new UpdateAttributesProcessor(this).distribute(false); system.handleResourceEvent(ResourceEvent.GATEWAYSENDER_START, this); getLogger().info(LocalizedStrings.ParallelGatewaySenderImpl_STARTED__0, this); enqueTempEvents();
public void afterDestroy(EntryEvent event) { // super.afterDestroy(event); SilenceListenerBB.getBB().getSharedCounters().setIfLarger(SilenceListenerBB.lastEventTime, System.currentTimeMillis()); GatewaySender sender = getSenderForEvent(event); if(sender !=null){ if(sender.isPaused()){ Integer pausedCount = (Integer)pausedMap.get(sender.getId()); pausedCount = (pausedCount == null) ? new Integer(1) : pausedCount + 1; pausedMap.put(sender.getId(), pausedCount); if(pausedCount.intValue() > sender.getBatchSize()){ boolean isPrimary = (sender instanceof SerialGatewaySenderImpl) ? ((SerialGatewaySenderImpl)sender).isPrimary() : ((ParallelGatewaySenderImpl)sender).isPrimary(); String s = "Event dispatched from sender are more than a batch size in vm " + getMyUniqueName() + " , not allowed with sender config isPrimary=" + isPrimary + ", isRunning=" + sender.isRunning() + ", isPaused=" + sender.isPaused() + ", dispatched events from last sender operation=" + pausedCount + GatewaySenderHelper.gatewaySenderToString(sender) + "\n" + toString("afterDestroy", event); // for bug #44153 // bb.throwException(s); } }else{ pausedMap.put(sender.getId(), new Integer(0)); } } }
region.getParallelGatewaySender().getStatistics() .incConflationIndexesMapSize(); if (logger.fineEnabled()) { + tailKey + " and previousTailKey: " + previousTailKey); AbstractGatewaySenderEventProcessor ep = region.getParallelGatewaySender().getEventProcessor(); if (ep == null) return; ConcurrentParallelGatewaySenderQueue queue = (ConcurrentParallelGatewaySenderQueue)ep.getQueue();
ParallelGatewaySenderImpl sender = (ParallelGatewaySenderImpl)this.cache .getGatewaySender(senderId); if (sender == null || sender.getEventProcessor() == null) { continue; if (sender.isPaused()) { pausedSenders.add(senderId); continue; AbstractGatewaySenderEventProcessor ep = sender.getEventProcessor(); if (ep == null) continue; ConcurrentParallelGatewaySenderQueue parallelQueue = (ConcurrentParallelGatewaySenderQueue)ep.getQueue();
/** * @param regionName * @param attrs * @param parentRegion * @param cache * @param internalRegionArgs */ public HDFSBucketRegionQueue(String regionName, RegionAttributes attrs, LocalRegion parentRegion, GemFireCacheImpl cache, InternalRegionArguments internalRegionArgs) { super(regionName, attrs, parentRegion, cache, internalRegionArgs); this.isBucketSorted = internalRegionArgs.getPartitionedRegion().getParallelGatewaySender().getBucketSorted(); if (isBucketSorted) hdfsEventQueue = new MultiRegionSortedQueue(); else hdfsEventQueue = new EventQueue(); batchSize = internalRegionArgs.getPartitionedRegion(). getParallelGatewaySender().getBatchSize() * 1024 *1024; this.keySet(); } @Override
@Override public void beforeAcquiringPrimaryState() { int batchSize = this.getPartitionedRegion().getParallelGatewaySender() .getBatchSize(); Iterator<Object> itr = eventSeqNumQueue.iterator(); markEventsAsDuplicate(batchSize, itr); }
if (this.sender.getBucketSorted()) {
if(pausedCount.intValue() > sender.getBatchSize()){ boolean isPrimary = (sender instanceof SerialGatewaySenderImpl) ? ((SerialGatewaySenderImpl)sender).isPrimary() : ((ParallelGatewaySenderImpl)sender).isPrimary(); String s = "Event dispatched from sender are more than a batch size in vm " + getMyUniqueName() + " , not allowed with sender config isPrimary=" + isPrimary + ", isRunning=" + sender.isRunning() + ", isPaused=" + sender.isPaused() + ", dispatched events from last sender operation=" + pausedCount
long batchSizeMB = this.getPartitionedRegion().getParallelGatewaySender().getBatchSize(); long batchSizeInBytes = batchSizeMB*1024*1024; long totalBucketSize = queueSizeInBytes.get();
public static Long getNumberOfEntriesOverflownToDisk(final String senderId) { Set<GatewaySender> senders = cache.getGatewaySenders(); GatewaySender sender = null; for (GatewaySender s : senders) { if (s.getId().equals(senderId)) { sender = s; break; } } long numEntries = 0; if (sender instanceof ParallelGatewaySenderImpl) { RegionQueue regionQueue; regionQueue = ((ParallelGatewaySenderImpl)sender).getQueues().toArray( new RegionQueue[1])[0]; numEntries = ((ConcurrentParallelGatewaySenderQueue)regionQueue) .getNumEntriesOverflowOnDiskTestOnly(); } return numEntries; }
public static void setTestHook(String senderId, boolean hook) { Set<GatewaySender> senders = cache.getGatewaySenders(); GatewaySender sender = null; for (GatewaySender s : senders) { if (s.getId().equals(senderId)) { sender = s; break; } } ConcurrentParallelGatewaySenderEventProcessor cProc = (ConcurrentParallelGatewaySenderEventProcessor)((ParallelGatewaySenderImpl)sender) .getEventProcessor(); if (cProc == null) return; cProc.TEST_HOOK = hook; }
public void afterCreate(EntryEvent event) { SilenceListenerBB.getBB().getSharedCounters().setIfLarger(SilenceListenerBB.lastEventTime, System.currentTimeMillis()); //super.afterCreate(event); // create, update or destroy operation on region in own site. // event propogating to other site via this sender. // no event should get enqueued when sender status is stopped GatewaySender sender = getSenderForEvent(event); if(sender != null && !sender.isRunning()){ boolean isPrimary = (sender instanceof SerialGatewaySenderImpl) ? ((SerialGatewaySenderImpl)sender).isPrimary() : ((ParallelGatewaySenderImpl)sender).isPrimary(); String s = "Event is enqueued even when sender is stopped in vm " + getMyUniqueName() + ". Not allowed with sender config isPrimary=" + isPrimary + ", isRunning=" + sender.isRunning() + ", isPaused=" + sender.isPaused() + GatewaySenderHelper.gatewaySenderToString(sender) + "\n" + toString("afterCreate", event); // for bug #44153 // bb.throwException(s); } }
ParallelGatewaySenderImpl gatewaySender = new ParallelGatewaySenderImpl(cache, new GatewaySenderAttributes()); Set<Region> set = new HashSet<Region>(); set.add(region);
public static Long getNumberOfEntriesInVM(final String senderId) { Set<GatewaySender> senders = cache.getGatewaySenders(); GatewaySender sender = null; for (GatewaySender s : senders) { if (s.getId().equals(senderId)) { sender = s; break; } } RegionQueue regionQueue; long numEntries = 0; if (sender instanceof ParallelGatewaySenderImpl) { regionQueue = ((ParallelGatewaySenderImpl)sender).getQueues().toArray( new RegionQueue[1])[0]; numEntries = ((ConcurrentParallelGatewaySenderQueue)regionQueue) .getNumEntriesInVMTestOnly(); } return numEntries; }
private HDFSBucketRegionQueue getQueue(PartitionedRegion pr, int bucketId) throws ForceReattemptException { AsyncEventQueueImpl aeq = pr.getHDFSEventQueue(); ParallelGatewaySenderImpl gw = (ParallelGatewaySenderImpl) aeq.getSender(); AbstractGatewaySenderEventProcessor ep = gw.getEventProcessor(); if (ep == null) { return null; } ConcurrentParallelGatewaySenderQueue queue = (ConcurrentParallelGatewaySenderQueue) ep.getQueue(); return queue.getBucketRegionQueue(pr, bucketId); }