/** * Test to verify that AsyncEventQueue can not be created when null listener * is passed. */ public void testCreateAsyncEventQueueWithNullListener() { WANTestBase test = new WANTestBase(testName); Properties props = new Properties(); props.setProperty(DistributionConfig.MCAST_PORT_NAME, "0"); InternalDistributedSystem ds = test.getSystem(props); cache = CacheFactory.create(ds); AsyncEventQueueFactory asyncQueueFactory = cache .createAsyncEventQueueFactory(); try { asyncQueueFactory.create("testId", null); fail("AsyncQueueFactory should not allow to create AsyncEventQueue with null listener"); } catch (IllegalArgumentException e) { // expected } }
@Override public void run() { Properties localProps = new Properties(); localProps.setProperty(DistributionConfig.NAME_NAME, alterVm1Name); localProps.setProperty(DistributionConfig.GROUPS_NAME, "Group1"); getSystem(localProps); Cache cache = getCache(); // Setup queues and gateway senders to be used by all tests cache.createRegionFactory(RegionShortcut.PARTITION).setStatisticsEnabled(true).create(alterRegionName); AsyncEventListener listener = new AsyncEventListener<Object, Object>() { @Override public void close() { // Nothing to do } @Override public boolean processEvents(List<AsyncEvent<Object, Object>> events) { return true; } }; cache.createAsyncEventQueueFactory().create(alterAsyncEventQueueId1, listener); cache.createAsyncEventQueueFactory().create(alterAsyncEventQueueId2, listener); cache.createAsyncEventQueueFactory().create(alterAsyncEventQueueId3, listener); GatewaySenderFactory gatewaySenderFactory = cache.createGatewaySenderFactory(); gatewaySenderFactory.setManualStart(true); gatewaySenderFactory.create(alterGatewaySenderId1, 2); gatewaySenderFactory.create(alterGatewaySenderId2, 3); gatewaySenderFactory.create(alterGatewaySenderId3, 4); } });
File [] dirs1 = new File[] {persistentDirectory}; AsyncEventQueueFactory factory = cache.createAsyncEventQueueFactory(); factory.setBatchSize(batchSize); factory.setParallel(isParallel);
public static void createAsyncEventQueueWithListener2(String asyncChannelId, boolean isParallel, Integer maxMemory, Integer batchSize, boolean isPersistent, String diskStoreName) { if (diskStoreName != null) { File directory = new File(asyncChannelId + "_disk_" + System.currentTimeMillis() + "_" + VM.getCurrentVMNum()); directory.mkdir(); File[] dirs1 = new File[] { directory }; DiskStoreFactory dsf = cache.createDiskStoreFactory(); dsf.setDiskDirs(dirs1); DiskStore ds = dsf.create(diskStoreName); } AsyncEventListener asyncEventListener = new MyAsyncEventListener2(); AsyncEventQueueFactory factory = cache.createAsyncEventQueueFactory(); factory.setBatchSize(batchSize); factory.setPersistent(isPersistent); factory.setDiskStoreName(diskStoreName); factory.setMaximumQueueMemory(maxMemory); factory.setParallel(isParallel); AsyncEventQueue asyncChannel = factory.create(asyncChannelId, asyncEventListener); }
public void setUp() throws Exception { super.setUp(); wan = new WanListener(); cache.createAsyncEventQueueFactory().setBatchSize(1).create("wanqueue", wan); region = cache.<Integer, MyObject>createRegionFactory(RegionShortcut.REPLICATE) .addAsyncEventQueueId("wanqueue").create("test"); }
public static void createAsyncEventQueueWithCustomListener( String asyncChannelId, boolean isParallel, Integer maxMemory, Integer batchSize, boolean isConflation, boolean isPersistent, String diskStoreName, boolean isDiskSynchronous) { ExpectedException exp = addExpectedException(ForceReattemptException.class .getName()); try { if (diskStoreName != null) { File directory = new File(asyncChannelId + "_disk_" + System.currentTimeMillis() + "_" + VM.getCurrentVMNum()); directory.mkdir(); File[] dirs1 = new File[] { directory }; DiskStoreFactory dsf = cache.createDiskStoreFactory(); dsf.setDiskDirs(dirs1); DiskStore ds = dsf.create(diskStoreName); } AsyncEventListener asyncEventListener = new CustomAsyncEventListener(); AsyncEventQueueFactory factory = cache.createAsyncEventQueueFactory(); factory.setBatchSize(batchSize); factory.setPersistent(isPersistent); factory.setDiskStoreName(diskStoreName); factory.setMaximumQueueMemory(maxMemory); factory.setParallel(isParallel); AsyncEventQueue asyncChannel = factory.create(asyncChannelId, asyncEventListener); } finally { exp.remove(); } }
public void testConcurrentParallelAsyncEventQueueAttributesOrderPolicyThread() { cache = new CacheFactory().create(); try { AsyncEventQueueFactory fact = cache.createAsyncEventQueueFactory(); fact.setParallel(true); fact.setDispatcherThreads(5); fact.setOrderPolicy(OrderPolicy.THREAD); fact.create("id", new com.gemstone.gemfire.internal.cache.wan.MyAsyncEventListener()); fail("Expected AsyncEventQueueConfigurationException."); } catch (AsyncEventQueueConfigurationException e) { assertTrue(e.getMessage() .contains("can not be created with OrderPolicy")); } }
public void testConcurrentParallelAsyncEventQueueAttributesWrongDispatcherThreads() { cache = new CacheFactory().create(); try { AsyncEventQueueFactory fact = cache.createAsyncEventQueueFactory(); fact.setParallel(true); fact.setDispatcherThreads(-5); fact.setOrderPolicy(OrderPolicy.KEY); fact.create("id", new com.gemstone.gemfire.internal.cache.wan.MyAsyncEventListener()); fail("Expected AsyncEventQueueConfigurationException."); } catch (AsyncEventQueueConfigurationException e) { assertTrue(e.getMessage() .contains(" can not be created with dispatcher threads less than 1")); } }
public static void createAsyncEventQueue( String asyncChannelId, boolean isParallel, Integer maxMemory, Integer batchSize, boolean isConflation, boolean isPersistent, String diskStoreName, boolean isDiskSynchronous) { if (diskStoreName != null) { File directory = new File(asyncChannelId + "_disk_" + System.currentTimeMillis() + "_" + VM.getCurrentVMNum()); directory.mkdir(); File[] dirs1 = new File[] { directory }; DiskStoreFactory dsf = cache.createDiskStoreFactory(); dsf.setDiskDirs(dirs1); DiskStore ds = dsf.create(diskStoreName); } AsyncEventListener asyncEventListener = new MyAsyncEventListener(); AsyncEventQueueFactory factory = cache.createAsyncEventQueueFactory(); factory.setBatchSize(batchSize); factory.setPersistent(isPersistent); factory.setDiskStoreName(diskStoreName); factory.setDiskSynchronous(isDiskSynchronous); factory.setBatchConflationEnabled(isConflation); factory.setMaximumQueueMemory(maxMemory); factory.setParallel(isParallel); factory.create(asyncChannelId, asyncEventListener); }
public static void createConcurrentAsyncEventQueue( String asyncChannelId, boolean isParallel, Integer maxMemory, Integer batchSize, boolean isConflation, boolean isPersistent, String diskStoreName, boolean isDiskSynchronous, int dispatcherThreads, OrderPolicy policy) { if (diskStoreName != null) { File directory = new File(asyncChannelId + "_disk_" + System.currentTimeMillis() + "_" + VM.getCurrentVMNum()); directory.mkdir(); File[] dirs1 = new File[] { directory }; DiskStoreFactory dsf = cache.createDiskStoreFactory(); dsf.setDiskDirs(dirs1); DiskStore ds = dsf.create(diskStoreName); } AsyncEventListener asyncEventListener = new MyAsyncEventListener(); AsyncEventQueueFactory factory = cache.createAsyncEventQueueFactory(); factory.setBatchSize(batchSize); factory.setPersistent(isPersistent); factory.setDiskStoreName(diskStoreName); factory.setDiskSynchronous(isDiskSynchronous); factory.setBatchConflationEnabled(isConflation); factory.setMaximumQueueMemory(maxMemory); factory.setParallel(isParallel); factory.setDispatcherThreads(dispatcherThreads); factory.setOrderPolicy(policy); AsyncEventQueue asyncChannel = factory.create(asyncChannelId, asyncEventListener); }
private static AsyncEventQueue createAsyncEventQueue( AsyncEventQueueDescription aeqd, Cache cache) { // configure the factory AsyncEventQueueFactory f = cache.createAsyncEventQueueFactory(); log.info("Configuring async event queue factory"); aeqd.configure(f); log.info("Configured async event queue factory " + f); // create the async event queue log.info("Creating and starting async event queue " + aeqd.getName()); AsyncEventQueue queue = f.create(aeqd.getName(), aeqd.getAsyncEventListenerInstance()); log.info("Created and started async event queue: " + asyncEventQueueToString(queue)); return queue; }
cache.createAsyncEventQueueFactory().setMaximumQueueMemory(1).setParallel(true).create("parallelQueue", new AsyncEventListener<Object, Object>() { @Override public void close() {
String defaultAsyncQueueName = HDFSStoreFactoryImpl.getEventQueueName(regionPath); AsyncEventQueueFactory factory = cache.createAsyncEventQueueFactory(); factory.setBatchSize(eventAttribs.getBatchSizeMB()); factory.setPersistent(eventAttribs.isPersistent());
private static AsyncEventQueue createAsyncQueueForHDFS(Cache cache, String regionPath, boolean writeOnly, HDFSStore configView) { LogWriterI18n logger = cache.getLoggerI18n(); String defaultAsyncQueueName = HDFSStoreFactoryImpl.getEventQueueName(regionPath); if (configView == null) { configView = new HDFSStoreFactoryImpl(cache).getConfigView(); } AsyncEventQueueFactory factory = cache.createAsyncEventQueueFactory(); factory.setBatchSize(configView.getBatchSize()); factory.setPersistent(configView.getBufferPersistent()); factory.setDiskStoreName(configView.getDiskStoreName()); factory.setMaximumQueueMemory(configView.getMaxMemory()); factory.setBatchTimeInterval(configView.getBatchInterval()); factory.setDiskSynchronous(configView.getSynchronousDiskWrite()); factory.setDispatcherThreads(configView.getDispatcherThreads()); factory.setParallel(true); factory.addGatewayEventFilter(new HDFSEventQueueFilter(logger)); ((AsyncEventQueueFactoryImpl) factory).setBucketSorted(!writeOnly); ((AsyncEventQueueFactoryImpl) factory).setIsHDFSQueue(true); AsyncEventQueue asyncQ = null; if (!writeOnly) asyncQ = factory.create(defaultAsyncQueueName, new HDFSEventListener(cache.getLoggerI18n())); else asyncQ = factory.create(defaultAsyncQueueName, new HDFSWriteOnlyStoreEventListener(cache.getLoggerI18n())); logger.fine("HDFS: async queue created for HDFS. Id: " + asyncQ.getId() + ". Disk store: " + asyncQ.getDiskStoreName() + ". Batch size: " + asyncQ.getBatchSize() + ". bucket sorted: " + !writeOnly); return asyncQ; }