Unexplained pause in Obj-Browse
While running through a performance investigation the developers had observed 3 queries that were taking approximately 800 ms to complete (above the default 500 ms watermark).
When examining these three queries in tracer all were shown to have completed within milliseconds.
Additionally, examination of the SQL being generated confirmed that this was only building a query against a single table and the queries were returning only a small amount of records or zero records. Also the underlying tables only contained a small amount of data.
As the granularity of the problem was only showing a delay when calling Obj-Browse, in order to help pinpoint where the delay was, the method was converted to a Java method. The technique used was to view the java for the activity that was calling Obj-Browse, and extract out the portion of the java that was built to perform the Obj-Browse actions.
Next a new Java step was added into the activity and then the java contents were pasted in.
Once this was verified as working, the code was then interlaced with oLog.infoForced statements and the steps that called the activity were re-run.
Examination of the resultant oLog statements in the PegaRULES log was showing that the delay was appearing when calling the code below: -
java.util.SortedSet ss = aPgDB.getColumnsForUndefinedTable(
dbName, catalogName, schemaName, tbName);
The database/schema that was being used for the three classes was defined by a JDBC Url (Data-Admin-DB-Name).
The performance of the queries was shown to have improved by converting the Data-Admin-DB-Name entry to use a connection pooled data source.