[This message was posted by Mikael Brannstrom of Nordic Growth Market 
<mikael.brannst...@ngm.se> to the "General Q/A" discussion forum at 
http://fixprotocol.org/discuss/22. You can reply to it on-line at 
http://fixprotocol.org/discuss/read/84aee162 - PLEASE DO NOT REPLY BY MAIL.]

Hi Dennis,

The large retransmissions may occur on market data feeds. If a client gets 
disconnected for example one or few hours intraday and then reconnects, then 
that client have missed "GB of data" that need to be retransmitted. Instead a 
snapshot would be a better idea, since the client would get in sync much 
faster. 

Regards
Mikael

> Hi Mikael,
> 
> "...with a new field, e.g. MsgHistoryLostIndicator=Y/N (default=N), that 
> tells the other side that it probably need to request snapshots since some 
> important messages could not be retransmitted."
> 
> This is good. I've never encountered a system doing the "we only store X 
> messages" yet it seems to me that the MsgHistoryLostIndicator will be a vital 
> part of such functionality.
> 
> I submit to you, though, that if systems are requesting such large 
> retransmissions there will be bigger hardware and software issues needing 
> resolution. (How were there so many messages 'in the pipe' between the two 
> systems unprocessed by the receiver? You suggest GB of messages. What 
> communications medium supports such buffer sizes? If not in the transport 
> layer, how can a receiving system with such insufficient performance get into 
> production?)
> 
> Re: "bilateral agreement" - while this sounds good for making a proposal more 
> acceptable, in practice it isn't quite that simple. Vendors and clients can 
> become entrenched (as I am) as to their positions. I.e. - one party demands 
> the bilateral agreement while the other opposes it.
> 
> In our "bad experiences" the only thing that resolved the impass was the fact 
> that we were not engaging in 24 hour connectivity. This proposal removes that 
> obstacle.
> 
> Once again, best regards,
> 
> Dennis
> 
> > Hi Dennis,
> > 
> > Thanks for your more detailed comments.
> > 
> > Would the following be a better solution?
> > 
> > 1. "the system only stores X messages" is responded with a GapFill with a 
> > new field, e.g. MsgHistoryLostIndicator=Y/N (default=N), that tells the 
> > other side that it probably need to request snapshots since some important 
> > messages could not be retransmitted. 
> > We will probably have to come up with a better name for the new field to 
> > capture other usages. For example, it might be a bad idea to resend several 
> > GB of data intraday - instead a snapshot would be a quicker way to recover. 
> >  
> > 
> > 2. "It seems that the more appropriate [...] include the 'next expected seq 
> > num' in the logout". Good point. This approach does not rule out the reset 
> > on logon feature. Both will work in parallel. 
> > 
> > 3. Reset on logon is an optional feature. Same as is "Logon Message 
> > NextExpectedMsgSeqNum Processing" and "24 hour logon reset" as it seems 
> > since it's a bilateral agreement when and who initiates the 24 hour logon 
> > reset. 
> > 
> > The "logon reset" is still usable for example if the client side did crash 
> > and quickly want to logon instead being forced to logon, receive a logout 
> > to see the NextExpectedSeqNum and then logon again. There are other use 
> > cases as well ...
> > 
> > 1, 2 and 3 together meet the requirements of NGM.
> > 
> > 
> > For future reference:
> > 
> > "If memory serves, it is not allowed to seqeuence-reset-reset to a number 
> > lower than what is next expected."
> > 
> > You're correct. This one was hard to find in the FIXT 1.1 spec. See test 
> > case with Ref ID 11c at page 46. Otherwise the spec is not that clear about 
> > this.
> > 
> > 
> > 
> > Regards
> > Mikael Brännström, NGM
> > 
> > 
> > 
> > > Hi Mikael,
> > > 
> > > I apologise for having to stand against this proposal. In response to 
> > > your queries...
> > > 
> > > If memory serves, it is not allowed to seqeuence-reset-reset to a number 
> > > lower than what is next expected. You are only allowed to reset higher. 
> > > Any session approaching MAX_INT messages over one session likely more 
> > > urgently needs to split up the traffic over multiple sessions.
> > > 
> > > As regards your previous question re: costs to redevelop and test 
> > > existing systems. Much of the session state and logic is predicated upon 
> > > existing data having been committed and applied to the receiving system's 
> > > state. Sequence numbers never go lower and the session rules guard 
> > > against that allowing deeper code to safely assume that predicate. 
> > > Further, the message logs document the contracted commitments of the two 
> > > parties on either side of the connection allowing for issue resolution.
> > > 
> > > So existing systems would potentially need to be redeveloped, retested 
> > > and recertified if/when new clients claim that our FIX implementation 
> > > does not conform to the FIX standard.
> > > 
> > > We have experienced clients & vendors demanding we support this behavior 
> > > after having seen the 24 hour reset seq num "feature" in the FIX 
> > > specification. This led to many headaches which too often were abused by 
> > > vendors and clients, creating potential liabilities for our company. The 
> > > vast majority of the time connecting parties simply wanted to avoid 
> > > fixing their bugs or avoid putting into place the required hardware.
> > > 
> > > Ultimately, I would not have any concerns with this proposal if our 
> > > experiences would have been more positive. Instead, we had nothing but 
> > > bad experiences with remote connecting vendors and clients using the 
> > > reset seq num feature as an "out" which then required us to work around 
> > > their irresponsibility. Where does our liability and responsibility end?
> > > 
> > > It seems that the more appropriate approach to the scenarios this 
> > > proposal covers is for the session initiator to accept that the bug or 
> > > hardware failure occured on *its* side and, rather than demanding that 
> > > the session acceptor reset sequence numbers lower, the session initiator 
> > > should increase its sequence numbers and notify operators that 
> > > investigation is required. The session acceptor can include the "next 
> > > expected seq num" in the logout which rejects the logon. In the case of 
> > > "the system only stores X messages" then the retrans request should be 
> > > gap filled up to the point at which the X messages can be resent. 
> > > Overall, I believe that this is what the FIX protocol presently 
> > > recommends and such a solution does not impact existing implementations.


[You can unsubscribe from this discussion group by sending a message to 
mailto:unsubscribe+100932...@fixprotocol.org]

-- 
You received this message because you are subscribed to the Google Groups 
"Financial Information eXchange" group.
To post to this group, send email to fix-proto...@googlegroups.com.
To unsubscribe from this group, send email to 
fix-protocol+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/fix-protocol?hl=en.

Reply via email to