[jboss-jira] [JBoss JIRA] Assigned: (JBRULES-3108) problems with concurrent process executions, constraints, and multiple sessions

Mark Proctor (JIRA) jira-events at lists.jboss.org
Thu Sep 29 02:39:26 EDT 2011


     [ https://issues.jboss.org/browse/JBRULES-3108?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mark Proctor reassigned JBRULES-3108:
-------------------------------------

    Assignee: Kris Verlaenen  (was: Mark Proctor)


> problems with concurrent process executions, constraints, and multiple sessions
> -------------------------------------------------------------------------------
>
>                 Key: JBRULES-3108
>                 URL: https://issues.jboss.org/browse/JBRULES-3108
>             Project: Drools
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: drools-core (flow)
>    Affects Versions: 5.1.1.FINAL, 5.2.0.Final
>         Environment: Independent of OS, JVM, and Application Server. Reproduced in a windows development environment with a Sun JVM. Also reproduced in linux. Also database independent: reproduced with Oracle RDBMS and HSQLDB.
>            Reporter: Jordi Alvarez
>            Assignee: Kris Verlaenen
>
> The context is as follows:
> 1. We have drools flow configured with JPA and Hibernate, accessing an Oracle / HSQLDB database (depending on the environment).
> 2. We do have several concurrent stateful sessions in which different instances of the same kind of processes are running. These stateful sessions are persisted in the same database schema.
> 3. We do use wait states (also reproduced with rule nodes) that have constraints that wait for a fact to be inserted into the stateful session.
> 4. Whenever the fact that makes the constraint to satisfy is inserted for one process in a given stateful session; if there are other processes waiting in that wait state/constraint (in other different stateful sessions), the stateful session tries also to continue those process executions, even when they are not part of it.
> A solution has been implemented temporally over drools source code (in order to get our context working): the solution is briefly described in the forum url below. For completeness a summary is included here:
> - Adding a new attribute to org.drools.persistence.processinstance.ProcessInstanceInfo POJO identifying the stateful session to which the process instance corresponds (and the corresponding DB column).
> - modifying the ProcessInstancesWaitingForEvent query (in orm.xml) in order to take into account the session id as a (new) second parameter.
> - modify the class org.drools.persistence.processinstance.JPASignalManager in order to execute the query with both parameters.
> - as a quick way to have the session id, we have a threadlocal.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list