FIXTradingCommunity / fixp-specification

FIXP - FIX performance session layer specification
Other
48 stars 17 forks source link

FinishedSending message delivery #60

Closed ujos closed 6 years ago

ujos commented 6 years ago

As far as FinishedSending message is the Session Level message, it does not have assigned Sequence Number.

What if remote peer sends FinishedSending but local peer does not receive it, because connection is dropped in the middle? This message cannot be retransmitted...

donmendelson commented 6 years ago

While waiting for FinishedReceiving, FinishedSending is retransmitted at heartbeat intervals in place of Sequence or Context.

When a session is being finalized, but the FinishedReceiving message has not yet been received, then FinishedSending message must be used as the heartbeat.

The spec does not currently address what happens if the connection drops after FinishedSending is transmitted but before FinishedReceiving is received. From the peer's perspective, since it missed the FinishedSending message, it would assume that the session is still valid and attempt to re-establish. Then it should get FinishedSending again as the heartbeat and complete the finalization sequence.

ujos commented 6 years ago

Right. Thank you!