How does BC-ebXML implement duplicate elimination?

How does BC-ebXML implement duplicate elimination?

book

Article ID: KB0086207

calendar_today

Updated On:

Products Versions
TIBCO BusinessConnect ebXML Protocol -
Not Applicable -

Description

Resolution:
DuplicateElimination is configured via the BC configuration GUI. Both Request and Response Actions have a field called 'Eliminate Duplicate Messages?' to configure this. When configured on the request action, the responder is being asked to follow the behavior. When configured on the response action, the initiator is being asked to follow the behavior.


The possible values are:

never: The sender asks the receiver to never eliminate duplicate messages.
always: The sender asks the receiver to always eliminate duplicate messages.
perMessage: The sender private process dictates to the receiver whether or not it requires duplicate message elimination.


An incoming message is checked against the local configuration to make sure it is consistent.  If inconsistent then a MSH Error of Inconsistent is returned to the sender.

Four cases can arise:
1. If DuplicateElimination is configured and present in the message then a duplicate request will not be forwarded to the application. At the same time BC checks whether a previous message was returned. If so then such message is re-sent back to the trading partner again.

2. If DuplicateElimination is NOT configured and IS present in the incoming message then an MSH Error of Inconsistent is returned.

3. If DuplicateElimination IS configured and is NOT present in the incoming message then an MSH Error of Inconsistent is returned.

4. If DuplicateElimination is NOT configured and the incoming message does NOT contain a DuplicateElimination element then BC will not detect any anomaly and will pass it on to the application.


By default, all messages are kept in the data store for life unless you run the SQL cleanup script provided (ebxml_rm_cleanup.sql). From the GUI each action has a 'Persist Duration (mins.)' field. This dictates how long the incoming message will be kept in the data store until you run the cleanup SQL script.  The script will cleanup those that have persist duration elapsed.

Issue/Introduction

How does BC-ebXML implement duplicate elimination?