Bug 780950 (SOA-3417)

Summary: BusinessRulesProcessor action needs better support for stateful CEP scenarios
Product: [JBoss] JBoss Enterprise SOA Platform 5 Reporter: Michael Pellegrini <mpellegr>
Component: JBossESBAssignee: Nobody <nobody>
Status: MODIFIED --- QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: 5.2.0.ER4CC: kejohnso, kevin.conner, ldimaggi, tcunning
Target Milestone: ---   
Target Release: 5.2.0 GA   
Hardware: Unspecified   
OS: Unspecified   
URL: http://jira.jboss.org/jira/browse/SOA-3417
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 782575    
Attachments:
Description Flags
cep_diff
none
test-cep-esb.zip none

Description Michael Pellegrini 2011-09-26 13:18:43 UTC
project_key: SOA

In order to support common CEP scenarios, the BusinessRulesProcessor action needs an option to automatically control the lifecycle of the stateful knowledge session.

Currently, if using stateful knowledge sessions, you must control when the session is created, reused, and disposed of using message properties.  In a CEP scenario, there is no need for this lifecycle nor is it desired.

It would be better to have an option that will automatically create a new session upon receiving the first message and automatically reuse the existing session upon receiving subsequent messages. Dispose would not be needed as Drools automatically manages working memory in stream mode.

Comment 2 Anne-Louise Tangring 2011-09-27 19:12:52 UTC
Changing this at this point would have too big of an impact. 

Comment 3 Kevin Conner 2011-10-05 04:26:39 UTC
It is possible to use CEP, without referencing DISPOSE/CONTINUE, by defining the "org.jboss.soa.esb.services.rules.continueState" property within jbossesb-properties.xml as "true".  This will affect all references of stateful sessions as there is currently no way to specify this per action.

Comment 4 Michael Pellegrini 2011-10-05 11:55:34 UTC
I was aware of this option, and as you point out it could be too global of a setting in certain scenarios.  I still think it would be best to keep this setting as part of the jboss-esb.xml at the BRP action (or even a new CEP action).  For now, I worked around this using a custom action which controls the dispose/continue options based on receiving the first message or subsequent messages.

Comment 5 Kevin Conner 2011-10-05 15:15:09 UTC
Attached diff which enables default continue behaviour per action

Comment 6 Kevin Conner 2011-10-05 15:15:09 UTC
Attachment: Added: cep_diff


Comment 8 Len DiMaggio 2011-10-05 18:30:05 UTC
Attachment: Added: test-cep-esb.zip


Comment 9 tcunning 2011-10-07 01:14:33 UTC
Link: Added: This issue relates to JBESB-3698


Comment 10 tcunning 2011-10-07 01:19:26 UTC
Committed Kevin's patch to ESB, will be in ER5.


cunningts-imac:product cunningt$ svn commit


Sending        product/samples/quickstarts/business_ruleservice_cep/readme.txt
Sending        product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/RuleInfoBuilder.java
Sending        product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/RuleInfoImpl.java
Sending        product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/RuleServiceCallHelper.java
Sending        product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/StatefulRuleInfoImpl.java
Sending        product/services/jbrules/src/main/java/org/jboss/soa/esb/actions/BusinessRulesProcessor.java
Sending        product/services/jbrules/src/main/java/org/jboss/soa/esb/services/rules/RuleInfo.java
Sending        product/services/jbrules/src/main/java/org/jboss/soa/esb/services/rules/RuleServicePropertiesNames.java
Sending        product/services/jbrules/src/test/java/org/jboss/soa/esb/actions/BusinessRulesProcessorUnitTest.java
Transmitting file data .........
Committed revision 37516.
cunningts-imac:product cunningt$