Une règle de duplication est définie par le modèle de duplication. Elle compte le deuxième événement et les suivants acceptés dans l'intervalle de temps défini, tout en omettant leur traitement par le jeu de règles. Il s'agit d'une règle avec état.
Le modèle de duplication est généralement utilisé pour isoler des événements semblables (en double) au cours d'une période. Un événement en double est semblable, en un sens, à un événement précédent, mais il ne s'agit pas forcément d'une copie exacte de cet événement. Les événements sont des doublons dès qu'ils répondent aux critères de sélection d'événement pour la règle. La période est indiquée par une plage temporelle obligatoire, telle que définie par l'élément <timeWindow> dans le langage de règle.
Le premier événement déclenche l'action <onDetection> même si aucun événement en double n'a été reçu. La raison d'un tel comportement s'explique par le fait que vous souhaiterez peut-être réacheminer le premier événement et ignorer le traitement du jeu de règles des événements en double. Dans ce cas, vous pouvez ajouter une action de réponse à la règle qui réachemine le premier événement lorsque l'action <onDetection> est déclenchée pour la règle.
Le traitement par défaut des événements en double (le deuxième événement et les suivants) consiste à compter un événement en double, tout en omettant son traitement par le jeu de règles. Si vous souhaitez effectuer une action supplémentaire sur un événement en double, vous pouvez définir explicitement une action <onNextEvent>. Par exemple, dans certains cas, l'événement en double représente un événement susceptible d'être déjà journalisé dans une base de données ou un autre référentiel. Dès lors, vous souhaiterez peut-être coder une action <onNextEvent> pour supprimer l'événement en double de ces autres emplacements.
Une action <onTimeWindowComplete> peut être utilisée pour créer un enregistrement récapitulatif de tous les événements incluant le nombre de doublons qui ont été traités.
Une fois que le message "Refus de service" s'est affiché depuis le moniteur de sécurité, tous les doublons de cet événement se produisant au cours d'une période de 30 secondes sont comptés, mais ne sont pas envoyés à une console opérateur. De même, à la fin de la période de 30 secondes, la règle génère un événement indiquant le nombre de messages "Refus de service" qui ont été émis au cours de la période.