Question
Volksbank
PL
Last activity: 11 Sep 2024 8:06 EDT
pzCheckProfileMergeKafkaAlert and pzMergeMetricsConfigPulse Job schedulers
Hello Pega,
After updating the software to the Infinity version, we began to notice some impact on performance, caused by those Jobs.
I could not find any articles mentioning them, but quick analysis tells me they might be some leftovers after the migration itself:
-
Rules89To23 - this is the name of the operator who has created them
-
com.pega.decision.profile.merge.apibridge.metrics.MergeMetricsHelper.getInstance().handlePulse() - this is the funcion called by it
Some time ago, those Jobs were disabled on lower environments, can you please provide an explanation of what are they for and if are they needed at all?
With kind regards,
Marek
@MarekG16680293 INC-B20196 was resolved with the following analysis:
--------------------------------------------
Both Job Schedulers are related to Profile Merge feature in Platform, here’s a description of this feature for your reference:
Data flow
The merge processor is a data flow created to process the merge requests. The merge processor reads records from the merge stream, loads profile definition determined by the merge request parameters, and invokes merge processing on the data sources associated with the profile:
The source shape is defined as the merge records stream – pxMergeStream data set in the Data-Decision-Profile-MergeRequest class.
The destination is the MergeStageProcessor shape.
Because of the need to aggregate records from multiple applications, the data flow runs in the System Runtime Context (SRC) but, when in the context of processing a specific merge request, it can run under a specific access group because multiple applications can include the same data source.
Profile cache
@MarekG16680293 INC-B20196 was resolved with the following analysis:
--------------------------------------------
Both Job Schedulers are related to Profile Merge feature in Platform, here’s a description of this feature for your reference:
Data flow
The merge processor is a data flow created to process the merge requests. The merge processor reads records from the merge stream, loads profile definition determined by the merge request parameters, and invokes merge processing on the data sources associated with the profile:
The source shape is defined as the merge records stream – pxMergeStream data set in the Data-Decision-Profile-MergeRequest class.
The destination is the MergeStageProcessor shape.
Because of the need to aggregate records from multiple applications, the data flow runs in the System Runtime Context (SRC) but, when in the context of processing a specific merge request, it can run under a specific access group because multiple applications can include the same data source.
Profile cache
The merge processor caches an instance of the profile so that it does not need to retrieve it from the database for every merge request – the profile provider cache expiration time DSS defines the profile caching window (default is 5 minutes). If any changes have been done to the profile in CPD, they are picked up the next time the merge processor refreshes the cache, and there is no need to restart the merge processor run to apply changes to the profile. As each data source is merged, the merge log is updated to reflect it in order for us to be able to determine what has and what has not been merge.
How does the merge processor state watcher work?
The merge process is a managed data flow run that is not resumed automatically by the data flow framework in case of failure. This is the technical reason behind the MergeProcessorStateWatcher implemented in Java code to periodically checks the state of the merge processor data flow run and, if the state is FAILED, resume the run.
The MergeProcessorStateWatcher check method is invoked by the Platform function pzMergeProcessorWatcher(), which is contained in the pzRunProfileMergeKafkaAlertCheck activity executed periodically by the pzCheckProfileMergeKafkaAlert job scheduler. By default, it runs every 3 minutes, and this can be configured by the merge processor state watched DSS (profile/merge/mergeProcessorWatcher). The Job Scheduler pzMergeMetricsConfigPulse also works in the same context for the same feature for reporting merge processor metrics.
We have created an internal BUG item (BUG-853551) to have the external documentation updated for these Job Schedulers – this is a work in progress and should be completed soon.
-------------------------------------