4 Replies Latest reply on Mar 10, 2006 10:46 AM by fallow

    GraphSession.deleteProcessInstance taking over 10 minutes pe

    fallow

      Is anyone else having performance problems related to the deleteProcessInstance call? We are having extremely poor performance on this call. In the order of 10-15 minutes per delete.

      We are running against an Oracle 9i DB. The DB has 2 CPUs dedicated to our schema and plenty of memory. Everything else is running well enough.

      We have tracked down the call that is taking forever. Its the 'delete from JBPM_LOG where TOKEN_=?' call.

      This table has 2.5 million entries in it and indexes on the ID_ and TOKEN_ columns. We add about 2000 instances per day to the system. At the current delete rate we cannot delete finalized instances nearly as fast as we put them in.

      Has anyone else seen this problem?

      Do we really need to keep these log entries around? Can we bulk delete them based on date for instance? If we do a bulk delete by date will this affect the data integrity of the other tables?

      Is there a way to disable creating these log entries?

      We are currently running JBPM 3.0.1.

      Any help would be appreciated.

      Thanks,

      Fallow

        • 1. Re: GraphSession.deleteProcessInstance taking over 10 minute
          enazareno

          Hi,

          Not related to your version but for those using 3.1 disabling logs is quite easy. For the information of others using 3.1, locate the file jbpm.cfg.xml and uncomment the org.jbpm.logging.db.DbLoggingServiceFactory entry. I have not used 3.02 for a long time now but maybe you can check the configuration that is similar to this.

          Regards,

          Elmo

          • 2. Re: GraphSession.deleteProcessInstance taking over 10 minute
            im_ytk

            Dear Fallow,

            I am using jBPM 3.1. In file jbpm-starters-kit-3.1\jbpm\src\java.jbpm\org\jbpm\logging\db\DbLoggingService.java, function log():


             public void log(ProcessLog processLog) {
             if (session!=null) {
             session.save(processLog);
             }
             }
            


            I have commented out session.save(processLog);. Somehow it will carry out all the logging processes, but it will not write anything to the database. In my case, it significantly improves the performance.

            I am not if the codes are similar in 3.0.1, I guess it is worthwhile to have a try.

            Hope it helps.


            Philip

            • 3. Re: GraphSession.deleteProcessInstance taking over 10 minute
              tom.baeyens

              in jBPM 3.1 you should be able to just comment the line

              <service name="logging" factory="org.jbpm.logging.db.DbLoggingServiceFactory" />


              in the jbpm.cfg.xml configuration file. No coding should be necessary.

              regards, tom.

              • 4. Re: GraphSession.deleteProcessInstance taking over 10 minute
                fallow

                Tom,

                Thanks for the response. We are currently using 3.0.1, is there a similar capability? The closest file I can locate to jbpm.cfg.xml is hibernate.cfg.xml, which does not map the services the same way.

                Thanks,

                Fallow