В настоящее время я пытаюсь объединить несколько операторов EPL с Esper CEP 8 в Java.Когда я читаю отдельные EPL в EPCompile, все они работают так, как будто они включены.Например:
String EPL1 ="@name('EPA12') select * from IEvent where j>3;\n";
Но когда я пытаюсь прочитать несколько EPL-операций одновременно, рассматривается только первая.Например, если я попробую следующее утверждение, оно только проверяет j> 3 и CEP печатает все события для него.Но i> 4 (EPA13) не проверяется.
String EPLnotworking ="@name('EPA12') insert into EPA12 select * from IEvent where j>3;\n"+
"@name('EPA13') select * from EPA12 where i> 4;";
Компиляция на Java работает без проблем.Возможно ли, что я смоделировал мою проблему неправильно?
Configuration configuration = new Configuration();
configuration.getCommon().addEventType(IEvent.class);
String EPLnotworking ="@name('EPA12') insert into EPA12 select * from IEvent where j>3;\n"+
"@name('EPA13') select * from EPA12 where i> 4;";
EPCompiled compiled = EPCompilerProvider.getCompiler().compile(EPLnotworking, new CompilerArguments(configuration));
runtime = EPRuntimeProvider.getDefaultRuntime(configuration);
DeploymentOptions deploymentOptions = new DeploymentOptions().setDeploymentId("IEvent");
EPStatement stmt = runtime.getDeploymentService().deploy(compiled, deploymentOptions).getStatements()[0];
stmt.addListener(new UpdateListener() {
public void update(EventBean[] newEvents, EventBean[] oldEvents, EPStatement statement, EPRuntime runtime) {
if (newEvents == null) {
return;
}
for (EventBean event : newEvents) {
System.out.println(event.get("i"));
System.out.println(event.get("j"));
}
}
});
public void run() {
//recieve Events
IEvent test = new IEvent();
// test.setI(received);
runtime.getEventService().sendEventBean(test, "IEvent");
}
Я заметил, что CEP генерирует вывод даже со значениями i = <4.</p>
Кто-нибудь знает, где проблема?Заранее спасибо