3 Replies Latest reply on Jan 18, 2010 10:51 AM by Ronald van Kuijk

    Performance problem with JBPM 3.1.2

    Siri Douque Newbie

      Jboss jBPM 3.1.2

       

      Greetings,

      I have set up a validation workflow since 2006 for my client and now we have performances problems .

      The workflow is used by an object called TICKET.

      Today we have 3900 TICKETS in the database.

      For one TICKET there is 32 validation nodes.

      In my database I have approximately 62.000 entries in my "taskinstance" table.

      Actually there are 400 TICKETS in use, the others are either closed or cancelled.

      In the process definition the TICKET never goes to endState even if cancelled or closed. The enState exists in the diagram, but is never triggered.

      Performances problems are encountered when we add a new TICKET (createProcessInstance) or when we validate the TICKET (performTransition).

      My first question : If all cancelled and closed TICKETS are triggered to endState, will I gain performance. And if I do, how should I proceed to push a selection of TICKETS to endState ?

      My second question : If I wish to drop TICKETS created in a year, how can I delete the related JBPM data from the database ?

       

      Please find here under the Process Definition.

       

      Regards,

      Siri Douqué

        • 1. Re: Performance problem with JBPM 3.1.2
          Ronald van Kuijk Master

          My first question : If all cancelled and closed TICKETS are triggered to endState, will I gain performance. And if I do, how should I proceed to push a selection of TICKETS to endState ?


           

          Not sure, totally depends on where the delay is comming from. Running some analyzer on the database might show the slow queries (if you think it is related to that)

           

          My second question : If I wish to drop TICKETS created in a year, how can I delete the related JBPM data from the database ?


           

          Use e.g. a HQL to retrieve all ProcessInstances that you want to delete (query is effectively up to you) and then just do a delete via Hibernate. That will cascadingly delete all related data (afaik)

          • 2. Re: Performance problem with JBPM 3.1.2
            Siri Douque Newbie

            Thank you for the quick response !

             

            In my first question, I just thought it could be a problem due to my process design (processInstance not going to endState). The bad performances are noticed on the production client server, but on my local dev server, I can't reproduce the big delays reported by the client. I still have to find exactly in which method the delays are coming from. So as you said I'll have to run some analysers on the client server and activate logs to read through.

            When you say "analysers" do you have any good examples ?

             

            For the second question, I can only say thank you ! I just didn't think it could be so easy. I'll try it out as soon as possible.

             

            Regards,

            Siri Douqué

            • 3. Re: Performance problem with JBPM 3.1.2
              Ronald van Kuijk Master

              Quick is my middle name ;-)

               

              I'd start with the db first. Most have analyzers build in. And I know Hibernate (either directly or with some extension) has some options to log query performance. I'd try that first. Only when that does not yield anything, I'd try other profilers (like TPTT from eclipse)

               

              Regarding the simplicitiy... That's jBPM...