E-PRCS: Blocked Processes Cause Queuing For Same Process Type
Last updated on DECEMBER 13, 2017
Applies to:PeopleSoft Enterprise PT PeopleTools - Version 8.50 to 8.53 [Release 8.4]
Information in this document applies to any platform.
Process Definitions containing a "Max Concurrent" setting cause multiple instances of the same process to become "Blocked", by design, when the Max Concurrent constraint for that process is reached. The problem is that this single process constraint causes other processes of the same type to wait in the queue behind these blocked processes. A single process constraint should not affect other processes which are not constrained. When the number of the blocked processes reaches the total number of processes for the same type (example: PSNT MAX CON for AE = 3) then no other processes of the same type
will run and will remain queued until the blocked processes no longer exceed the Max Concurrent for the process type, making a single process constraint affect all processes of the same type even though the other processes do not have this constraint.
A Process Definition has a "Max Concurrent" of "1" in order to keep other instances of this process request from running at the same time. However, if too many of this process are being blocked at the same time, all other processes of this type remain "Queued" until the total number of blocked + processing requests goes under the total Max Concurrent for the related Process Type added up for all active domains in the affected environment.
Example: Two domains are currently active, PSNT and PSUNX..
AE = 3 MAX CON
AE = 3 MAX CON
TOTAL MAX CON FOR AE = 6 for this environment.
With a Max Concurrent of "1" for an AE process, if there is one of this process in "PROCESSING" and 5 in "BLOCKED", even though only one AE process is actually running in the entire system, other newly submitted AE processes will remain in the runstatus of "QUEUED" until the blocked processes are under the total Max Concurrent for the system. If the process with max concurrent of "1" is a long running process, in this scenario, all production is stopped, potentially for hours, for affected process types.
1) Open PSQUERY Application Engine Process Definition and set "Max Concurrent" to "1" and save.
2) Go to "Reporting Tools > Query > Schedule Query" and create a new run control to run XRFIELDS Query.
3) Schedule this Query as many times, using this run control, until you have filled up all AE available slots for the current environment (i.e. if default Max Concurrent for AE processes per Process Scheduler is "3" and there are 2 active domains, then you would need to schedule this Query "6" times) to run at some future time, choosing no server name, so that they will all want to kick off at the same time.
4) Next go to "PeopleTools > Process Scheduler > System Process Requests" and create another new run control in order to schedule more AE processes.
5) Select AEMINITEST and PRCSYSPURGE processes, again choosing no server name, to run 30 seconds after the time for the Schedule Query processes have started.
6) Go to "PeopleTools > Process Scheduler > Process Monitor" and observe that one instance of the PSQUERY process will start processing while the remaining instances, up until the Max Concurrent is met, will go to a runstatus of "BLOCKED".
7) Once the initial PSQUERY process has started processing and the rest become blocked, you will observe that the processes, AEMINITEST and PRCSYSPURGE, will remain queued until the remaining BLOCKED PSQUERY processes are under the total Max Concurrent for the environment. Meanwhile, only one PSAESRV service for both domains is currently processing requests while the rest remain idle even though there are requests waiting in the queue overdue to run.
Sign In with your My Oracle Support account
Don't have a My Oracle Support account? Click to get started
My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms