A Look at Max Concurrent Process Definition Property

By Chris Malek | Tue, Oct 29, 2013

Let’s take a look at the Process Definition property called Max Concurrent. This property is defined on the first page of the process definition. This is a simple numeric property where you can tell the process scheduler how many concurrent processes can be run of that type.

There are several situations where you may not want more than some number of instances of a process to run at the same time. I find it useful in certain situations to ensure only one instance of a process is run at a time.

There are many situations where you may want to use this property. A few that come to mind are:

  • If more than n concurrent processes of the same type causes a system slow down.
  • If the process creates a lock on a common file. For example, the process is always looking for a file name called “input.txt” in some shared directory. You don’t want more than one process trying to read or write to the file.
  • Your process is not designed for concurrent processing because it populates some reporting table which does not have a key structure to handle more than one process inserting into it.
  • The process is long running and performs system updates in a single database transaction. Another instance of the same process may try to update the same data which would be incorrect.

The process scheduler is responsible for enforcing this. In the screen-shot above, I setup the process to only have one max concurrent instance. What happens when we queue up several instances using different request parameters? The process monitor will actually show the ones queued up as “blocked”. Here is screen-shot that shows several instances that are blocked.

Please note that when I captured this screen-shot, I had just scheduled the top two processes which are still in “queued” status. The next two below are “blocked”. Since the process scheduler has a “heart-beat” and periodically checks the process request table for new work, I actually snapped this screen-shot in between heart-beats and the process scheduler server had not had a chance to look at the new requests (at the top) and flip them to “blocked”. If I would have waited a few seconds those top two would have been flipped to “blocked” as well.

I have found that using this property can solve “mystery” issues with certain processes.

Article Categories
Author Info
Chris Malek

Chris Malek is a PeopleTools® Technical Consultant with two decades of experience working on PeopleSoft enterprise software projects. He is available for consulting engagements.

About Chris Work with Chris
Looking for pain-free PeopleSoft web services? 😀
PeopleSoft Simple Web Services (SWS)

Introducing a small but powerful PeopleSoft bolt-on that makes web services very easy. If you have a SQL statement, you can turn that into a web service in PeopleSoft in a few minutes.

Book
Integration Broker - The Missing Manual

I am in the process of writing a book called "Integration Broker - The Missing Manual" that you can read online.