Support Article
Connect-Rest poor performance in Pega 7.1.8
SA-14113
Summary
The data is fetched from an external web service application using Connect-Rest connector. The number of result is about 20 items, but it takes very long time to display the results. A test case using SOAP UI as a client to fetch the same set of data shows no lengthy wait for results.
Tracing the execution shows that the below SQL Query is executed multiple times and this causes the performance problem.
SELECT pyPropertyName AS "pyPropertyName", pyPageClass AS "pyPageClass", pyPropertyMode AS "pyPropertyMode" FROM RULES.pr4_rule_property "property" WHERE (pxObjClass = 'Rule-Obj-Property') AND (pyClassName = ?) AND (pyRuleAvailable = 'Yes').
Error Messages
Not applicable.
Steps to Reproduce
Configure an application with Connect-Rest connector to retrieve data from an external web service application.
Root Cause
Pega JSON parsing logic is shown to be causing the performance issue. The code iterates through all the properties in the class to check the property qualifier in each property and compare it against the JSON field in the incoming response.
Resolution
Apply HFix-23709, which introduces a local cache (in ServiceHelper.java). This stores the list of all the qualifiers as the key and the property name as the value. During the next call for a JSON field name the DB calls do not happen again and the cache is checked to save time.
Published November 5, 2015 - 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.