Search in sources :

Example 1 with Region

use of org.apache.geode.cache.Region in project geode by apache.

the class CqQueryDUnitTest method performGC.

private void performGC(VM server, final String regionName) {
    SerializableRunnable task = new CacheSerializableRunnable("perform GC") {

        public void run2() throws CacheException {
            Region subregion = getCache().getRegion("root/" + regionName);
            DistributedTombstoneOperation gc = DistributedTombstoneOperation.gc((DistributedRegion) subregion, new EventID(getCache().getDistributedSystem()));
            gc.distribute();
        }
    };
    server.invoke(task);
}
Also used : CacheSerializableRunnable(org.apache.geode.cache30.CacheSerializableRunnable) DistributedTombstoneOperation(org.apache.geode.internal.cache.DistributedTombstoneOperation) SerializableRunnable(org.apache.geode.test.dunit.SerializableRunnable) CacheSerializableRunnable(org.apache.geode.cache30.CacheSerializableRunnable) DistributedRegion(org.apache.geode.internal.cache.DistributedRegion) Region(org.apache.geode.cache.Region) EventID(org.apache.geode.internal.cache.EventID)

Example 2 with Region

use of org.apache.geode.cache.Region in project geode by apache.

the class CqQueryDUnitTest method testRegionDestroy.

/**
   * This will test the events after region destory. The CQs on the destroy region needs to be
   * closed.
   *
   */
@Test
public void testRegionDestroy() throws Exception {
    final Host host = Host.getHost(0);
    VM server = host.getVM(0);
    VM client = host.getVM(1);
    /* Init Server and Client */
    createServer(server);
    final int thePort = server.invoke(() -> CqQueryDUnitTest.getCacheServerPort());
    final String host0 = NetworkUtils.getServerHostName(server.getHost());
    createClient(client, thePort, host0);
    /* Create CQs. */
    createCQ(client, "testRegionDestroy_0", cqs[0]);
    createCQ(client, "testRegionDestroy_1", cqs[0]);
    createCQ(client, "testRegionDestroy_2", cqs[0]);
    executeCQ(client, "testRegionDestroy_0", false, null);
    executeCQ(client, "testRegionDestroy_1", false, null);
    executeCQ(client, "testRegionDestroy_2", false, null);
    /* Init values at server. */
    final int size = 10;
    registerInterestListCQ(client, regions[0], size);
    createValues(server, regions[0], size);
    // Wait for client to Synch.
    waitForCreated(client, "testRegionDestroy_0", KEY + 10);
    // validate CQs.
    validateCQ(client, "testRegionDestroy_0", /* resultSize: */
    noTest, /* creates: */
    size, /* updates: */
    noTest, /* deletes; */
    noTest, /* queryInserts: */
    size, /* queryUpdates: */
    0, /* queryDeletes: */
    0, /* totalEvents: */
    size);
    // Validate InterestList.
    // CREATE
    client.invoke(new CacheSerializableRunnable("validate updates") {

        public void run2() throws CacheException {
            Region region = getRootRegion().getSubregion(regions[0]);
            assertNotNull(region);
            Set keys = region.entrySet();
            assertEquals("Mismatch, number of keys in local region is not equal to the interest list size", size, keys.size());
            CertifiableTestCacheListener ctl = (CertifiableTestCacheListener) region.getAttributes().getCacheListener();
            for (int i = 1; i <= 10; i++) {
                ctl.waitForCreated(KEY + i);
                assertNotNull(region.getEntry(KEY + i));
            }
        }
    });
    // Destroy Region.
    server.invoke(new CacheSerializableRunnable("Destroy Region") {

        public void run2() throws CacheException {
            Region region1 = getRootRegion().getSubregion(regions[0]);
            region1.destroyRegion();
        }
    });
    Wait.pause(4 * 1000);
    validateCQCount(client, 0);
    closeClient(client);
    closeServer(server);
}
Also used : Set(java.util.Set) CacheSerializableRunnable(org.apache.geode.cache30.CacheSerializableRunnable) CacheException(org.apache.geode.cache.CacheException) VM(org.apache.geode.test.dunit.VM) CertifiableTestCacheListener(org.apache.geode.cache30.CertifiableTestCacheListener) DistributedRegion(org.apache.geode.internal.cache.DistributedRegion) Region(org.apache.geode.cache.Region) Host(org.apache.geode.test.dunit.Host) DistributedTest(org.apache.geode.test.junit.categories.DistributedTest) Test(org.junit.Test)

Example 3 with Region

use of org.apache.geode.cache.Region in project geode by apache.

the class CqQueryDUnitTest method testInterestListAndCQs.

/**
   * Test for InterestList and CQ registered from same clients.
   * 
   * @throws Exception
   */
@Test
public void testInterestListAndCQs() throws Exception {
    final Host host = Host.getHost(0);
    VM server = host.getVM(0);
    VM client = host.getVM(1);
    /* Init Server and Client */
    createServer(server);
    final int thePort = server.invoke(() -> CqQueryDUnitTest.getCacheServerPort());
    final String host0 = NetworkUtils.getServerHostName(server.getHost());
    createClient(client, thePort, host0);
    /* Create CQs. */
    createCQ(client, "testInterestListAndCQs_0", cqs[0]);
    validateCQCount(client, 1);
    /* Init values at server. */
    final int size = 10;
    executeCQ(client, "testInterestListAndCQs_0", false, null);
    registerInterestListCQ(client, regions[0], size);
    createValues(server, regions[0], size);
    for (int i = 1; i <= 10; i++) {
        waitForCreated(client, "testInterestListAndCQs_0", KEY + i);
    }
    // validate CQs.
    validateCQ(client, "testInterestListAndCQs_0", /* resultSize: */
    noTest, /* creates: */
    size, /* updates: */
    noTest, /* deletes; */
    noTest, /* queryInserts: */
    size, /* queryUpdates: */
    0, /* queryDeletes: */
    0, /* totalEvents: */
    size);
    // Validate InterestList.
    // CREATE
    client.invoke(new CacheSerializableRunnable("validate updates") {

        public void run2() throws CacheException {
            Region region = getRootRegion().getSubregion(regions[0]);
            assertNotNull(region);
            Set keys = region.entrySet();
            assertEquals("Mismatch, number of keys in local region is not equal to the interest list size", size, keys.size());
            CertifiableTestCacheListener ctl = (CertifiableTestCacheListener) region.getAttributes().getCacheListener();
            for (int i = 1; i <= 10; i++) {
                ctl.waitForCreated(KEY + i);
                assertNotNull(region.getEntry(KEY + i));
            }
        }
    });
    // UPDATE
    createValues(server, regions[0], size);
    // Wait for client to Synch.
    for (int i = 1; i <= 10; i++) {
        waitForUpdated(client, "testInterestListAndCQs_0", KEY + i);
    }
    client.invoke(new CacheSerializableRunnable("validate updates") {

        public void run2() throws CacheException {
            Region region = getRootRegion().getSubregion(regions[0]);
            assertNotNull(region);
            Set keys = region.entrySet();
            assertEquals("Mismatch, number of keys in local region is not equal to the interest list size", size, keys.size());
            CertifiableTestCacheListener ctl = (CertifiableTestCacheListener) region.getAttributes().getCacheListener();
            for (int i = 1; i <= 10; i++) {
                ctl.waitForUpdated(KEY + i);
                assertNotNull(region.getEntry(KEY + i));
            }
        }
    });
    // INVALIDATE
    server.invoke(new CacheSerializableRunnable("Invalidate values") {

        public void run2() throws CacheException {
            Region region1 = getRootRegion().getSubregion(regions[0]);
            for (int i = 1; i <= size; i++) {
                region1.invalidate(KEY + i);
            }
        }
    });
    waitForInvalidated(client, "testInterestListAndCQs_0", KEY + 10);
    client.invoke(new CacheSerializableRunnable("validate invalidates") {

        public void run2() throws CacheException {
            Region region = getRootRegion().getSubregion(regions[0]);
            assertNotNull(region);
            Set keys = region.entrySet();
            assertEquals("Mismatch, number of keys in local region is not equal to the interest list size", size, keys.size());
            CertifiableTestCacheListener ctl = (CertifiableTestCacheListener) region.getAttributes().getCacheListener();
            for (int i = 1; i <= 10; i++) {
                ctl.waitForInvalidated(KEY + i);
                assertNotNull(region.getEntry(KEY + i));
            }
        }
    });
    validateCQ(client, "testInterestListAndCQs_0", /* resultSize: */
    noTest, /* creates: */
    size, /* updates: */
    size, /* deletes; */
    noTest, /* queryInserts: */
    size, /* queryUpdates: */
    size, /* queryDeletes: */
    size, /* totalEvents: */
    size * 3);
    // DESTROY - this should not have any effect on CQ, as the events are
    // already destroyed from invalidate events.
    server.invoke(new CacheSerializableRunnable("Invalidate values") {

        public void run2() throws CacheException {
            Region region1 = getRootRegion().getSubregion(regions[0]);
            for (int i = 1; i <= size; i++) {
                region1.destroy(KEY + i);
            }
        }
    });
    // Wait for destroyed.
    client.invoke(new CacheSerializableRunnable("validate destroys") {

        public void run2() throws CacheException {
            Region region = getRootRegion().getSubregion(regions[0]);
            assertNotNull(region);
            CertifiableTestCacheListener ctl = (CertifiableTestCacheListener) region.getAttributes().getCacheListener();
            for (int i = 1; i <= 10; i++) {
                ctl.waitForDestroyed(KEY + i);
            }
        }
    });
    validateCQ(client, "testInterestListAndCQs_0", /* resultSize: */
    noTest, /* creates: */
    size, /* updates: */
    size, /* deletes; */
    noTest, /* queryInserts: */
    size, /* queryUpdates: */
    size, /* queryDeletes: */
    size, /* totalEvents: */
    size * 3);
    closeClient(client);
    closeServer(server);
}
Also used : Set(java.util.Set) CacheSerializableRunnable(org.apache.geode.cache30.CacheSerializableRunnable) CacheException(org.apache.geode.cache.CacheException) VM(org.apache.geode.test.dunit.VM) CertifiableTestCacheListener(org.apache.geode.cache30.CertifiableTestCacheListener) DistributedRegion(org.apache.geode.internal.cache.DistributedRegion) Region(org.apache.geode.cache.Region) Host(org.apache.geode.test.dunit.Host) DistributedTest(org.apache.geode.test.junit.categories.DistributedTest) Test(org.junit.Test)

Example 4 with Region

use of org.apache.geode.cache.Region in project geode by apache.

the class CqQueryOptimizedExecuteDUnitTest method testCqExecuteWithoutQueryExecutionAndNoRSCaching.

@Test
public void testCqExecuteWithoutQueryExecutionAndNoRSCaching() throws Exception {
    final Host host = Host.getHost(0);
    final VM server = host.getVM(0);
    final VM client = host.getVM(1);
    final int numOfEntries = 10;
    final String cqName = "testCqExecuteWithoutQueryExecution_1";
    server.invoke(new CacheSerializableRunnable("execute cq") {

        public void run2() throws CacheException {
            CqServiceProvider.MAINTAIN_KEYS = false;
        }
    });
    createServer(server);
    // Create values.
    createValues(server, regions[0], numOfEntries);
    final int thePort = server.invoke(() -> CqQueryDUnitTest.getCacheServerPort());
    final String host0 = NetworkUtils.getServerHostName(server.getHost());
    // Create client.
    createClient(client, thePort, host0);
    /* Create CQs. */
    createCQ(client, cqName, cqs[0]);
    validateCQCount(client, 1);
    executeCQ(client, cqName, false, null);
    server.invoke(new CacheSerializableRunnable("execute cq") {

        public void run2() throws CacheException {
            assertFalse("CqServiceImpl.EXECUTE_QUERY_DURING_INIT flag should be false ", CqServiceImpl.EXECUTE_QUERY_DURING_INIT);
            assertFalse(DistributionConfig.GEMFIRE_PREFIX + "cq.MAINTAIN_KEYS flag should be false ", CqServiceProvider.MAINTAIN_KEYS);
            int numOfQueryExecutions = (Integer) ((GemFireCacheImpl) getCache()).getCachePerfStats().getStats().get("queryExecutions");
            assertEquals("Number of query executions for cq.execute should be 0 ", 0, numOfQueryExecutions);
        }
    });
    // Create more values.
    server.invoke(new CacheSerializableRunnable("Create values") {

        public void run2() throws CacheException {
            Region region1 = getRootRegion().getSubregion(regions[0]);
            for (int i = numOfEntries + 1; i <= numOfEntries * 2; i++) {
                region1.put(KEY + i, new Portfolio(i));
            }
            LogWriterUtils.getLogWriter().info("### Number of Entries in Region :" + region1.keySet().size());
        }
    });
    waitForCreated(client, cqName, KEY + numOfEntries * 2);
    validateCQ(client, cqName, /* resultSize: */
    noTest, /* creates: */
    numOfEntries, /* updates: */
    0, /* deletes; */
    0, /* queryInserts: */
    numOfEntries, /* queryUpdates: */
    0, /* queryDeletes: */
    0, /* totalEvents: */
    numOfEntries);
    // Update values.
    createValues(server, regions[0], 5);
    createValues(server, regions[0], 10);
    waitForUpdated(client, cqName, KEY + numOfEntries);
    // validate Update events.
    validateCQ(client, cqName, /* resultSize: */
    noTest, /* creates: */
    numOfEntries, /* updates: */
    15, /* deletes; */
    0, /* queryInserts: */
    numOfEntries, /* queryUpdates: */
    15, /* queryDeletes: */
    0, /* totalEvents: */
    numOfEntries + 15);
    // Validate delete events.
    deleteValues(server, regions[0], 5);
    waitForDestroyed(client, cqName, KEY + 5);
    validateCQ(client, cqName, /* resultSize: */
    noTest, /* creates: */
    numOfEntries, /* updates: */
    15, /* deletes; */
    5, /* queryInserts: */
    numOfEntries, /* queryUpdates: */
    15, /* queryDeletes: */
    5, /* totalEvents: */
    numOfEntries + 15 + 5);
    closeClient(client);
    closeServer(server);
}
Also used : CacheSerializableRunnable(org.apache.geode.cache30.CacheSerializableRunnable) CacheException(org.apache.geode.cache.CacheException) Portfolio(org.apache.geode.cache.query.data.Portfolio) GemFireCacheImpl(org.apache.geode.internal.cache.GemFireCacheImpl) Region(org.apache.geode.cache.Region) Test(org.junit.Test) DistributedTest(org.apache.geode.test.junit.categories.DistributedTest)

Example 5 with Region

use of org.apache.geode.cache.Region in project geode by apache.

the class CqQueryOptimizedExecuteDUnitTest method testCqExecuteWithoutQueryExecution.

@Test
public void testCqExecuteWithoutQueryExecution() throws Exception {
    final Host host = Host.getHost(0);
    final VM server = host.getVM(0);
    final VM client = host.getVM(1);
    final int numOfEntries = 10;
    final String cqName = "testCqExecuteWithoutQueryExecution_1";
    createServer(server);
    // Create values.
    createValues(server, regions[0], numOfEntries);
    final int thePort = server.invoke(() -> CqQueryDUnitTest.getCacheServerPort());
    final String host0 = NetworkUtils.getServerHostName(server.getHost());
    // Create client.
    createClient(client, thePort, host0);
    /* Create CQs. */
    createCQ(client, cqName, cqs[0]);
    validateCQCount(client, 1);
    executeCQ(client, cqName, false, null);
    server.invoke(new CacheSerializableRunnable("execute cq") {

        public void run2() throws CacheException {
            assertFalse("CqServiceImpl.EXECUTE_QUERY_DURING_INIT flag should be false ", CqServiceImpl.EXECUTE_QUERY_DURING_INIT);
            int numOfQueryExecutions = (Integer) ((GemFireCacheImpl) getCache()).getCachePerfStats().getStats().get("queryExecutions");
            assertEquals("Number of query executions for cq.execute should be 0 ", 0, numOfQueryExecutions);
        }
    });
    // Create more values.
    server.invoke(new CacheSerializableRunnable("Create values") {

        public void run2() throws CacheException {
            Region region1 = getRootRegion().getSubregion(regions[0]);
            for (int i = numOfEntries + 1; i <= numOfEntries * 2; i++) {
                region1.put(KEY + i, new Portfolio(i));
            }
            LogWriterUtils.getLogWriter().info("### Number of Entries in Region :" + region1.keySet().size());
        }
    });
    waitForCreated(client, cqName, KEY + numOfEntries * 2);
    validateCQ(client, cqName, /* resultSize: */
    noTest, /* creates: */
    numOfEntries, /* updates: */
    0, /* deletes; */
    0, /* queryInserts: */
    numOfEntries, /* queryUpdates: */
    0, /* queryDeletes: */
    0, /* totalEvents: */
    numOfEntries);
    // Update values.
    createValues(server, regions[0], 5);
    createValues(server, regions[0], 10);
    waitForUpdated(client, cqName, KEY + numOfEntries);
    // validate Update events.
    validateCQ(client, cqName, /* resultSize: */
    noTest, /* creates: */
    numOfEntries, /* updates: */
    15, /* deletes; */
    0, /* queryInserts: */
    numOfEntries, /* queryUpdates: */
    15, /* queryDeletes: */
    0, /* totalEvents: */
    numOfEntries + 15);
    // Validate delete events.
    deleteValues(server, regions[0], 5);
    waitForDestroyed(client, cqName, KEY + 5);
    validateCQ(client, cqName, /* resultSize: */
    noTest, /* creates: */
    numOfEntries, /* updates: */
    15, /* deletes; */
    5, /* queryInserts: */
    numOfEntries, /* queryUpdates: */
    15, /* queryDeletes: */
    5, /* totalEvents: */
    numOfEntries + 15 + 5);
    closeClient(client);
    closeServer(server);
}
Also used : CacheSerializableRunnable(org.apache.geode.cache30.CacheSerializableRunnable) CacheException(org.apache.geode.cache.CacheException) Portfolio(org.apache.geode.cache.query.data.Portfolio) GemFireCacheImpl(org.apache.geode.internal.cache.GemFireCacheImpl) Region(org.apache.geode.cache.Region) Test(org.junit.Test) DistributedTest(org.apache.geode.test.junit.categories.DistributedTest)

Aggregations

Region (org.apache.geode.cache.Region)2509 Test (org.junit.Test)1312 DistributedTest (org.apache.geode.test.junit.categories.DistributedTest)669 LocalRegion (org.apache.geode.internal.cache.LocalRegion)616 PartitionedRegion (org.apache.geode.internal.cache.PartitionedRegion)595 VM (org.apache.geode.test.dunit.VM)567 AttributesFactory (org.apache.geode.cache.AttributesFactory)565 Host (org.apache.geode.test.dunit.Host)497 Cache (org.apache.geode.cache.Cache)476 CacheException (org.apache.geode.cache.CacheException)472 IntegrationTest (org.apache.geode.test.junit.categories.IntegrationTest)386 SerializableRunnable (org.apache.geode.test.dunit.SerializableRunnable)352 CacheSerializableRunnable (org.apache.geode.cache30.CacheSerializableRunnable)342 SelectResults (org.apache.geode.cache.query.SelectResults)340 QueryService (org.apache.geode.cache.query.QueryService)320 Query (org.apache.geode.cache.query.Query)302 Portfolio (org.apache.geode.cache.query.data.Portfolio)300 FlakyTest (org.apache.geode.test.junit.categories.FlakyTest)282 PartitionAttributesFactory (org.apache.geode.cache.PartitionAttributesFactory)267 RegionAttributes (org.apache.geode.cache.RegionAttributes)256