[jboss-user] [JBoss jBPM] - Problems with GraphSession.deleteProcessInstance()

michaelholtzman do-not-reply at jboss.com
Mon Nov 24 14:07:58 EST 2008


Greetings:

We need to periodically purge process instances that have ended before a certain data. There may be hundreds or thousands of instances that need to be cleaned up. The performance is very poor ... about 8 - 10 seconds PER INSTANCE.

Looking at the code (jBPM 3.1.2) I notice two things:

1 - task instances are not deleted (the delete query is not executed, which is just as well because the preceding query, findTaskInstanceIdsForProcessInstances, does not actually return a list of ids so it would fail anyway).:

  |       if (includeTasks) {
  |         query = session.getNamedQuery("GraphSession.findTaskInstanceIdsForProcessInstance");
  |         query.setEntity("processInstance", processInstance);
  |         List<?> taskInstanceIds = query.list();
  |         
  |         query = session.getNamedQuery("GraphSession.deleteTaskInstancesById");
  |         query.setParameterList("taskInstanceIds", taskInstanceIds);
  |       }
  | 

Fixing the findTaskInstanceIdsForProcessInstance query and inserting query.executeUpdate() results in constraint errors in the database.

2 - Deleting the process logs are done one log entry at a time

  |       // delete the logs for all the process instance's tokens
  |       if ( (tokens!=null)
  |       	&& (!tokens.isEmpty())
  |       	) {
  | 	      query = session.getNamedQuery("GraphSession.selectLogsForTokens");
  | 	      query.setParameterList("tokens", tokens);
  | 	      List<?> logs = query.list();
  | 	      iter = logs.iterator();
  | 	      while (iter.hasNext()) {
  | 	        session.delete(iter.next());
  | 	      }
  |       }
  | 

I'm guessing this is taking most of the execution time .... is there a way to batch delete these logs?

Thanx.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4191854#4191854

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4191854



More information about the jboss-user mailing list