Beispiel #1
0
        public void TestOp()
        {
            Configuration config = SupportConfigFactory.GetConfiguration();

            config.EngineDefaults.ThreadingConfig.IsInternalTimerEnabled        = false;
            config.EngineDefaults.ExpressionConfig.IsUdfCache                   = false;
            config.EngineDefaults.ThreadingConfig.IsThreadPoolTimerExec         = true;
            config.EngineDefaults.ThreadingConfig.ThreadPoolTimerExecNumThreads = 5;
            config.AddEventType("MyMap", new Dictionary <String, Object>());
            config.AddImport(typeof(SupportStaticMethodLib).FullName);

            EPServiceProvider epService = EPServiceProviderManager.GetDefaultProvider(config);

            epService.Initialize();
            SendTimer(0, epService);

            Log.Debug("Creating statements");
            int countStatements = 100;
            SupportListenerTimerHRes listener = new SupportListenerTimerHRes();

            for (int i = 0; i < countStatements; i++)
            {
                EPStatement stmt = epService.EPAdministrator.CreateEPL("select SupportStaticMethodLib.Sleep(10) from pattern[every MyMap -> timer:interval(1)]");
                stmt.Events += listener.Update;
            }

            Log.Info("Sending trigger event");
            epService.EPRuntime.SendEvent(new Dictionary <String, Object>(), "MyMap");

            long delta = PerformanceObserver.TimeMillis(() => SendTimer(1000, epService));

            Assert.LessOrEqual(delta, 100, "Delta is " + delta);

            // wait for delivery
            while (true)
            {
                int countDelivered = listener.NewEvents.Count;
                if (countDelivered == countStatements)
                {
                    break;
                }

                Log.Info("Delivered " + countDelivered + ", waiting for more");
                Thread.Sleep(200);
            }

            Assert.AreEqual(100, listener.NewEvents.Count);
            // analyze result
            //List<Pair<Long, EventBean[]>> events = listener.NewEvents;
            //OccuranceResult result = OccuranceAnalyzer.Analyze(events, new long[] {100 * 1000 * 1000L, 10*1000 * 1000L});
            //Log.Info(result);
        }
        private void RunAssertionEventsProcessed(EPServiceProvider epService)
        {
            var         listenerOne   = new SupportListenerTimerHRes();
            var         listenerTwo   = new SupportListenerTimerHRes();
            var         listenerThree = new SupportListenerTimerHRes();
            EPStatement stmtOne       = epService.EPAdministrator.CreateEPL("select SupportStaticMethodLib.Sleep(100) from MyMap");

            stmtOne.Events += listenerOne.Update;
            EPStatement stmtTwo = epService.EPAdministrator.CreateEPL("select SupportStaticMethodLib.Sleep(100) from SupportBean");

            stmtTwo.Events += listenerTwo.Update;
            EPStatement stmtThree = epService.EPAdministrator.CreateEPL("select SupportStaticMethodLib.Sleep(100) from XMLType");

            stmtThree.Events += listenerThree.Update;

            EventSender senderOne   = epService.EPRuntime.GetEventSender("MyMap");
            EventSender senderTwo   = epService.EPRuntime.GetEventSender("SupportBean");
            EventSender senderThree = epService.EPRuntime.GetEventSender("XMLType");

            long start = PerformanceObserver.NanoTime;

            for (int i = 0; i < 2; i++)
            {
                epService.EPRuntime.SendEvent(new Dictionary <string, Object>(), "MyMap");
                senderOne.SendEvent(new Dictionary <string, Object>());
                epService.EPRuntime.SendEvent(new SupportBean());
                senderTwo.SendEvent(new SupportBean());
                epService.EPRuntime.SendEvent(SupportXML.GetDocument("<myevent/>"));
                senderThree.SendEvent(SupportXML.GetDocument("<myevent/>"));
            }
            long end   = PerformanceObserver.NanoTime;
            long delta = (end - start) / 1000000;

            Assert.IsTrue(delta < 500);

            Thread.Sleep(1000);
            Assert.AreEqual(4, listenerOne.NewEvents.Count);
            Assert.AreEqual(4, listenerTwo.NewEvents.Count);
            Assert.AreEqual(4, listenerThree.NewEvents.Count);

            EPServiceProviderSPI spi = (EPServiceProviderSPI)epService;

            Assert.AreEqual(0, spi.ThreadingService.InboundQueue.Count);
            Assert.IsNotNull(spi.ThreadingService.InboundThreadPool);

            stmtOne.Dispose();
            stmtTwo.Dispose();
            stmtThree.Dispose();
        }
Beispiel #3
0
        public override void Run(EPServiceProvider epService)
        {
            if (SupportConfigFactory.SkipTest(typeof(ExecClientThreadedConfigTimer)))
            {
                return;
            }
            SendTimer(0, epService);

            Log.Debug("Creating statements");
            int countStatements = 100;
            var listener        = new SupportListenerTimerHRes();

            for (int i = 0; i < countStatements; i++)
            {
                EPStatement stmt = epService.EPAdministrator.CreateEPL("select SupportStaticMethodLib.Sleep(10) from pattern[every MyMap -> timer:interval(1)]");
                stmt.Events += listener.Update;
            }

            Log.Info("Sending trigger event");
            epService.EPRuntime.SendEvent(new Dictionary <string, Object>(), "MyMap");

            long start = PerformanceObserver.NanoTime;

            SendTimer(1000, epService);
            long end   = PerformanceObserver.NanoTime;
            long delta = (end - start) / 1000000;

            Assert.IsTrue(delta < 100, "Delta is " + delta);

            // wait for delivery
            while (true)
            {
                int countDelivered = listener.NewEvents.Count;
                if (countDelivered == countStatements)
                {
                    break;
                }

                Log.Info("Delivered " + countDelivered + ", waiting for more");
                Thread.Sleep(200);
            }

            Assert.AreEqual(100, listener.NewEvents.Count);
            // analyze result
            //List<Pair<long, EventBean[]>> events = listener.NewEvents;
            //OccuranceResult result = OccuranceAnalyzer.Analyze(events, new long[] {100 * 1000 * 1000L, 10*1000 * 1000L});
            //Log.Info(result);
        }
Beispiel #4
0
        public void TestOp()
        {
            Configuration config = SupportConfigFactory.GetConfiguration();

            config.EngineDefaults.ThreadingConfig.IsInternalTimerEnabled        = true;
            config.EngineDefaults.ExpressionConfig.IsUdfCache                   = false;
            config.EngineDefaults.ThreadingConfig.IsThreadPoolRouteExec         = true;
            config.EngineDefaults.ThreadingConfig.ThreadPoolRouteExecNumThreads = 5;
            config.AddEventType <SupportBean>();
            config.AddImport(typeof(SupportStaticMethodLib).FullName);

            EPServiceProvider epService = EPServiceProviderManager.GetDefaultProvider(config);

            epService.Initialize();

            Log.Debug("Creating statements");
            int countStatements = 100;
            SupportListenerTimerHRes listener = new SupportListenerTimerHRes();

            for (int i = 0; i < countStatements; i++)
            {
                EPStatement innerStmt = epService.EPAdministrator.CreateEPL("select SupportStaticMethodLib.Sleep(10) from SupportBean");
                innerStmt.Events += listener.Update;
            }

            Log.Info("Sending trigger event");
            long delta = PerformanceObserver.TimeMillis(() => epService.EPRuntime.SendEvent(new SupportBean()));

            Assert.LessOrEqual(delta, 100, "Delta is " + delta);

            Thread.Sleep(2000);
            Assert.AreEqual(100, listener.NewEvents.Count);
            listener.NewEvents.Clear();

            // destroy all statements
            epService.EPAdministrator.DestroyAllStatements();
            EPStatement stmt = epService.EPAdministrator.CreateEPL("select SupportStaticMethodLib.Sleep(10) from SupportBean, SupportBean");

            stmt.Events += listener.Update;
            epService.EPRuntime.SendEvent(new SupportBean());
            Thread.Sleep(100);
            Assert.AreEqual(1, listener.NewEvents.Count);

            epService.Dispose();
        }
Beispiel #5
0
        public override void Run(EPServiceProvider epService)
        {
            if (SupportConfigFactory.SkipTest(typeof(ExecClientThreadedConfigRoute)))
            {
                return;
            }

            Log.Debug("Creating statements");
            int countStatements = 100;
            var listener        = new SupportListenerTimerHRes();

            for (int i = 0; i < countStatements; i++)
            {
                EPStatement statement = epService.EPAdministrator.CreateEPL("select SupportStaticMethodLib.Sleep(10) from SupportBean");
                statement.Events += listener.Update;
            }

            Log.Info("Sending trigger event");
            long start = PerformanceObserver.NanoTime;

            epService.EPRuntime.SendEvent(new SupportBean());
            long end   = PerformanceObserver.NanoTime;
            long delta = (end - start) / 1000000;

            Assert.IsTrue(delta < 100, "Delta is " + delta);

            Thread.Sleep(2000);
            Assert.AreEqual(100, listener.NewEvents.Count);
            listener.NewEvents.Clear();

            // destroy all statements
            epService.EPAdministrator.DestroyAllStatements();
            EPStatement stmt = epService.EPAdministrator.CreateEPL("select SupportStaticMethodLib.Sleep(10) from SupportBean, SupportBean");

            stmt.Events += listener.Update;
            epService.EPRuntime.SendEvent(new SupportBean());
            Thread.Sleep(100);
            Assert.AreEqual(1, listener.NewEvents.Count);
        }
Beispiel #6
0
        public void TestOp()
        {
            Configuration config = new Configuration();

            config.EngineDefaults.ThreadingConfig.IsInternalTimerEnabled      = false;
            config.EngineDefaults.ThreadingConfig.IsThreadPoolInbound         = true;
            config.EngineDefaults.ThreadingConfig.ThreadPoolInboundNumThreads = 4;
            config.EngineDefaults.ExpressionConfig.IsUdfCache = false;
            config.AddEventType("MyMap", new Dictionary <String, Object>());
            config.AddEventType <SupportBean>();
            config.AddImport(typeof(SupportStaticMethodLib).FullName);

            ConfigurationEventTypeXMLDOM xmlDOMEventTypeDesc = new ConfigurationEventTypeXMLDOM();

            xmlDOMEventTypeDesc.RootElementName = "myevent";
            config.AddEventType("XMLType", xmlDOMEventTypeDesc);

            EPServiceProvider epService = EPServiceProviderManager.GetDefaultProvider(config);

            epService.Initialize();

            SupportListenerTimerHRes listenerOne   = new SupportListenerTimerHRes();
            SupportListenerTimerHRes listenerTwo   = new SupportListenerTimerHRes();
            SupportListenerTimerHRes listenerThree = new SupportListenerTimerHRes();
            EPStatement stmtOne = epService.EPAdministrator.CreateEPL("select SupportStaticMethodLib.Sleep(100) from MyMap");

            stmtOne.Events += listenerOne.Update;
            EPStatement stmtTwo = epService.EPAdministrator.CreateEPL("select SupportStaticMethodLib.Sleep(100) from SupportBean");

            stmtTwo.Events += listenerTwo.Update;
            EPStatement stmtThree = epService.EPAdministrator.CreateEPL("select SupportStaticMethodLib.Sleep(100) from XMLType");

            stmtThree.Events += listenerThree.Update;

            EventSender senderOne   = epService.EPRuntime.GetEventSender("MyMap");
            EventSender senderTwo   = epService.EPRuntime.GetEventSender("SupportBean");
            EventSender senderThree = epService.EPRuntime.GetEventSender("XMLType");

            long delta = PerformanceObserver.TimeMillis(
                delegate
            {
                for (int i = 0; i < 2; i++)
                {
                    epService.EPRuntime.SendEvent(new Dictionary <String, Object>(), "MyMap");
                    senderOne.SendEvent(new Dictionary <String, Object>());
                    epService.EPRuntime.SendEvent(new SupportBean());
                    senderTwo.SendEvent(new SupportBean());
                    epService.EPRuntime.SendEvent(SupportXML.GetDocument("<myevent/>"));
                    senderThree.SendEvent(SupportXML.GetDocument("<myevent/>"));
                }
            });

            Assert.LessOrEqual(delta, 100);

            Thread.Sleep(1000);
            Assert.AreEqual(4, listenerOne.NewEvents.Count);
            Assert.AreEqual(4, listenerTwo.NewEvents.Count);
            Assert.AreEqual(4, listenerThree.NewEvents.Count);

            EPServiceProviderSPI spi = (EPServiceProviderSPI)epService;

            Assert.AreEqual(0, spi.ThreadingService.InboundQueue.Count);
            Assert.NotNull(spi.ThreadingService.InboundThreadPool);

            stmtOne.Dispose();
            stmtTwo.Dispose();
            stmtThree.Dispose();

            epService.Dispose();
        }