I think that based on the three potential solutions given the Reject it is the most fitting, for the following reasons:
1. The behaviour is an exception to the usual behaviour and so should be highlighted as so. 2. As you pointed out yes it is better than ignoring it as you are at least providing a response. 3. For an auditable and controllable environment this behaviour needs to be highlighted as it would if an error was sent, or at least it would force an investigation into why it was rejected.
As for the last solution I agree it would put too much burden on the receiving system, as it has to keep a record of all interactions it has sent.
In my experience the creation of complicated rule based processing can cause more problems than it solves and it’s sometimes better to go with simplest option, as if this behavior is an exception it needs to be determined what is causing it, that needs to be addressed rather than dealing with it with predefined rules.
Based on this I think that new Message.id needs to be used on a resend as this id is suppose to be unique and is referenced by the acknowledgement message and its purpose is to keep track of messages sent and handled.
- The Reject may be the simplest solution. The Dutch infrastructure has gone for the complicated final option, which get quite complicated. On you last note about Message.ids on a resend: the jury is still out on that on, because it isn't clear what type of identifier the message.is is. See Transmission.id. Rene spronk 20:52, 26 Jul 2006 (CDT)