[overlord-issues] [JBoss JIRA] (RTGOV-393) DroolsEventProcessor. Support Drools STREAM and CLOUD event processing

Gary Brown (JIRA) issues at jboss.org
Thu Apr 3 10:59:14 EDT 2014


    [ https://issues.jboss.org/browse/RTGOV-393?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12958990#comment-12958990 ] 

Gary Brown commented on RTGOV-393:
----------------------------------

The reason for the change was due to some dependency issues with the new api, which may have been resolved now.

Wanted to get your thoughts on the benefit of cloud vs stream mode, and whether it is beneficial for the user to be able to select between them - or is it better to just use stream?

My main problem with supporting any correlation of events within a drools cep session is that they are not clustered - so if events are handled by different servers in a cluster, then the rule will fail.

                
> DroolsEventProcessor. Support Drools STREAM and CLOUD event processing
> ----------------------------------------------------------------------
>
>                 Key: RTGOV-393
>                 URL: https://issues.jboss.org/browse/RTGOV-393
>             Project: RTGov (Run Time Governance)
>          Issue Type: Feature Request
>          Components: Event Processor
>            Reporter: ivan mckinley
>            Assignee: Gary Brown
>             Fix For: 2.1.0.Final
>
>
> When attempting to using sliding window rules, see[1]. Results in a runtime exception as the DroolsEventprocessor does not support a Stream of events. 
> Recommend fix is making the DroolsEventprocessor configurable from the EPN to use either stream or cloud. 
> http://docs.jboss.org/jbpm/v6.0.1/javadocs/org/kie/api/builder/model/KieBaseModel.html#setEventProcessingMode(org.kie.api.conf.EventProcessingOption)
> Browsing through the history shows this functionality was removed.
> https://github.com/Governance/rtgov/commit/43c81c8a4a1702ad43ec42a9dff7be8ae57018fd#diff-f6be73565fb61bfda14a8ad1165ee70e
> [1]
> rule "Sliding widow rule"
> when
>      Number( doubleValue > 2 ) from accumulate(
>         Situation( $t : properties["customer"] == 'Ivan' ) over window:time( 5m )  , count($t)
>          )
> then
>     	epc.logError("\r\n\r\n**** SUPERRRRRRRR  ****\r\n");
> end
> [2]
> 14:20:42,970 SEVERE [org.overlord.rtgov.ep.drools.DroolsEventProcessor] (ServerService Thread Pool -- 88) Failed to load Drools rules 'timeWindow.drl' for Event Processor 'timeWindow': java.lang.RuntimeException: The requested KieBase "defaultKieBase" has been set to run in CLOUD mode but requires features only available in STREAM mode
> 	at org.drools.compiler.kie.builder.impl.KieContainerImpl.createKieBase(KieContainerImpl.java:258) [drools-compiler-6.0.0-redhat-9.jar:6.0.0-redhat-9]
> 	at org.drools.compiler.kie.builder.impl.KieContainerImpl.getKieBase(KieContainerImpl.java:204) [drools-compiler-6.0.0-redhat-9.jar:6.0.0-redhat-9]
> 	at org.drools.compiler.kie.builder.impl.KieContainerImpl.getKieBase(KieContainerImpl.java:193) [drools-compiler-6.0.0-redhat-9.jar:6.0.0-redhat-9]
> 	at org.overlord.rtgov.ep.drools.DroolsEventProcessor.loadRuleBase(DroolsEventProcessor.java:199) [ep-drools-1.0.1.Final-redhat-4.jar:1.0.1.Final-redhat-4]
> 	at org.overlord.rtgov.ep.drools.DroolsEventProcessor.createSession(DroolsEventProcessor.java:146) [ep-drools-1.0.1.Final-redhat-4.jar:1.0.1.Final-redhat-4]
> 	at org.overlord.rtgov.ep.drools.DroolsEventProcessor.init(DroolsEventProcessor.java:56) [ep-drools-1.0.1.Final-redhat-4.jar:1.0.1.Final-redhat-4]
> 	at org.overlord.rtgov.epn.Node.init(Node.java:229) [epn-core-1.0.1.Final-redhat-4.jar:1.0.1.Final-redhat-4]
> 	at org.overlord.rtgov.epn.Network.preInit(Network.java:202) [epn-core-1.0.1.Final-redhat-4.jar:1.0.1.Final-redhat-4]
> 	at org.overlord.rtgov.epn.AbstractEPNLoader.preInit(AbstractEPNLoader.java:34) [epn-core-1.0.1.Final-redhat-4.jar:1.0.1.Final-redhat-4]
> 	at org.overlord.rtgov.internal.epn.loader.jee.JEEEPNLoader.init(JEEEPNLoader.java:92) [epn-loader-jee-1.0.1.Final-redhat-4.jar:1.0.1.Final-redhat-4]
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [classes.jar:1.6.0_65]
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [classes.jar:1.6.0_65]
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [classes.jar:1.6.0_65]
> 	at java.lang.reflect.Method.invoke(Method.java:597) [classes.jar:1.6.0_65]
> 	at org.jboss.as.ee.component.ManagedReferenceLifecycleMethodInterceptorFactory$ManagedReferenceLifecycleMethodInterceptor.processInvocation(ManagedReferenceLifecycleMethodInterceptorFactory.java:130) [jboss-as-ee-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
> 	at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
> 	at org.jboss.as.weld.injection.WeldInjectionInterceptor.processInvocation(WeldInjectionInterceptor.java:73) [jboss-as-weld-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
> 	at org.jboss.as.ee.component.ManagedReferenceInterceptorFactory$ManagedReferenceInterceptor.processInvocation(ManagedReferenceInterceptorFactory.java:95) [jboss-as-ee-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
> 	at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
> 	at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50) [jboss-as-ee-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
> 	at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:248) [jboss-as-ejb3-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.as.ejb3.tx.CMTTxInterceptor.requiresNew(CMTTxInterceptor.java:344) [jboss-as-ejb3-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.as.ejb3.tx.LifecycleCMTTxInterceptor.processInvocation(LifecycleCMTTxInterceptor.java:66) [jboss-as-ejb3-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
> 	at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) [jboss-as-ejb3-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
> 	at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45) [jboss-as-ee-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
> 	at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
> 	at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:161) [jboss-as-ee-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.as.ee.component.BasicComponent.createInstance(BasicComponent.java:85) [jboss-as-ee-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.as.ejb3.component.singleton.SingletonComponent.getComponentInstance(SingletonComponent.java:126) [jboss-as-ejb3-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.as.ejb3.component.singleton.SingletonComponent.start(SingletonComponent.java:141) [jboss-as-ejb3-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.as.ee.component.ComponentStartService$1.run(ComponentStartService.java:54) [jboss-as-ee-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) [classes.jar:1.6.0_65]
> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) [classes.jar:1.6.0_65]
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:138) [classes.jar:1.6.0_65]
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) [classes.jar:1.6.0_65]
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) [classes.jar:1.6.0_65]
> 	at java.lang.Thread.run(Thread.java:695) [classes.jar:1.6.0_65]
> 	at org.jboss.threads.JBossThread.run(JBossThread.java:122)
> 14:20:43,022 SEVERE [org.overlord.rtgov.internal.epn.loader.jee.JEEEPNLoader] (ServerService Thread Pool -- 88) Failed to register network: java.lang.Exception: Failed to load Drools rules 'timeWindow.drl' for Event Processor 'timeWindow'
> 	at org.overlord.rtgov.ep.drools.DroolsEventProcessor.loadRuleBase(DroolsEventProcessor.java:209) [ep-drools-1.0.1.Final-redhat-4.jar:1.0.1.Final-redhat-4]
> 	at org.overlord.rtgov.ep.drools.DroolsEventProcessor.createSession(DroolsEventProcessor.java:146) [ep-drools-1.0.1.Final-redhat-4.jar:1.0.1.Final-redhat-4]
> 	at org.overlord.rtgov.ep.drools.DroolsEventProcessor.init(DroolsEventProcessor.java:56) [ep-drools-1.0.1.Final-redhat-4.jar:1.0.1.Final-redhat-4]
> 	at org.overlord.rtgov.epn.Node.init(Node.java:229) [epn-core-1.0.1.Final-redhat-4.jar:1.0.1.Final-redhat-4]
> 	at org.overlord.rtgov.epn.Network.preInit(Network.java:202) [epn-core-1.0.1.Final-redhat-4.jar:1.0.1.Final-redhat-4]
> 	at org.overlord.rtgov.epn.AbstractEPNLoader.preInit(AbstractEPNLoader.java:34) [epn-core-1.0.1.Final-redhat-4.jar:1.0.1.Final-redhat-4]
> 	at org.overlord.rtgov.internal.epn.loader.jee.JEEEPNLoader.init(JEEEPNLoader.java:92) [epn-loader-jee-1.0.1.Final-redhat-4.jar:1.0.1.Final-redhat-4]
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [classes.jar:1.6.0_65]
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [classes.jar:1.6.0_65]
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [classes.jar:1.6.0_65]
> 	at java.lang.reflect.Method.invoke(Method.java:597) [classes.jar:1.6.0_65]
> 	at org.jboss.as.ee.component.ManagedReferenceLifecycleMethodInterceptorFactory$ManagedReferenceLifecycleMethodInterceptor.processInvocation(ManagedReferenceLifecycleMethodInterceptorFactory.java:130) [jboss-as-ee-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
> 	at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
> 	at org.jboss.as.weld.injection.WeldInjectionInterceptor.processInvocation(WeldInjectionInterceptor.java:73) [jboss-as-weld-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
> 	at org.jboss.as.ee.component.ManagedReferenceInterceptorFactory$ManagedReferenceInterceptor.processInvocation(ManagedReferenceInterceptorFactory.java:95) [jboss-as-ee-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
> 	at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
> 	at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50) [jboss-as-ee-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
> 	at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:248) [jboss-as-ejb3-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.as.ejb3.tx.CMTTxInterceptor.requiresNew(CMTTxInterceptor.java:344) [jboss-as-ejb3-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.as.ejb3.tx.LifecycleCMTTxInterceptor.processInvocation(LifecycleCMTTxInterceptor.java:66) [jboss-as-ejb3-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
> 	at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) [jboss-as-ejb3-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
> 	at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45) [jboss-as-ee-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
> 	at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
> 	at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:161) [jboss-as-ee-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.as.ee.component.BasicComponent.createInstance(BasicComponent.java:85) [jboss-as-ee-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.as.ejb3.component.singleton.SingletonComponent.getComponentInstance(SingletonComponent.java:126) [jboss-as-ejb3-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.as.ejb3.component.singleton.SingletonComponent.start(SingletonComponent.java:141) [jboss-as-ejb3-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at org.jboss.as.ee.component.ComponentStartService$1.run(ComponentStartService.java:54) [jboss-as-ee-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) [classes.jar:1.6.0_65]
> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) [classes.jar:1.6.0_65]
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:138) [classes.jar:1.6.0_65]
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) [classes.jar:1.6.0_65]
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) [classes.jar:1.6.0_65]
> 	at java.lang.Thread.run(Thread.java:695) [classes.jar:1.6.0_65]
> 	at org.jboss.threads.JBossThread.run(JBossThread.java:122)
> Caused by: java.lang.RuntimeException: The requested KieBase "defaultKieBase" has been set to run in CLOUD mode but requires features only available in STREAM mode
> 	at org.drools.compiler.kie.builder.impl.KieContainerImpl.createKieBase(KieContainerImpl.java:258) [drools-compiler-6.0.0-redhat-9.jar:6.0.0-redhat-9]
> 	at org.drools.compiler.kie.builder.impl.KieContainerImpl.getKieBase(KieContainerImpl.java:204) [drools-compiler-6.0.0-redhat-9.jar:6.0.0-redhat-9]
> 	at org.drools.compiler.kie.builder.impl.KieContainerImpl.getKieBase(KieContainerImpl.java:193) [drools-compiler-6.0.0-redhat-9.jar:6.0.0-redhat-9]
> 	at org.overlord.rtgov.ep.drools.DroolsEventProcessor.loadRuleBase(DroolsEventProcessor.java:199) [ep-drools-1.0.1.Final-redhat-4.jar:1.0.1.Final-redhat-4]
> 	... 43 more

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the overlord-issues mailing list