@Override public void fillInProfile(Profile profile) { assert profile instanceof GatewaySenderProfile; GatewaySenderProfile pf = (GatewaySenderProfile)profile; pf.Id = getId(); pf.startTime = getStartTime(); pf.remoteDSId = getRemoteDSId(); pf.isRunning = isRunning(); pf.isPrimary = isPrimary(); pf.isParallel = false; pf.isBatchConflationEnabled = isBatchConflationEnabled(); pf.isPersistenceEnabled = isPersistenceEnabled(); pf.alertThreshold = getAlertThreshold(); pf.manualStart = isManualStart(); 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(); pf.dispatcherThreads = getDispatcherThreads(); pf.orderPolicy = getOrderPolicy(); pf.serverLocation = this.getServerLocation(); }
stompProxyDead(); this.getLogger().info(LocalizedStrings.GatewayImpl_STOPPED__0, this); clearTempEventsAfterSenderStopped(); } finally { this.lifeCycleLock.writeLock().unlock(); if (this.isPrimary()) { try { DistributedLockService .destroy(getSenderAdvisor().getDLockServiceName()); } catch (IllegalArgumentException e) { if (getQueues() != null && !getQueues().isEmpty()) { for (RegionQueue q : getQueues()) { ((SerialGatewaySenderQueue)q).cleanUp(); this.setIsPrimary(false); new UpdateAttributesProcessor(this).distribute(false); ((GemFireCacheImpl)getCache()).gatewaySenderStopped(this); Thread lockObtainingThread = getSenderAdvisor().getLockObtainingThread(); if (lockObtainingThread != null && lockObtainingThread.isAlive()) { getLogger() .info( LocalizedStrings.GatewayHubImpl_COULD_NOT_STOP_LOCK_OBTAINING_THREAD_DURING_GATEWAY_HUB_SHUTDOWN);
@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("SerialGatewaySender{"); sb.append("id=" + getId()); sb.append(",remoteDsId="+ getRemoteDSId()); sb.append(",isRunning ="+ isRunning()); sb.append(",isPrimary ="+ isPrimary()); sb.append("}"); return sb.toString(); }
/** * @param sender */ public ConcurrentSerialGatewaySenderEventProcessor( SerialGatewaySenderImpl sender) { super(LogWriterImpl.createThreadGroup("Event Processor for GatewaySender_" + sender.getId(), sender.getLogger()), "Event Processor for GatewaySender_" + sender.getId(), sender); this.sender = sender; initializeMessageQueue(sender.getId()); queues = new HashSet<RegionQueue>(); for (SerialGatewaySenderEventProcessor processor : processors) { queues.add(processor.getQueue()); } setDaemon(true); }
if (isRunning()) { if (logger.warningEnabled()) { logger.warning( LocalizedStrings.GatewaySender_SENDER_0_IS_ALREADY_RUNNING, this.getId()); getSenderAdvisor().initDLockService(); if (!isPrimary()) { if (getSenderAdvisor().volunteerForPrimary()) { getSenderAdvisor().makePrimary(); } else { getSenderAdvisor().makeSecondary(); if (getDispatcherThreads() > 1) { eventProcessor = new ConcurrentSerialGatewaySenderEventProcessor( SerialGatewaySenderImpl.this); } else { eventProcessor = new SerialGatewaySenderEventProcessor( SerialGatewaySenderImpl.this, getId()); waitForRunningStatus(); this.startTime = System.currentTimeMillis(); final GemFireCacheImpl cache = (GemFireCacheImpl)getCache(); cache.getPdxRegistry().gatewaySenderStarted(this); new UpdateAttributesProcessor(this).distribute(false); getLogger().info(LocalizedStrings.SerialGatewaySenderImpl_STARTED__0, this);
public boolean done() { Set<RegionQueue> queues = ((SerialGatewaySenderImpl)sender) .getQueues(); int size = 0; for (RegionQueue q : queues) { size += q.size(); } if (size == 0) { return true; } return false; }
public boolean done() { if (sender.isPrimary()) { return true; } return false; }
public static void verifySenderStoppedState(String senderId) { Set<GatewaySender> senders = cache.getGatewaySenders(); SerialGatewaySenderImpl sender = null; for (GatewaySender s : senders) { if (s.getId().equals(senderId)) { sender = (SerialGatewaySenderImpl)s; break; } } assertFalse(sender.isRunning()); assertFalse(sender.isPaused()); }
public void makePrimary() { logger.info(LocalizedStrings.SerialGatewaySenderImpl_0__STARTING_AS_PRIMARY, this.sender); AbstractGatewaySenderEventProcessor eventProcessor = ((SerialGatewaySenderImpl)this.sender).getEventProcessor(); if (eventProcessor != null) { eventProcessor.removeCacheListener(); } synchronized (this.primaryLock) { this.isPrimary = true; logger.info(LocalizedStrings.SerialGatewaySenderImpl_0__BECOMING_PRIMARY_GATEWAYSENDER, this.sender); this.primaryLock.notifyAll(); } new UpdateAttributesProcessor(this.sender).distribute(false); }
public static void verifyGatewaySenderOperations(String senderId) { Set<GatewaySender> senders = cache.getGatewaySenders(); GatewaySender sender = null; for (GatewaySender s : senders) { if (s.getId().equals(senderId)) { sender = s; break; } } assertFalse(sender.isPaused()); assertFalse(((SerialGatewaySenderImpl)sender).isRunning()); sender.pause(); sender.resume(); sender.stop(); } }
public static void addListenerAndKillPrimary(){ Set<GatewaySender> senders = ((GemFireCacheImpl)cache).getAllGatewaySenders(); assertEquals(senders.size(), 1); SerialGatewaySenderImpl sender = (SerialGatewaySenderImpl)senders.iterator().next(); Region queue = cache.getRegion(Region.SEPARATOR+sender.getId()+"_SERIAL_GATEWAY_SENDER_QUEUE"); assertNotNull(queue); CacheListenerAdapter cl = new CacheListenerAdapter() { @Override public void afterCreate(EntryEvent event) { if((Long)event.getKey() > 900){ cache.getLogger().fine(" Gateway sender is killed by a test"); cache.close(); cache.getDistributedSystem().disconnect(); } } }; queue.getAttributesMutator().addCacheListener(cl); }
sender = new SerialGatewaySenderImpl(this.cache, this.attrs); ((GemFireCacheImpl)this.cache).addGatewaySender(sender); if (!this.attrs.isManualStart()) {
public String description() { Set<RegionQueue> queues = ((SerialGatewaySenderImpl)sender) .getQueues(); int size = 0; for (RegionQueue q : queues) { size += q.size(); } return "Expected queue size to be : " + 0 + " but actual entries: " + size; } };
public String description() { return "Expected sender to be : " + isPrimary.booleanValue() + " but actually it is : " + sender.isPrimary(); } };
public static void verifySenderResumedState(String senderId) { Set<GatewaySender> senders = cache.getGatewaySenders(); SerialGatewaySenderImpl sender = null; for (GatewaySender s : senders) { if (s.getId().equals(senderId)) { sender = (SerialGatewaySenderImpl)s; break; } } assertFalse(sender.isPaused()); assertTrue(sender.isRunning()); }
public static Map getSenderToReceiverConnectionInfo(String senderId){ Set<GatewaySender> senders = cache.getGatewaySenders(); GatewaySender sender = null; for(GatewaySender s : senders){ if(s.getId().equals(senderId)){ sender = s; break; } } Map connectionInfo = null; if (sender instanceof SerialGatewaySenderImpl && ((AbstractGatewaySender) sender).isPrimary()) { connectionInfo = new HashMap(); GatewaySenderEventDispatcher dispatcher = ((SerialGatewaySenderImpl) sender).getEventProcessor().getDispatcher(); if (dispatcher instanceof GatewaySenderEventRemoteDispatcher) { ServerLocation serverLocation = ((GatewaySenderEventRemoteDispatcher) dispatcher).getConnection().getServer(); connectionInfo.put("serverHost", serverLocation.getHostName()); connectionInfo.put("serverPort", serverLocation.getPort()); } } return connectionInfo; }
public static void verifyGatewaySenderOperations(String senderId) { Set<GatewaySender> senders = cache.getGatewaySenders(); GatewaySender sender = null; for (GatewaySender s : senders) { if (s.getId().equals(senderId)) { sender = s; break; } } assertFalse(sender.isPaused()); assertFalse(((SerialGatewaySenderImpl)sender).isRunning()); sender.pause(); sender.resume(); sender.stop(); } }
sender = new SerialGatewaySenderImpl(this.cache, this.attrs); ((GemFireCacheImpl)this.cache).addGatewaySender(sender);
private void addSecondCacheQueueListener(String senderId, boolean isParallel) { Set<GatewaySender> senders = cache.getGatewaySenders(); GatewaySender sender = null; for (GatewaySender s : senders) { if (s.getId().equals(senderId)) { sender = s; break; } } listener2 = new QueueListener(); if (!isParallel) { Set<RegionQueue> queues = ((SerialGatewaySenderImpl)sender).getQueues(); for(RegionQueue q: queues) { q.addCacheListener(listener2); } } else { RegionQueue parallelQueue = (RegionQueue)((ParallelGatewaySenderImpl)sender) .getQueues().toArray(new RegionQueue[1])[0]; parallelQueue.addCacheListener(listener2); } }
public boolean done() { if (sender.isPrimary() == isPrimary.booleanValue()) { return true; } return false; }