Logout sequence corner cases

Imported from previous forum

  • Sorry for crossposting, but my question didn’t attract much attention in “4.0 Session” -

After having read the specification, I’m still having some trouble properly understanding the logout sequence. Maybe someone on the list can help me out.

Consider the following situation:

I am the logout initiator and I send my Logout message. However, when the counterparty responds with his logout message, I discover that it has a seqNo too high.

What can I do now? Sending a ResendRequest will consume a new outbound sequence number, so my earlier Logout message will no longer be the last message in the connection.

On page 32, the FIX.4.4 specification says: “Note counterparty may send a ResendRequest message if Logout message response has MsgSeqNum too high and then re-initiate the Logout process.”

What does “re-initiate the Logout process” mean in this context? Does it mean that my ResendRequest invalidates my earlier Logout message and that I will have to send a new Logout message by the time the acceptor has sent the necessary GapFills?

kind regards,
Erik van Zijst

  • Sorry for crossposting, but my question didn’t attract much attention
    in “4.0 Session” -

After having read the specification, I’m still having some trouble
properly understanding the logout sequence. Maybe someone on the list
can help me out.

Consider the following situation:

I am the logout initiator and I send my Logout message. However, when
the counterparty responds with his logout message, I discover that it
has a seqNo too high.

What can I do now? Sending a ResendRequest will consume a new outbound
sequence number, so my earlier Logout message will no longer be the last
message in the connection.

On page 32, the FIX.4.4 specification says: “Note counterparty may send
a ResendRequest message if Logout message response has MsgSeqNum too
high and then re-initiate the Logout process.”

What does “re-initiate the Logout process” mean in this context? Does it
mean that my ResendRequest invalidates my earlier Logout message and
that I will have to send a new Logout message by the time the acceptor
has sent the necessary GapFills?

kind regards, Erik van Zijst

Send a TestRequest message before Send Logout Message, So you can find gap from the TestRequest’s heartbeat.

  • Sorry for crossposting, but my question didn’t attract much
    attention in “4.0 Session” -

After having read the specification, I’m still having some trouble
properly understanding the logout sequence. Maybe someone on the list
can help me out.

Consider the following situation:

I am the logout initiator and I send my Logout message. However, when
the counterparty responds with his logout message, I discover that it
has a seqNo too high.

What can I do now? Sending a ResendRequest will consume a new outbound
sequence number, so my earlier Logout message will no longer be the
last message in the connection.

On page 32, the FIX.4.4 specification says: “Note counterparty may
send a ResendRequest message if Logout message response has MsgSeqNum
too high and then re-initiate the Logout process.”

What does “re-initiate the Logout process” mean in this context? Does
it mean that my ResendRequest invalidates my earlier Logout message
and that I will have to send a new Logout message by the time the
acceptor has sent the necessary GapFills?

kind regards, Erik van Zijst

Send a TestRequest message before Send Logout Message, So you can find
gap from the TestRequest’s heartbeat.

But then what if the acceptor sends another message after it responded to the TestRequest? This post-TestRequest message could still get lost.

Hi,

your code logic must check for missing messages always, and then retry for logout again.

Cheers
Byron

  • Sorry for crossposting, but my question didn’t attract much
    attention in “4.0 Session” -

After having read the specification, I’m still having some trouble
properly understanding the logout sequence. Maybe someone on the
list can help me out.

Consider the following situation:

I am the logout initiator and I send my Logout message. However,
when the counterparty responds with his logout message, I discover
that it has a seqNo too high.

What can I do now? Sending a ResendRequest will consume a new
outbound sequence number, so my earlier Logout message will no
longer be the last message in the connection.

On page 32, the FIX.4.4 specification says: “Note counterparty may
send a ResendRequest message if Logout message response has
MsgSeqNum too high and then re-initiate the Logout process.”

What does “re-initiate the Logout process” mean in this context?
Does it mean that my ResendRequest invalidates my earlier Logout
message and that I will have to send a new Logout message by the
time the acceptor has sent the necessary GapFills?

kind regards, Erik van Zijst

Send a TestRequest message before Send Logout Message, So you can find
gap from the TestRequest’s heartbeat.

But then what if the acceptor sends another message after it responded
to the TestRequest? This post-TestRequest message could still get lost.

Hi,

your code logic must check for missing messages always, and then retry
for logout again.

OK, so if I detect a sequence gap after I sent my initiating Logout message, I should send a ResendRequest, wait for all gap fills and then send a new Logout?

Cheers Byron

  • Sorry for crossposting, but my question didn’t attract much
    attention in “4.0 Session” -

After having read the specification, I’m still having some trouble
properly understanding the logout sequence. Maybe someone on the
list can help me out.

Consider the following situation:

I am the logout initiator and I send my Logout message. However,
when the counterparty responds with his logout message, I discover
that it has a seqNo too high.

What can I do now? Sending a ResendRequest will consume a new
outbound sequence number, so my earlier Logout message will no
longer be the last message in the connection.

On page 32, the FIX.4.4 specification says: “Note counterparty may
send a ResendRequest message if Logout message response has
MsgSeqNum too high and then re-initiate the Logout process.”

What does “re-initiate the Logout process” mean in this context?
Does it mean that my ResendRequest invalidates my earlier Logout
message and that I will have to send a new Logout message by the
time the acceptor has sent the necessary GapFills?

kind regards, Erik van Zijst

Send a TestRequest message before Send Logout Message, So you can
find gap from the TestRequest’s heartbeat.

But then what if the acceptor sends another message after it
responded to the TestRequest? This post-TestRequest message could
still get lost.

Yes, ideally you would like to resolve all gap issues before logout.

Hi,

your code logic must check for missing messages always, and then retry
for logout again.

OK, so if I detect a sequence gap after I sent my initiating Logout
message, I should send a ResendRequest, wait for all gap fills and then
send a new Logout?

Cheers Byron

  • Sorry for crossposting, but my question didn’t attract much
    attention in “4.0 Session” -

After having read the specification, I’m still having some
trouble properly understanding the logout sequence. Maybe
someone on the list can help me out.

Consider the following situation:

I am the logout initiator and I send my Logout message. However,
when the counterparty responds with his logout message, I
discover that it has a seqNo too high.

What can I do now? Sending a ResendRequest will consume a new
outbound sequence number, so my earlier Logout message will no
longer be the last message in the connection.

On page 32, the FIX.4.4 specification says: “Note counterparty
may send a ResendRequest message if Logout message response has
MsgSeqNum too high and then re-initiate the Logout process.”

What does “re-initiate the Logout process” mean in this context?
Does it mean that my ResendRequest invalidates my earlier Logout
message and that I will have to send a new Logout message by the
time the acceptor has sent the necessary GapFills?

kind regards, Erik van Zijst

Send a TestRequest message before Send Logout Message, So you can
find gap from the TestRequest’s heartbeat.

But then what if the acceptor sends another message after it
responded to the TestRequest? This post-TestRequest message could
still get lost.