[Date Prev][Date Next] [Chronological] [Thread] [Top]

Another problem with abandon



Due to abandon not having a response, I've found another little problem with message ID re-use.

The current protocol draft says that a client can re-use a messageID as long as it can be determined that the operation associated with that messageID has completed (this can be determined either by seeing a response to the earlier message, or completing a successful bind).

Here's the problem:

MessageID 1 is used for an operation, the server is processing this op.
Abandon is sent for MessageID 1
A response is sent for operation 1
The client, seing that operation 1 has returned a response, uses messageID 1 again for another operation
This next message reaches the server, and is processed before the previously sent abandon request.
The previous abandon request ends up abandoning the second operation.

I'm not sure yet how to fix this. If we say that:
- a messageID cannot be reused until a subsequent bind, we limit the number of messages between binds to maxInt.
- a messageID of an abandoned operation cannot be reused, it limits the number of abandoned messages between binds to maxInt.

I sure wish abandon had a resonse...

Jim