When RFID readers are constantly reading tags, there is a high probability of reading the same tag multiple times. The same tag can also be read by multiple readers or antennae if the tag is in their field of view. RFID applications can use the DuplicateEliminationFilter component to filter duplicate events from event processing pipelines processed by RFID Processes. This event handler considers new tag events, read or received within a configured time, as duplicate events based on the tag identifier and other configured criteria. The duplicate events are filtered out by not passing them on through the event processing pipeline. This event handler was introduced in BizTalk Server 2010.
The DuplicateEliminationFilter event handler can be added to the event processing pipeline of an RFID Process by using the Add Component Dialog Box. To add a new event handler to a RFID Process, follow these steps.
-
In RFID Manager, under the Processes node, right-click the RFID process, and click Stop.
-
In RFID Manager, under the Processes node, right-click the RFID process, and then click Edit to enter edit mode for the process.
-
Make sure the process is selected. Then click the Browse tab in the result pane.
-
Right-click Component Bindings, and then click Add New Component.
-
Click DuplicateEliminationFilter in the available components list, and then click the Add button.
-
In the Add Component Instance dialog box, enter a descriptive name in the Instance Name text box for the DuplicateEliminationFilter instance.
-
Refer to the Configuring the DuplicateEliminationFilter Instance section for configuring the properties of the new DuplicateEliminationFilter instance. Click the OK button in the Add Component Instance dialog box when configuration is complete.
-
In the Add Component dialog box, use the Move Up button to move the new DuplicateEliminationFilter instance to the top of the processing pipeline. It will filter duplicate tag events from being passed on to pipeline components that follow it. Then click the Close button for the Add Component dialog box.
-
In RFID Manager, click the Validate button to validate the changes that you made to the process.
-
In RFID Manager, under the Processes node, right-click the RFID process, and then click Start.
The parameters in the following table control the configuration of the DuplicateEliminationFilter event handler.
| Parameter | Type | Description | Default Value |
|---|---|---|---|
|
Duplicate Elimination Interval |
Long |
This parameter specifies the duplicate elimination time period (in milliseconds). If the same tag is read by the event handler within this time period, it is considered a duplicate. |
5000 |
|
Duplicate Elimination Criterion |
String |
This parameter specifies the criterion based on which a tag can be considered to be a duplicate of another tag. The allowed values for this parameter are:
See later in this topic for additional explanation. |
Tag Identifier |
|
Time Reference |
Tag Time Local System Time |
This parameter specifies the time reference used to perform duplicate elimination. If this parameter is set to ‘Tag Time’, duplicate elimination is performed based on the time stamp of the tag. If this parameter is set to ‘Local System Time’, duplicate elimination is performed based on system time at which the tag is received by the component. |
Tag Time |
Duplicate Elimination Interval and Duplicate Elimination Criterion can be used to control how a tag is determined to be a duplicate of another tag that has already been received. The value of the Duplicate Elimination Criterion parameter specifies which properties of two tag events have to be equal for the tags to be considered identical. The following list gives the allowed values for the Duplicate Elimination Criterion parameter and describes what each value means:
-
Tag Identifier: Two tags are considered identical if their tag identifiers are equal.
-
Tag Identifier and Device: Two tags are considered identical if their tag identifiers and device names are equal. This value can be used to eliminate duplicate tag events reported by the same device, while treating tag events raised by different devices as distinct events.
-
Tag Identifier and Device and Source: Two tags are considered identical if their tag identifiers, device names and source names are equal. This value can be used to eliminate duplicate tag events reported by the same antenna. This can be done by treating tag events raised by different sources of the same device (or different devices) as distinct.
-
Tag Identifier and Logical Device: Two tags are considered identical if their tag identifiers are equal and the logical devices from which they are received are also equal.
When configuring Tag Reference to Local System Time, test to verify that Duplicate Elimination Interval is accurately configured for the environment. Any latency that delays the time the tag event is received by the DuplicateEliminationFilter instance could affect the result.
Example Configuration 1
-
Duplicate Elimination Interval : 5000 (default)
-
Duplicate Elimination Criterion : Tag Identifier (default)
-
Tag Reference : Tag Time (default)
A tag event is received by the DuplicateEliminationFilter event handler. Two seconds later another tag event with the same identifier is received by the DuplicateEliminationFilter event handler. The second tag event is received within the Duplicate Elimination Interval and is eliminated as a duplicate of the first tag event because the tag identifiers match.
A third tag event with the same tag identifier is received by the DuplicateEliminationFilter event handler six seconds after the first tag. It is not received within the Duplicate Elimination Interval of the first tag event and therefore is not considered a duplicate. It will be passed through the pipeline to any event handlers that follow the Duplicate Elimination Filter event handler. This aspect of the behavior holds for any value of the Duplicate Elimination Criterion parameter.
Neither the source nor the device play any role in this example. This is because the Duplicate Elimination Criterion parameter has configured the DuplicateEliminationFilter instance to only analyze events based on the tag identifier.
Example Configuration 2
-
Duplicate Elimination Interval : 5000 (default)
-
Duplicate Elimination Criterion : Tag Identifier and Device
-
Tag Reference : Tag Time (default)
A tag event is received by the DuplicateEliminationFilter event handler from the antenna D1_S1 (of device D1). Two seconds later, another tag event is received with the same identifier from the antenna D1_S2 (of device D1). The second tag event is eliminated because it was received within the Duplicate Elimination Interval having the same tag identifier read from the same device.
Three seconds after the first tag event was received, another tag event with the same tag identifier is received by the DuplicateEliminationFilter event handler. This tag was read by the antenna D2_S2 (of device D2). This tag is not eliminated because it is received from a different device. It will be passed through the pipeline to any event handlers that follow the DuplicateEliminationFilter instance.
Example Configuration 3
-
Duplicate Elimination Interval : 5000 (default)
-
Duplicate Elimination Criterion : Tag Identifier and Device and Source
-
Tag Reference : Tag Time (default)
A tag event is received from the antenna D1_S1 (of device D1). Two seconds later, another tag event is received with the same identifier from antenna D1_S2 (of device D1). The second tag event is not eliminated because its source antenna differs from the source antenna of the first tag event.
The DuplicateEliminationFilter event handler logs all error information that is used for troubleshooting in RFID Process log file. For more information about log files and locations, see Log Files with Troubleshooting Information