Search in sources :

Example 31 with CqAttributes

use of org.apache.geode.cache.query.CqAttributes in project geode by apache.

the class CqQueryDUnitTest method validateCQError.

private void validateCQError(VM vm, final String cqName, final int numError) {
    vm.invoke(new CacheSerializableRunnable("Validate CQs") {

        public void run2() throws CacheException {
            LogWriterUtils.getLogWriter().info("### Validating CQ. ### " + cqName);
            // Get CQ Service.
            QueryService cqService = null;
            try {
                cqService = getCache().getQueryService();
            } catch (Exception cqe) {
                cqe.printStackTrace();
                fail("Failed to getCQService.");
            }
            CqQuery cQuery = cqService.getCq(cqName);
            if (cQuery == null) {
                fail("Failed to get CqQuery for CQ : " + cqName);
            }
            CqAttributes cqAttr = cQuery.getCqAttributes();
            CqListener cqListener = cqAttr.getCqListener();
            CqQueryTestListener listener = (CqQueryTestListener) cqListener;
            listener.printInfo(false);
            // Check for totalEvents count.
            if (numError != noTest) {
                // Result size validation.
                listener.printInfo(true);
                assertEquals("Total Event Count mismatch", numError, listener.getErrorEventCount());
            }
        }
    });
}
Also used : CacheSerializableRunnable(org.apache.geode.cache30.CacheSerializableRunnable) CacheException(org.apache.geode.cache.CacheException) DefaultQueryService(org.apache.geode.cache.query.internal.DefaultQueryService) QueryService(org.apache.geode.cache.query.QueryService) CqAttributes(org.apache.geode.cache.query.CqAttributes) CqListener(org.apache.geode.cache.query.CqListener) CqQuery(org.apache.geode.cache.query.CqQuery) CqExistsException(org.apache.geode.cache.query.CqExistsException) RegionNotFoundException(org.apache.geode.cache.query.RegionNotFoundException) CqClosedException(org.apache.geode.cache.query.CqClosedException) IOException(java.io.IOException) CacheException(org.apache.geode.cache.CacheException)

Example 32 with CqAttributes

use of org.apache.geode.cache.query.CqAttributes in project geode by apache.

the class CqPerfUsingPoolDUnitTest method testCQPerf.

/**
   * Tests the cq performance.
   * 
   * @throws Exception
   */
@Ignore("perf")
@Test
public void testCQPerf() throws Exception {
    final Host host = Host.getHost(0);
    VM server = host.getVM(0);
    VM client = host.getVM(1);
    cqDUnitTest.createServer(server);
    final int port = server.invoke(() -> CqQueryUsingPoolDUnitTest.getCacheServerPort());
    final String host0 = NetworkUtils.getServerHostName(server.getHost());
    // Create client.
    cqDUnitTest.createClient(client, port, host0);
    final String cqName = "testCQPerf_0";
    client.invoke(new CacheSerializableRunnable("Create CQ :" + cqName) {

        public void run2() throws CacheException {
            LogWriterUtils.getLogWriter().info("### Create CQ. ###" + cqName);
            // Get CQ Service.
            QueryService cqService = null;
            try {
                cqService = getCache().getQueryService();
            } catch (Exception cqe) {
                cqe.printStackTrace();
                fail("Failed to getCQService.");
            }
            // Create CQ Attributes.
            CqAttributesFactory cqf = new CqAttributesFactory();
            CqListener[] cqListeners = { new CqTimeTestListener(LogWriterUtils.getLogWriter()) };
            ((CqTimeTestListener) cqListeners[0]).cqName = cqName;
            cqf.initCqListeners(cqListeners);
            CqAttributes cqa = cqf.create();
            // Create and Execute CQ.
            try {
                CqQuery cq1 = cqService.newCq(cqName, cqDUnitTest.cqs[0], cqa);
                assertTrue("newCq() state mismatch", cq1.getState().isStopped());
                cq1.execute();
            } catch (Exception ex) {
                LogWriterUtils.getLogWriter().info("CqService is :" + cqService);
                ex.printStackTrace();
                AssertionError err = new AssertionError("Failed to create CQ " + cqName + " . ");
                err.initCause(ex);
                throw err;
            }
        }
    });
    final int size = 50;
    // Create values.
    cqDUnitTest.createValuesWithTime(client, cqDUnitTest.regions[0], size);
    Wait.pause(5000);
    // Update values
    cqDUnitTest.createValuesWithTime(client, cqDUnitTest.regions[0], size);
    client.invoke(new CacheSerializableRunnable("Validate CQs") {

        public void run2() throws CacheException {
            LogWriterUtils.getLogWriter().info("### Validating CQ. ### " + cqName);
            // Get CQ Service.
            QueryService cqService = null;
            try {
                cqService = getCache().getQueryService();
            } catch (Exception cqe) {
                cqe.printStackTrace();
                fail("Failed to getCqService.");
            }
            CqQuery cQuery = cqService.getCq(cqName);
            if (cQuery == null) {
                fail("Failed to get CqQuery for CQ : " + cqName);
            }
        // CqAttributes cqAttr = cQuery.getCqAttributes();
        // CqListener cqListeners[] = cqAttr.getCqListeners();
        // CqTimeTestListener listener = (CqTimeTestListener) cqListeners[0];
        // Wait for all the create to arrive.
        // for (int i=1; i <= size; i++) {
        // listener.waitForCreated(cqDUnitTest.KEY+i);
        // }
        // Wait for all the update to arrive.
        // for (int i=1; i <= size; i++) {
        // listener.waitForUpdated(cqDUnitTest.KEY+i);
        // }
        // getLogWriter().info("### Time taken for Creation of " + size + " events is :" +
        // listener.getTotalQueryCreateTime());
        // getLogWriter().info("### Time taken for Update of " + size + " events is :" +
        // listener.getTotalQueryUpdateTime());
        }
    });
    Wait.pause(10 * 60 * 1000);
    // Close.
    cqDUnitTest.closeClient(client);
    cqDUnitTest.closeServer(server);
}
Also used : CacheException(org.apache.geode.cache.CacheException) Host(org.apache.geode.test.dunit.Host) CacheException(org.apache.geode.cache.CacheException) CacheSerializableRunnable(org.apache.geode.cache30.CacheSerializableRunnable) DefaultQueryService(org.apache.geode.cache.query.internal.DefaultQueryService) QueryService(org.apache.geode.cache.query.QueryService) CqAttributes(org.apache.geode.cache.query.CqAttributes) VM(org.apache.geode.test.dunit.VM) CqAttributesFactory(org.apache.geode.cache.query.CqAttributesFactory) InternalCqQuery(org.apache.geode.cache.query.internal.cq.InternalCqQuery) CqQuery(org.apache.geode.cache.query.CqQuery) Ignore(org.junit.Ignore) Test(org.junit.Test) DistributedTest(org.apache.geode.test.junit.categories.DistributedTest)

Example 33 with CqAttributes

use of org.apache.geode.cache.query.CqAttributes in project geode by apache.

the class CqQueryDUnitTest method mutateCQAttributes.

// Exercise CQ attributes mutator functions
private void mutateCQAttributes(VM vm, final String cqName, final int mutator_function) throws Exception {
    vm.invoke(new CacheSerializableRunnable("Stop CQ :" + cqName) {

        public void run2() throws CacheException {
            CqQuery cq1 = null;
            LogWriterUtils.getLogWriter().info("### CQ attributes mutator for ###" + cqName);
            // Get CQ Service.
            QueryService cqService = null;
            try {
                cqService = getCache().getQueryService();
            } catch (Exception cqe) {
                cqe.printStackTrace();
                fail("Failed to getCQService.");
            }
            // Get CQ.
            try {
                cq1 = cqService.getCq(cqName);
            } catch (Exception ex) {
                ex.printStackTrace();
                fail("Failed to get CQ " + cqName + " . " + ex.getMessage());
            }
            CqAttributesMutator cqAttrMutator = cq1.getCqAttributesMutator();
            CqAttributes cqAttr = cq1.getCqAttributes();
            CqListener[] cqListeners;
            switch(mutator_function) {
                case CREATE:
                    // Reinitialize with 2 CQ Listeners
                    CqListener[] cqListenersArray = { new CqQueryTestListener(getCache().getLogger()), new CqQueryTestListener(getCache().getLogger()) };
                    cqAttrMutator.initCqListeners(cqListenersArray);
                    cqListeners = cqAttr.getCqListeners();
                    assertEquals("CqListener count mismatch", cqListeners.length, 2);
                    break;
                case UPDATE:
                    // Add 2 new CQ Listeners
                    CqListener newListener1 = new CqQueryTestListener(getCache().getLogger());
                    CqListener newListener2 = new CqQueryTestListener(getCache().getLogger());
                    cqAttrMutator.addCqListener(newListener1);
                    cqAttrMutator.addCqListener(newListener2);
                    cqListeners = cqAttr.getCqListeners();
                    assertEquals("CqListener count mismatch", cqListeners.length, 3);
                    break;
                case DESTROY:
                    cqListeners = cqAttr.getCqListeners();
                    cqAttrMutator.removeCqListener(cqListeners[0]);
                    cqListeners = cqAttr.getCqListeners();
                    assertEquals("CqListener count mismatch", cqListeners.length, 2);
                    // Remove a listener and validate
                    cqAttrMutator.removeCqListener(cqListeners[0]);
                    cqListeners = cqAttr.getCqListeners();
                    assertEquals("CqListener count mismatch", cqListeners.length, 1);
                    break;
            }
        }
    });
}
Also used : CacheSerializableRunnable(org.apache.geode.cache30.CacheSerializableRunnable) CacheException(org.apache.geode.cache.CacheException) DefaultQueryService(org.apache.geode.cache.query.internal.DefaultQueryService) QueryService(org.apache.geode.cache.query.QueryService) CqAttributes(org.apache.geode.cache.query.CqAttributes) CqListener(org.apache.geode.cache.query.CqListener) CqQuery(org.apache.geode.cache.query.CqQuery) CqAttributesMutator(org.apache.geode.cache.query.CqAttributesMutator) CqExistsException(org.apache.geode.cache.query.CqExistsException) RegionNotFoundException(org.apache.geode.cache.query.RegionNotFoundException) CqClosedException(org.apache.geode.cache.query.CqClosedException) IOException(java.io.IOException) CacheException(org.apache.geode.cache.CacheException)

Example 34 with CqAttributes

use of org.apache.geode.cache.query.CqAttributes in project geode by apache.

the class CqQueryDUnitTest method waitForError.

private void waitForError(VM vm, final String cqName, final String errorMessage) {
    vm.invoke(new CacheSerializableRunnable("validate cq count") {

        public void run2() throws CacheException {
            QueryService cqService = null;
            try {
                cqService = getCache().getQueryService();
            } catch (Exception cqe) {
                cqe.printStackTrace();
                fail("Failed to getCQService.");
            }
            CqQuery cQuery = cqService.getCq(cqName);
            if (cQuery == null) {
                fail("Failed to get CqQuery for CQ : " + cqName);
            }
            CqAttributes cqAttr = cQuery.getCqAttributes();
            CqListener[] cqListener = cqAttr.getCqListeners();
            CqQueryTestListener listener = (CqQueryTestListener) cqListener[0];
            listener.waitForError(errorMessage);
        }
    });
}
Also used : CacheSerializableRunnable(org.apache.geode.cache30.CacheSerializableRunnable) CacheException(org.apache.geode.cache.CacheException) DefaultQueryService(org.apache.geode.cache.query.internal.DefaultQueryService) QueryService(org.apache.geode.cache.query.QueryService) CqAttributes(org.apache.geode.cache.query.CqAttributes) CqQuery(org.apache.geode.cache.query.CqQuery) CqExistsException(org.apache.geode.cache.query.CqExistsException) RegionNotFoundException(org.apache.geode.cache.query.RegionNotFoundException) CqClosedException(org.apache.geode.cache.query.CqClosedException) IOException(java.io.IOException) CacheException(org.apache.geode.cache.CacheException)

Example 35 with CqAttributes

use of org.apache.geode.cache.query.CqAttributes in project geode by apache.

the class CqQueryDUnitTest method createAndExecCQNoName.

/* Register CQs with no name, execute, and close */
public void createAndExecCQNoName(VM vm, final String queryStr) {
    vm.invoke(new CacheSerializableRunnable("Create CQ with no name:") {

        public void run2() throws CacheException {
            // pause(60 * 1000);
            LogWriterUtils.getLogWriter().info("### DEBUG CREATE CQ START ####");
            // pause(20 * 1000);
            LogWriterUtils.getLogWriter().info("### Create CQ with no name. ###");
            // Get CQ Service.
            QueryService cqService = null;
            CqQuery cq1 = null;
            String cqName = null;
            try {
                cqService = getCache().getQueryService();
            } catch (Exception cqe) {
                cqe.printStackTrace();
                fail("Failed to getCQService.");
            }
            SelectResults cqResults = null;
            for (int i = 0; i < 20; ++i) {
                // Create CQ Attributes.
                CqAttributesFactory cqf = new CqAttributesFactory();
                CqListener[] cqListeners = { new CqQueryTestListener(LogWriterUtils.getLogWriter()) };
                cqf.initCqListeners(cqListeners);
                CqAttributes cqa = cqf.create();
                // Create CQ with no name and execute with initial results.
                try {
                    cq1 = cqService.newCq(queryStr, cqa);
                    ((CqQueryTestListener) cqListeners[0]).cqName = cq1.getName();
                } catch (Exception ex) {
                    LogWriterUtils.getLogWriter().info("CQService is :" + cqService);
                    ex.printStackTrace();
                    fail("Failed to create CQ with no name" + " . " + ex.getMessage());
                }
                if (cq1 == null) {
                    LogWriterUtils.getLogWriter().info("Failed to get CqQuery object for CQ with no name.");
                } else {
                    cqName = cq1.getName();
                    LogWriterUtils.getLogWriter().info("Created CQ with no name, generated CQ name: " + cqName + " CQ state:" + cq1.getState());
                    assertTrue("Create CQ with no name illegal state", cq1.getState().isStopped());
                }
                if (i % 2 == 0) {
                    try {
                        cqResults = cq1.executeWithInitialResults();
                    } catch (Exception ex) {
                        LogWriterUtils.getLogWriter().info("CqService is :" + cqService);
                        ex.printStackTrace();
                        fail("Failed to execute CQ with initial results, cq name: " + cqName + " . " + ex.getMessage());
                    }
                    LogWriterUtils.getLogWriter().info("initial result size = " + cqResults.size());
                    LogWriterUtils.getLogWriter().info("CQ state after execute with initial results = " + cq1.getState());
                    assertTrue("executeWithInitialResults() state mismatch", cq1.getState().isRunning());
                } else {
                    try {
                        cq1.execute();
                    } catch (Exception ex) {
                        LogWriterUtils.getLogWriter().info("CQService is :" + cqService);
                        ex.printStackTrace();
                        fail("Failed to execute CQ " + cqName + " . " + ex.getMessage());
                    }
                    LogWriterUtils.getLogWriter().info("CQ state after execute = " + cq1.getState());
                    assertTrue("execute() state mismatch", cq1.getState().isRunning());
                }
                // Close the CQ
                try {
                    cq1.close();
                } catch (Exception ex) {
                    LogWriterUtils.getLogWriter().info("CqService is :" + cqService, ex);
                    fail("Failed to close CQ " + cqName + " . " + ex.getMessage());
                }
                assertTrue("closeCq() state mismatch", cq1.getState().isClosed());
            }
        }
    });
}
Also used : SelectResults(org.apache.geode.cache.query.SelectResults) CacheSerializableRunnable(org.apache.geode.cache30.CacheSerializableRunnable) CacheException(org.apache.geode.cache.CacheException) DefaultQueryService(org.apache.geode.cache.query.internal.DefaultQueryService) QueryService(org.apache.geode.cache.query.QueryService) CqAttributes(org.apache.geode.cache.query.CqAttributes) CqAttributesFactory(org.apache.geode.cache.query.CqAttributesFactory) CqQuery(org.apache.geode.cache.query.CqQuery) CqExistsException(org.apache.geode.cache.query.CqExistsException) RegionNotFoundException(org.apache.geode.cache.query.RegionNotFoundException) CqClosedException(org.apache.geode.cache.query.CqClosedException) IOException(java.io.IOException) CacheException(org.apache.geode.cache.CacheException)

Aggregations

CqAttributes (org.apache.geode.cache.query.CqAttributes)40 QueryService (org.apache.geode.cache.query.QueryService)36 CqQuery (org.apache.geode.cache.query.CqQuery)35 CqAttributesFactory (org.apache.geode.cache.query.CqAttributesFactory)31 CacheException (org.apache.geode.cache.CacheException)25 CacheSerializableRunnable (org.apache.geode.cache30.CacheSerializableRunnable)23 CqExistsException (org.apache.geode.cache.query.CqExistsException)18 IOException (java.io.IOException)16 RegionNotFoundException (org.apache.geode.cache.query.RegionNotFoundException)16 DefaultQueryService (org.apache.geode.cache.query.internal.DefaultQueryService)15 CqListener (org.apache.geode.cache.query.CqListener)14 Test (org.junit.Test)14 DistributedTest (org.apache.geode.test.junit.categories.DistributedTest)13 CqClosedException (org.apache.geode.cache.query.CqClosedException)12 Region (org.apache.geode.cache.Region)10 CqEvent (org.apache.geode.cache.query.CqEvent)8 Host (org.apache.geode.test.dunit.Host)8 VM (org.apache.geode.test.dunit.VM)8 SelectResults (org.apache.geode.cache.query.SelectResults)7 CqQueryTestListener (org.apache.geode.cache.query.cq.dunit.CqQueryTestListener)7