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(); }
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); }
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(); }
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); }
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(); }