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

ivan mckinley (JIRA) issues at jboss.org
Tue May 27 03:03:56 EDT 2014


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

ivan mckinley commented on RTGOV-393:
-------------------------------------

Agreed with Jeff's point here. 
In the case stream the application should be aware of the impact of using Stream and their application (switchyard or rest clients) should be "aware" of which Rtgov node they submit events to.  This is a consideration all applications have when using stream and as Jeff mentioned there are methods to tackle this. See presentation from Duncan Doyle.
http://rhsummit.files.wordpress.com/2014/04/doyle_h_0945-high-availablity-cep-with-red_hat-jboss_brms1.pdf


another concept would be to have some form of message based routing prior to the event hitting the EPN.
This could be performed on the switchyard side and built as part of the embedded collector (might be overkill). 


> 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 was sent by Atlassian JIRA
(v6.2.3#6260)


More information about the overlord-issues mailing list