Login Process

Imported from previous forum

[ original email was from Kyung-min Kim - econkmkim@hotmail.com ]
Would you give me solutions to these questions?

  1. Logon acceptor received Logon message from initiator. If ResetReqNumFlag(141)=Y but MsgSeqNum(34) is not 1, then what should acceptor do? seding Logout or just disconnecting?

  2. If PossDupFlag(43) is null or ‘N’ and MsgSeqNum < expected value, what should receiver do? In this case, sending Logout?

  3. When received Sequence Reset message, if GapFillFlag(123) is null or ‘N’ and NewSeqNo < expected value, what should receiver do? seding Logout or just disconnecting?

  4. I sent Logout message and counter-partry send me a message, which is not confirming Logout. In this case, what should I do? When should I process those messages?

Thank you in advance.

Kim Kyung-min
Nextware in Korea.

  1. It’s important to understand that the purpose of the ResetReqNumFlag(141) is to support 24-hour connectivity of a session. (See pg. 15 in the “FIX 4.2 with 5/1/2001 Errata” document for a discussion of this). So ResetReqNumFlag should only be set to “Y” on a FIX session that is ALREADY connected and exchanging Heartbeats successfully. Having said that, if you receive a ResetReqNumFlag=Y but the MsgSeqNum is not 1, I would recommend sending a Logout with a descriptive text, then terminate the session.

  2. Same, send Logout with descriptive text and terminate the session.

  3. Same.

  4. Terminate the session.

> Would you give me solutions to these questions?
>
> 1. Logon acceptor received Logon message from initiator. If ResetReqNumFlag(141)=Y but MsgSeqNum(34) is not 1, then what should acceptor do? seding Logout or just disconnecting?
>
> 2. If PossDupFlag(43) is null or ‘N’ and MsgSeqNum < expected value, what should receiver do? In this case, sending Logout?
>
> 3. When received Sequence Reset message, if GapFillFlag(123) is null or ‘N’ and NewSeqNo < expected value, what should receiver do? seding Logout or just disconnecting?
>
> 4. I sent Logout message and counter-partry send me a message, which is not confirming Logout. In this case, what should I do? When should I process those messages?
>
> Thank you in advance.
>
> Kim Kyung-min
> Nextware in Korea.
>

[ original email was from Peter Lada - lada@twinsun.com ]
1. Here is a situation that requires acceptance of Logon with ReseSeqNumFlag=Y and MsgSeqNum>1. At leaset in my opinion:

a. Initiator sends logon message.
b. It becomes garbled in the transaction, or got lost completely.
c. Initiator retries Logon with MsgSeqNum=2.
d. Repeat a-c as many times as you like.
e. Acceptor gets a logon message with MsgSeqNum > 1

  1. I agree, terminate connection, Optionally send a logout with description.

  2. Same

  3. I think the session should not be terminated. You can accept messages (and process them) until a logout response arrives. It is recommended in FIx 4.2 to define a maximum logout wait, and if it expires, forcibly drop the connection. However, the connection should not be immediately dropped upon sending of Logout, because:

a. Logot message is sent.
b. Logout message is lost in transmission
c. Will send a ResendRequest when noticing missing SeqNum.
d. Reply to ResendRequst, but Logout should be send with PossDupFlag, NOT as GapFill!
e. Other party finally receives logout, and resonds

Other scenario:

a. messages are lost in transmission.
b. Logout sent
c. Receiver sees logout, but with higher MsgSeqNum
d. ResendRequest is issued.
e. GapFill/Resnds are issued.
f. Logout is reponded to

These are my thoughts, I am open to discussion,

Peter Lada

I think acceptor will need to send a Logon back, accepting a connection, floowed by a ResendRequest, that will be answered by a GapFill, since all previous Logon messages are Admin-level, therefore will be replaced by GapFill.

> 1. It’s important to understand that the purpose of the ResetReqNumFlag(141) is to support 24-hour connectivity of a session. (See pg. 15 in the “FIX 4.2 with 5/1/2001 Errata” document for a discussion of this). So ResetReqNumFlag should only be set to “Y” on a FIX session that is ALREADY connected and exchanging Heartbeats successfully. Having said that, if you receive a ResetReqNumFlag=Y but the MsgSeqNum is not 1, I would recommend sending a Logout with a descriptive text, then terminate the session.
>
> 2. Same, send Logout with descriptive text and terminate the session.
>
> 3. Same.
>
> 4. Terminate the session.
>
> > Would you give me solutions to these questions?
> >
> > 1. Logon acceptor received Logon message from initiator. If ResetReqNumFlag(141)=Y but MsgSeqNum(34) is not 1, then what should acceptor do? seding Logout or just disconnecting?
> >
> > 2. If PossDupFlag(43) is null or ‘N’ and MsgSeqNum < expected value, what should receiver do? In this case, sending Logout?
> >
> > 3. When received Sequence Reset message, if GapFillFlag(123) is null or ‘N’ and NewSeqNo < expected value, what should receiver do? seding Logout or just disconnecting?
> >
> > 4. I sent Logout message and counter-partry send me a message, which is not confirming Logout. In this case, what should I do? When should I process those messages?
> >
> > Thank you in advance.
> >
> > Kim Kyung-min
> > Nextware in Korea.
> >
>