Search in sources :

Example 11 with AsyncEventListener

use of org.apache.geode.cache.asyncqueue.AsyncEventListener in project geode by apache.

the class MyGatewayEventSubstitutionFilter method validateCustomAsyncEventListener.

public static void validateCustomAsyncEventListener(String asyncQueueId, final int expectedSize) {
    AsyncEventListener theListener = null;
    Set<AsyncEventQueue> asyncEventQueues = cache.getAsyncEventQueues();
    for (AsyncEventQueue asyncQueue : asyncEventQueues) {
        if (asyncQueueId.equals(asyncQueue.getId())) {
            theListener = asyncQueue.getAsyncEventListener();
        }
    }
    final Map eventsMap = ((CustomAsyncEventListener) theListener).getEventsMap();
    assertNotNull(eventsMap);
    WaitCriterion wc = new WaitCriterion() {

        public boolean done() {
            if (eventsMap.size() == expectedSize) {
                return true;
            }
            return false;
        }

        public String description() {
            return "Expected map entries: " + expectedSize + " but actual entries: " + eventsMap.size();
        }
    };
    // TODO:Yogs
    Wait.waitForCriterion(wc, 60000, 500, true);
    Iterator<AsyncEvent> itr = eventsMap.values().iterator();
    while (itr.hasNext()) {
        AsyncEvent event = itr.next();
        assertTrue("possibleDuplicate should be true for event: " + event, event.getPossibleDuplicate());
    }
}
Also used : WaitCriterion(org.apache.geode.test.dunit.WaitCriterion) AsyncEventQueue(org.apache.geode.cache.asyncqueue.AsyncEventQueue) AsyncEvent(org.apache.geode.cache.asyncqueue.AsyncEvent) Map(java.util.Map) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) HashMap(java.util.HashMap) AsyncEventListener(org.apache.geode.cache.asyncqueue.AsyncEventListener)

Example 12 with AsyncEventListener

use of org.apache.geode.cache.asyncqueue.AsyncEventListener in project geode by apache.

the class MyGatewayEventSubstitutionFilter method verifyAsyncEventListenerForPossibleDuplicates.

public static void verifyAsyncEventListenerForPossibleDuplicates(String asyncEventQueueId, Set<Integer> bucketIds, int batchSize) {
    AsyncEventListener theListener = null;
    Set<AsyncEventQueue> asyncEventQueues = cache.getAsyncEventQueues();
    for (AsyncEventQueue asyncQueue : asyncEventQueues) {
        if (asyncEventQueueId.equals(asyncQueue.getId())) {
            theListener = asyncQueue.getAsyncEventListener();
        }
    }
    final Map<Integer, List<GatewaySenderEventImpl>> bucketToEventsMap = ((MyAsyncEventListener2) theListener).getBucketToEventsMap();
    assertNotNull(bucketToEventsMap);
    assertTrue(bucketIds.size() > 1);
    for (int bucketId : bucketIds) {
        List<GatewaySenderEventImpl> eventsForBucket = bucketToEventsMap.get(bucketId);
        LogWriterUtils.getLogWriter().info("Events for bucket: " + bucketId + " is " + eventsForBucket);
        assertNotNull(eventsForBucket);
        for (int i = 0; i < batchSize; i++) {
            GatewaySenderEventImpl senderEvent = eventsForBucket.get(i);
            assertTrue(senderEvent.getPossibleDuplicate());
        }
    }
}
Also used : AtomicInteger(java.util.concurrent.atomic.AtomicInteger) AsyncEventQueue(org.apache.geode.cache.asyncqueue.AsyncEventQueue) List(java.util.List) ArrayList(java.util.ArrayList) AsyncEventListener(org.apache.geode.cache.asyncqueue.AsyncEventListener)

Example 13 with AsyncEventListener

use of org.apache.geode.cache.asyncqueue.AsyncEventListener in project geode by apache.

the class MyGatewayEventSubstitutionFilter method createAsyncEventQueueWithCustomListener.

public static void createAsyncEventQueueWithCustomListener(String asyncChannelId, boolean isParallel, Integer maxMemory, Integer batchSize, boolean isConflation, boolean isPersistent, String diskStoreName, boolean isDiskSynchronous, int nDispatchers) {
    IgnoredException exp = IgnoredException.addIgnoredException(ForceReattemptException.class.getName());
    try {
        createDiskStore(asyncChannelId, diskStoreName);
        AsyncEventListener asyncEventListener = new CustomAsyncEventListener();
        AsyncEventQueueFactory factory = getInitialAsyncEventQueueFactory(isParallel, maxMemory, batchSize, isPersistent, diskStoreName);
        factory.setDispatcherThreads(nDispatchers);
        AsyncEventQueue asyncChannel = factory.create(asyncChannelId, asyncEventListener);
    } finally {
        exp.remove();
    }
}
Also used : ForceReattemptException(org.apache.geode.internal.cache.ForceReattemptException) AsyncEventQueueFactory(org.apache.geode.cache.asyncqueue.AsyncEventQueueFactory) AsyncEventQueue(org.apache.geode.cache.asyncqueue.AsyncEventQueue) IgnoredException(org.apache.geode.test.dunit.IgnoredException) AsyncEventListener(org.apache.geode.cache.asyncqueue.AsyncEventListener)

Example 14 with AsyncEventListener

use of org.apache.geode.cache.asyncqueue.AsyncEventListener in project geode by apache.

the class MyGatewayEventSubstitutionFilter method createAsyncEventQueueWithDiskStore.

public static String createAsyncEventQueueWithDiskStore(String asyncChannelId, boolean isParallel, Integer maxMemory, Integer batchSize, boolean isPersistent, String diskStoreName) {
    AsyncEventListener asyncEventListener = new MyAsyncEventListener();
    File persistentDirectory = null;
    if (diskStoreName == null) {
        persistentDirectory = new File(asyncChannelId + "_disk_" + System.currentTimeMillis() + "_" + VM.getCurrentVMNum());
    } else {
        persistentDirectory = new File(diskStoreName);
    }
    LogWriterUtils.getLogWriter().info("The ds is : " + persistentDirectory.getName());
    persistentDirectory.mkdir();
    DiskStoreFactory dsf = cache.createDiskStoreFactory();
    File[] dirs1 = new File[] { persistentDirectory };
    AsyncEventQueueFactory factory = cache.createAsyncEventQueueFactory();
    factory.setBatchSize(batchSize);
    factory.setParallel(isParallel);
    if (isPersistent) {
        factory.setPersistent(isPersistent);
        factory.setDiskStoreName(dsf.setDiskDirs(dirs1).create(asyncChannelId).getName());
    }
    factory.setMaximumQueueMemory(maxMemory);
    // set dispatcher threads
    factory.setDispatcherThreads(numDispatcherThreadsForTheRun);
    AsyncEventQueue asyncChannel = factory.create(asyncChannelId, asyncEventListener);
    return persistentDirectory.getName();
}
Also used : AsyncEventQueueFactory(org.apache.geode.cache.asyncqueue.AsyncEventQueueFactory) AsyncEventQueue(org.apache.geode.cache.asyncqueue.AsyncEventQueue) File(java.io.File) DiskStoreFactory(org.apache.geode.cache.DiskStoreFactory) AsyncEventListener(org.apache.geode.cache.asyncqueue.AsyncEventListener)

Example 15 with AsyncEventListener

use of org.apache.geode.cache.asyncqueue.AsyncEventListener in project geode by apache.

the class SerialGatewaySenderImpl method fillInProfile.

@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 (org.apache.geode.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();
}
Also used : GatewaySenderProfile(org.apache.geode.internal.cache.wan.GatewaySenderAdvisor.GatewaySenderProfile) GatewayTransportFilter(org.apache.geode.cache.wan.GatewayTransportFilter) AsyncEventListener(org.apache.geode.cache.asyncqueue.AsyncEventListener)

Aggregations

AsyncEventListener (org.apache.geode.cache.asyncqueue.AsyncEventListener)38 AsyncEventQueue (org.apache.geode.cache.asyncqueue.AsyncEventQueue)19 AsyncEventQueueFactory (org.apache.geode.cache.asyncqueue.AsyncEventQueueFactory)10 HashMap (java.util.HashMap)8 Map (java.util.Map)8 Cache (org.apache.geode.cache.Cache)8 Test (org.junit.Test)8 GatewayTransportFilter (org.apache.geode.cache.wan.GatewayTransportFilter)5 CacheCreation (org.apache.geode.internal.cache.xmlcache.CacheCreation)5 RegionAttributesCreation (org.apache.geode.internal.cache.xmlcache.RegionAttributesCreation)5 DistributedTest (org.apache.geode.test.junit.categories.DistributedTest)5 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)4 AsyncEvent (org.apache.geode.cache.asyncqueue.AsyncEvent)4 InternalDistributedSystem (org.apache.geode.distributed.internal.InternalDistributedSystem)4 AbstractGatewaySenderEventProcessor (org.apache.geode.internal.cache.wan.AbstractGatewaySenderEventProcessor)4 GatewaySenderProfile (org.apache.geode.internal.cache.wan.GatewaySenderAdvisor.GatewaySenderProfile)4 WaitCriterion (org.apache.geode.test.dunit.WaitCriterion)3 File (java.io.File)2 IOException (java.io.IOException)2 ArrayList (java.util.ArrayList)2