Support Article
Unable to synchronize on requestor
SA-5200
Summary
When the users are trying to login to the application, they recieve the below error on the screen. The same error appears in application logs.
Unable to synchronize on requestor HF103F32660B65612FF70E19D14F5EF75 within 120 seconds: (thisThread = http-bio-8181-exec-34) (originally locked by = http-bio-8181-exec-59) (finally locked by = http-bio-8181-exec-59)
Error Messages
02:34:50,692 [p-bio-8181-exec-3084] (ngineinterface.service.HttpAPI) ERROR - <IP Address>: com.pega.pegarules.pub.context.RequestorLockException
com.pega.pegarules.pub.context.RequestorLockException: Unable to synchronize on requestor H6B6CC0E416B6880CCDE6CC1C7E45EB6E within 120 seconds: (thisThread = http-bio-8181-exec-3084) (originally locked by = http-bio-8181-exec-3115) (finally locked by = http-bio-8181-exec-3115)
at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:1000)
at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:792)
at com.pega.pegarules.session.external.engineinterface.service.EngineAPI.processRequest(EngineAPI.java:328)
at com.pega.pegarules.session.internal.engineinterface.service.HttpAPI.invoke(HttpAPI.java:717)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl._invokeEngine_privact(EngineImpl.java:312)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl.invokeEngine(EngineImpl.java:263)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl.invokeEngine(EngineImpl.java:240)
at com.pega.pegarules.priv.context.JNDIEnvironment.invokeEngineInner(JNDIEnvironment.java:277)
at com.pega.pegarules.priv.context.JNDIEnvironment.invokeEngine(JNDIEnvironment.java:222)
at com.pega.pegarules.web.impl.WebStandardImpl.makeEtierRequest(WebStandardImpl.java:383)
at com.pega.pegarules.web.impl.WebStandardImpl.doPost(WebStandardImpl.java:271)
at sun.reflect.GeneratedMethodAccessor93.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Steps to Reproduce
Not Applicable
Root Cause
The root cause of this problem is a defect in customer application code/rules. All of the associated thread dumps show a custom activity viz. 'loadData' doing a socketRead() while executing SQL against the backend database. This suggests that when the users log in, this activity gets fired and it executes a SQL that takes longer than 120 seconds to complete. Unable to synchronize on requestor’ error is a manifestation of this long running step. Here, a problem was identified with histograms not being dropped from the table and hence the sql was not doing an index scan.
Resolution
This issue is resolved by making the following change to the PRPC operating environment: Engage your DBA and identify the root cause of slow performing SQL query that is responsible for causing thread dumps.
Published February 27, 2016 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.