ODE
  1. ODE
  2. ODE-460

[1.x] Improve InstanceManagement.listInstancesSummary() to include failure information

    Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.3.4
    • Component/s: Management API
    • Labels:
      None

      Description

      Improve InstanceManagement.listInstancesSummary() to include failure information

        Activity

        Hide
        Alex Boisvert added a comment -

        Patch applied to 1.x branch. Thanks!

        boisvert@boog:~/svn/ode/1.1$ svn commit -m "ODE-460: Improve InstanceManagement.listInstancesSummary() to include failure information"
        Sending bpel-dao/src/main/java/org/apache/ode/bpel/dao/BpelDAOConnection.java
        Sending bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java
        Sending bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionImpl.java
        Sending dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java
        Sending dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HProcessInstance.java
        Sending dao-jpa/src/main/java/org/apache/ode/dao/jpa/ActivityRecoveryDAOImpl.java
        Sending dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java
        Sending dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java
        Transmitting file data ........
        Committed revision 726820.

        Show
        Alex Boisvert added a comment - Patch applied to 1.x branch. Thanks! boisvert@boog:~/svn/ode/1.1$ svn commit -m " ODE-460 : Improve InstanceManagement.listInstancesSummary() to include failure information" Sending bpel-dao/src/main/java/org/apache/ode/bpel/dao/BpelDAOConnection.java Sending bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java Sending bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionImpl.java Sending dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java Sending dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HProcessInstance.java Sending dao-jpa/src/main/java/org/apache/ode/dao/jpa/ActivityRecoveryDAOImpl.java Sending dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java Sending dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java Transmitting file data ........ Committed revision 726820.
        Hide
        Sean Ahn added a comment -

        Attached third retry:

        The counts of activity recoveries are pre-fetched on the activity recovery member variable on the process instances.

        Show
        Sean Ahn added a comment - Attached third retry: The counts of activity recoveries are pre-fetched on the activity recovery member variable on the process instances.
        Hide
        Sean Ahn added a comment -

        New patch attached with performance improvement on fault select in the ProcessAndInstanceManagementImp.listInstancesSummary(); the faults are eager loaded when selecting the instances. There is only one fault at most per process, so joining them together is not bad.

        Show
        Sean Ahn added a comment - New patch attached with performance improvement on fault select in the ProcessAndInstanceManagementImp.listInstancesSummary(); the faults are eager loaded when selecting the instances. There is only one fault at most per process, so joining them together is not bad.
        Hide
        Sean Ahn added a comment - - edited

        Patch file attached.

        1. For hibernate DAO, the basic form of query is:
        select count, max(last_failed_date) from instance where failed_count > 0
        2. For OpenJPA DAO, the basic form of query is:
        select count, max(last_failed_date) from instance where exists(select * from activity_recovery where instance.id = activity_recovery.instance_id)

        Show
        Sean Ahn added a comment - - edited Patch file attached. 1. For hibernate DAO, the basic form of query is: select count , max(last_failed_date) from instance where failed_count > 0 2. For OpenJPA DAO, the basic form of query is: select count , max(last_failed_date) from instance where exists(select * from activity_recovery where instance.id = activity_recovery.instance_id)
        Hide
        Alex Boisvert added a comment -

        Also, as part of this improvement, improve ProcessAndInstanceManagementImpl.getInstanceSummaryActivityFailure() which is hugely inefficient... it loads all active instances in memory....

        Show
        Alex Boisvert added a comment - Also, as part of this improvement, improve ProcessAndInstanceManagementImpl.getInstanceSummaryActivityFailure() which is hugely inefficient... it loads all active instances in memory....

          People

          • Assignee:
            Unassigned
            Reporter:
            Alex Boisvert
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development