Process engine - keeping it healthy
search cancel

Process engine - keeping it healthy

book

Article ID: 210265

calendar_today

Updated On:

Products

Clarity PPM SaaS Clarity PPM On Premise

Issue/Introduction

You have a large number of processes that may stay in Running status for months and never complete, can this cause slowness for our BG? You may also have thousands of processes which are Completed or Aborted. Can this also cause performance issues with BG? What can you do to keep your process engine healthy?

Environment

Release : All

Component : CLARITY BUSINESS PROCESS MANAGEMENT

Resolution

If you allow too many Running/Completed processes to build up in your system, they can cause performance problems on the Initiated Processes tab and eventually a performance problem with your processes in general. When there are too many rows in your process tables, it eventually slows down performance. In addition, your processes that are in an error state are loaded EACH TIME you restart your process engine. This adds to process load time after the restart and it can cause process performance issues.

There are two things you should do to maintain your processes:

  1. Delete old processes in the Done or Aborted state.
  2. Retry or Abort and Delete old processes in the Error state.

DELETING OLD PROCESSES IN THE RUNNING STATE

If you have a large number of processes in the Running state and you determined there is no reason for them to continue Running, they should be Aborted and deleted using Delete Process Instance job.

DELETING OLD PROCESSES IN THE DONE OR ABORTED STATE

The first thing that you need to do is to decide on and set a policy for how long you want to retain records of old completed and aborted processes. Remember if you are taking regular backups of your Clarity system/database you can go to archived information if you really need to access that data.

Once you have chosen how long you are going to retain your completed and aborted processes, you will need to clean up anything older than the amount of time you chose. You should use the “Delete Process Instance” job to do this. It is important to make sure that you select specific dates such that you are deleting 5000 or less processes with each run of the job. Not only will the performance for the job itself go down if you try to delete too many processes at once, it may also affect performance for your users.

NOTE: You will need to run the job separately to clean out Done and Aborted processes. This means for every date range, you will need to run the job with Done selected in the Process Status field and a second time with Aborted selected.

After all of your old processes are cleaned up, it is time to choose how frequently you are going to run this job. If you are a very heavy process user, you will want to make sure and schedule this job to run frequently enough that you are only deleting a 3000 – 5000 users at a time. If you are deleting a lot of processes like this, it is best to schedule this job to run at off hours.

Per the note above, you will need to schedule a separate job for Done and Aborted processes.

CLEANING UP OLD PROCESSES IN THE ERROR STATE

Processes that have errored out also need maintenance. These processes are loaded by the system and if you have a lot of them, they can eventually cause performance issues with your processes.

  1. Again, the first thing is to set a policy/schedule for how often this should be done so this doesn’t become a huge task.
  2. Now just go to the Initiated Processes tab and search for processes in the error state. Customers who run very few processes may only need to do this once a month. Customers who run many processes may need to do this once a week or even daily.
  3. When you are ready to clean up your errored processes, look at each process and determine the following:

Step 1: Determine whether or not this process instance is still needed. If it is not needed, abort the process.

Step 2: Check for any processes that you see repetitively in an error state.

If all or many instances of the process are failing, you need to look at why this is happening. In many cases this indicates a process that has a problem with its logic. It is a good idea to go back to the process developer and ask them to fix the issue. If it is a problem with the process logic, put the process on hold until it can be fixed. You may need to ask the developer to give you a second version of the fixed process that continues from where the problem occurred so that you can run it on all of the object instances where it failed so that the process can complete

Step 3. If the process is still needed, double-click the error icon under the Messages column to see what the error says.

If it gives you a checkbox next to the step, it means the problem is likely to be something you can fix. Read the error message and look at the process details page (go back to the list view and click on the process id) to determine what the problem is. Then go to the object instance indicated in the list view and fix the problem. Once the problem is fixed, you can click back into the error icon, click the checkbox beside the step and click the retry button.

NOTES:

  • Sometimes it is a good idea to retry the step even if you don’t understand how to fix the cause. If it was a temporary error, the step will succeed and the process will continue.
  • If you cannot determine what is causing the problem with a process or how to fix what looks to be an error you can retry, see also: Processes stuck / hung - troubleshooting. If that doesn't help, please contact support for assistance.

Once all of your errored processes are cleaned up, the Delete Process Instance job with the Aborted status selected will clean up the aborted processes once they are old enough.

Additional Information

See also: Processes stuck / hung - troubleshooting