Dan you said below ...
>>>persistDuration has to be interpreted as an agreement between the two
parties that every (reliable) message will have a TTL <= persistDuration<<<
If we do this, then it is an alteration to the spec as currently the sender
is free to set TTL to whatever value they want without prior agreement.
Currently persistDuration is a value that is set by the MSH that receives
the message. If you require that persistDuration
> TTL for all cases, then
it will have to be set to exceed the longest TTL of all agreements.
The other alternatives I can think of are:
1. The To Party publishes their persistDuration and the sender agrees to use
a value for TTL which is less than this
2. The To Party uses TTL to work out how long to keep message for so that
persistDuration varies from message to message, or
3. The To Party reports a warning error if TTL >= persistDuration but
processes the message anyway
4. The To Party reports a fatal error if TTL >= persistDuration and rejects
the message.
I think I prefer 1 combined with 3.
Thoughts?
David