[Quickfix-developers] MsgSeqNum too low
Brought to you by:
orenmnero
From: Brian E. <azz...@ya...> - 2008-03-18 15:24:14
|
I have a counterparty that uses a non-standard way to indicate failover from one FIX backend to another (using FIX 4.2). If the first FIX node fails, you are disconnected (either socket dropped or a quick logout). When you reconnect and are directed to the failover node, the only indication that you've failed over is that the sequence number is "1". Of course, QuickFIX rightly rejects that as "MsgSeqNum too low" and starts a mad race to reconnect with until it gets a valid sequence number in the login response. I need to short circuit that behavior. If I'm reconnecting to a failover node, I need to detect that I got a "too low" sequence number and then disconnect, reset my own sequence numbers and login with a 141=Y. That brings both systems back into sync. My quick perusal of the QF 1.12.4 source doesn't look promising. It appears that it reads a FIX message from the socket, calls two versions of "next", which call nextLogon, which eventually calls verify(login...) which will throw an exception captured within the send loop, logging it out and writing the error to the error log. At no point do I see a place where my application will be informed either of the message or its failure. Anyone know what I'm missing? Or do I have to turn all validation off (which would REALLY suck)? Or do I have to create a custom FileLogger that will look for the "MsgSeqNum too low" text (double-plus-ungood)? - Brian Erst |