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?
Release : All
Component : CLARITY BUSINESS PROCESS MANAGEMENT
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.
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.
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.
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.
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
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:
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.
See also: Processes stuck / hung - troubleshooting