Uploaded image for project: 'jBPM'
  1. jBPM
  2. JBPM-452

Refactor SchedulerThread.executeTimers() to execute Timers in seperate Transactions

    Details

    • Type: Feature Request
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: jBPM 3.0.1, jBPM 3.0.2, jBPM 3.0.3, jBPM 3.0.4, jBPM 3.1.0, jBPM 3.1.1, jBPM 3.1.2
    • Fix Version/s: jBPM 3.2.0
    • Component/s: Runtime Engine
    • Labels:
      None

      Description

      SchedulerThread.executeTimers() executes in a single transaction.

      All Timers execute() methods are called in this transaction and the changes to the Timers themselves are persisted in this transaction.

      The failure of any one of the transacted resources in any one of the Timers would roll back all changes (workflow state as well as application resources) made during this call and we would effectively be where we started (probably running into the same failure the next time executeTimers() is called.)

      The use of a single transaction seems to be intentional (http://jira.jboss.com/jira/browse/JBPM-46 where Tom states that "we only use one transactional resource (jdbc connection) so ..."

      As we are talking about potentially thousands of Timers executing in a single transaction this doesn't seem to be viable.

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  tom.baeyens Tom Baeyens
                  Reporter:
                  ralfoeldi Rainer Alfoeldi
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: