Impact of pyDuplicateProperty on sppr_sys_reserverqueueitem_b
The developers have been using the pyDuplicateProperty when calling PRQueueManager to enque a new item, as detailed in: https://pdn.pega.com/sites/pdn.pega.com/files/help_v73/javadocs/index.html
Since making this change they are observing an increase in the number of calls to the SPPR_SYS_RESERVEQUEUEITEM_B stored procedure, which is impacting overall performance.
Steps to Reproduce
Ensure that a property is specified in .pyDuplicateProperty when using PRQueueManager to queue a new entry.
ROOT CAUSE & RESOLUTION
When queuing a new item with pyDuplicateProperty specified, the underlying code needs to check the existing records to match that property.
This in turn will make a call to the SPPR_SYS_RESERVERQUEUEITEM_B stored procedure to collect the matches for the same class (in sets of 20).
It will then cycle through the first 20 results to check whether the specified property of the new record matches any of those existing queued records.
Once this has completed it will call SPPR_SYS_RESERVEQUEUEITEM_B again to process the next set, until all queued entries that match the class have been exhausted.
Unfortunately, when using pyDuplicateProperties, these additional calls to SPPR_SYS_RESERVERQUEUEITEM_B are unavoidable, as this is needed to ensure there are no duplicates.
100% found this useful