Here is what you can do in order to troubleshoot ‘unable to synchronize on requestor’ error
When a user performs an action (clicks a button or a link), a HTTP request are generated and sent to PRPC. When a requestor submitted a request and the response does not come back after 120 seconds, the ‘unable to synchronize on requestor’ error will be written to the PegaRULES log file.
A thread dump should also be written to the PegaRULES log file when this error occurs. If not, check to make sure that the setting ‘initialization/ThreadDumps’ is not set to false.
From the ‘unable to synchronize on requestor’ error, find out the thread which is blocking this thread. For example, you can see below that thread WebContainer : 8 is blocked by WebContainer: 15.
com.pega.pegarules.pub.context.RequestorLockException: Unable to synchronize on requestor H3753CA89DBDA2E92B8D71A09B775FE25 within 120 seconds: (thisThread = WebContainer : 8) (originally locked by = WebContainer : 15) (finally locked by = WebContainer : 15)
4. Look for the offending thread from the thread dump generated above the ‘unable to synchronize on requestor’ error and investigate why the thread is taking so much time to finish the request. Usually it can be a long running query or calling an external program.
We saw this occur the other day when the rule-application had the "use project management" checkmark, and for some reason the soap-service connection attempt to the project management url was not succeeding. In our case, this was apparent from tracing our requestor even before the "unable to synchronize" error occurred. /Eric
A thread dump should also be written to the PegaRULES log file when this error occurs
Please note that PRPC has a safety-mechanism where it will only trigger one Thread Dump within a 5 minute period* - so you if you have multiple 'unable to synchronize on requestor' messages occuring in the same 5 minute window - you will only see one Thread Dump. (* this is configurable )