Enable duplicate detection and suppression

To enable duplicate checking of responses and cross session responses, add the following JVM parameter to the Interact runtime.

-Dcom.unicacorp.interact.rhDupeCheckLimit=<max records>

Here, <max records> is the maximum number of unique records to be held for checking duplicates. This checking is disabled, if its value is 0, which is the default value.

In addition, the following JVM parameter can also be added to the Interact run time. If its value is true, duplicated responses and cross session responses are suppressed. By default, it is disabled.

-Dcom.unicacorp.interact.rhSuppressDupe=<true|false>

Once the duplicate check is enabled, a warning message is logged in interact.log with the information of the duplicates. This check occurs at the following two stages in the code.
  • After Interact processes the response event, but before it is added into the memory cache.
  • When Interact is about to persist the response event into the staging table.

Moreover, a new property CacheInfo is added to the JMX bean com.unicacorp.interact:type=Services,group=Response History Memory Cache Statistics. When the duplicate check is enabled, it returns information about the memory cache in the following format.

{<cache ID>=<earliest response timestamp>-><latest response timestamp>: <number of records in this cache> - {<audience ID>, <treatment code>, <response timestamp>=<number of occurrences>}}

For example:

{2043682026=20201113102136->20201113102136: 10 - {Customer ([1.0]), 7.a.ffffffff9aae0b53.4d37d0d3, 2020-11-13 10:21:36.377=10}}

Only the duplicated entries are included in the message.

It is similar to enabling duplicate checking of contacts, add the following JVM parameter to Interact runtime. The following JVM parameters are required.

  • -Dcom.unicacorp.interact.chDupeCheckLimit=<max records>
  • -Dcom.unicacorp.interact.chSuppressDupe=<true|false>

The affected JMX bean is com.unicacorp.interact:type=Services,group=Contact History Memory Cache Statistics