private void RunAssertion( FilterServiceProfile profile, Configuration configuration) { configuration.Runtime.Execution.FilterServiceProfile = profile; configuration.Common.AddEventType(typeof(MyEvent)); var runtimeURI = GetType().Name + "_" + profile; var runtime = EPRuntimeProvider.GetRuntime(runtimeURI, configuration); var path = new RegressionPath(); var eplContext = "create context MyContext start @now end after 100 milliseconds;\n"; var compiledContext = SupportCompileDeployUtil.Compile(eplContext, configuration, path); SupportCompileDeployUtil.Deploy(compiledContext, runtime); path.Add(compiledContext); var epl = "context MyContext select FieldOne, count(*) as cnt from MyEvent " + "group by FieldOne output last when terminated;\n"; var compiledStmt = SupportCompileDeployUtil.Compile(epl, configuration, path); var listeners = new SupportUpdateListener[100]; for (var i = 0; i < 100; i++) { listeners[i] = new SupportUpdateListener(); var stmtName = "s" + i; SupportCompileDeployUtil.DeployAddListener(compiledStmt, stmtName, listeners[i], runtime); } var eventCount = 100000; // keep this divisible by 1000 for (var i = 0; i < eventCount; i++) { var group = Convert.ToString(eventCount % 1000); runtime.EventService.SendEventBean(new MyEvent(Convert.ToString(i), group), "MyEvent"); } SupportCompileDeployUtil.ThreadSleep(2000); AssertReceived(eventCount, listeners); try { runtime.DeploymentService.UndeployAll(); } catch (EPUndeployException e) { throw new EPException(e); } runtime.Destroy(); }
public ConfigurationRuntimeExecution WithFilterServiceProfile(FilterServiceProfile value) { FilterServiceProfile = value; return this; }
private static void RunAssertionPatternFollowedBy( FilterServiceProfile profile, Configuration config) { config.Common.AddEventType("S0", typeof(SupportBean_S0)); var runtimeURI = typeof(MultithreadStmtPatternFollowedBy).Name + "_" + profile; var runtime = EPRuntimeProvider.GetRuntime(runtimeURI, config); runtime.Initialize(); string[] epls = { "select sa.Id,sb.Id,sc.Id,sd.Id from pattern [(sa=S0(Id=0)->sb=S0(Id=1)) or (sc=S0(Id=1)->sd=S0(Id=0))]", "select sa.Id,sb.Id,sc.Id,sd.Id from pattern [(sa=S0(Id=1)->sb=S0(Id=2)) or (sc=S0(Id=2)->sd=S0(Id=1))]", "select sa.Id,sb.Id,sc.Id,sd.Id from pattern [(sa=S0(Id=2)->sb=S0(Id=3)) or (sc=S0(Id=3)->sd=S0(Id=2))]", "select sa.Id,sb.Id,sc.Id,sd.Id from pattern [(sa=S0(Id=3)->sb=S0(Id=4)) or (sc=S0(Id=4)->sd=S0(Id=3))]", "select sa.Id,sb.Id,sc.Id,sd.Id from pattern [(sa=S0(Id=4)->sb=S0(Id=5)) or (sc=S0(Id=5)->sd=S0(Id=4))]", "select sa.Id,sb.Id,sc.Id,sd.Id from pattern [(sa=S0(Id=5)->sb=S0(Id=6)) or (sc=S0(Id=6)->sd=S0(Id=5))]", "select sa.Id,sb.Id,sc.Id,sd.Id from pattern [(sa=S0(Id=6)->sb=S0(Id=7)) or (sc=S0(Id=7)->sd=S0(Id=6))]", "select sa.Id,sb.Id,sc.Id,sd.Id from pattern [(sa=S0(Id=7)->sb=S0(Id=8)) or (sc=S0(Id=8)->sd=S0(Id=7))]", "select sa.Id,sb.Id,sc.Id,sd.Id from pattern [(sa=S0(Id=8)->sb=S0(Id=9)) or (sc=S0(Id=9)->sd=S0(Id=8))]" }; for (var i = 0; i < 20; i++) { log.Info("i=" + i); var listener = new SupportMTUpdateListener(); var stmts = new EPStatement[epls.Length]; for (var j = 0; j < epls.Length; j++) { var deployed = CompileDeploy(epls[j], runtime, config); stmts[j] = deployed.Statements[0]; stmts[j].AddListener(listener); } int[] threadOneValues = {0, 2, 4, 6, 8}; int[] threadTwoValues = {1, 3, 5, 7, 9}; var threadOne = new Thread(new SenderRunnable(runtime.EventService, threadOneValues).Run); threadOne.Name = typeof(MultithreadStmtPatternFollowedBy).Name + "-one"; var threadTwo = new Thread(new SenderRunnable(runtime.EventService, threadTwoValues).Run); threadTwo.Name = typeof(MultithreadStmtPatternFollowedBy).Name + "-two"; threadOne.Start(); threadTwo.Start(); ThreadJoin(threadOne); ThreadJoin(threadTwo); var events = listener.GetNewDataListFlattened(); /* Comment in to print events delivered. for (int j = 0; j < events.length; j++) { EventBean out = events[j]; /* System.out.println(" sa=" + getNull(out.get("sa.Id")) + " sb=" + getNull(out.get("sb.Id")) + " sc=" + getNull(out.get("sc.Id")) + " sd=" + getNull(out.get("sd.Id"))); } */ Assert.AreEqual(9, events.Length); for (var j = 0; j < epls.Length; j++) { try { runtime.DeploymentService.Undeploy(stmts[j].DeploymentId); } catch (EPUndeployException e) { throw new EPException(e); } } } runtime.Destroy(); }