Cross-session response process

Cross-session response process starts with Interact initialization. It processes records in cross session response staging table. The process keeps polling the table for new or retry records for processing after a configurable time interval.

Affinium|interact|services|crossSessionResponse|xsessionProcessIntervalInSecs. Successful records are purged from the table. Unsuccessful records are marked to retry for a particular time. Affinium|interact|services|crossSessionResponse|purgeOrphanResponseThresholdInMinutes. Records are not processed successfully after multiple attempts.Affinium|interact|services|crossSessionResponse|purgeOrphanResponseThresholdInMinutes. Minutes after the record response time, these records are marked as "Failed".

To support the multiple runtime instances to work on same data, each cross-session response process updates xsessionResponseBatchSize number of records to “In Process” with a unique value for mark column known to that process only. The process attempts to match these records with the available contact history data using the system-defined SQLs for match byTreatmentCode and byOfferCode. For the records where match is found, system triggers log response and the mark column is updated back to "success".
Note: Updating mark column with process-specific unique value is applicable only when there is no “Override SQL” configured by the user. When “Override SQL” option is used to define the matching query, cross-session response process takes the exclusive database lock on the cross-session response staging table, processes records, and releases lock.

If there is a large number of unprocessed records available in xSessionResponse table, there can be performance issues when CrossSessionResponse service attempts to process all records at once. To improve performance, users can define Affinium|interact|services|crossSessionResponse|xsessionResponseBatchSize to a positive integer value. CrossSessionResponse service processes xsessionResponseBatchSize records at a time and loops through the xSessionResponse table till all new or retry records are processed.