{{Quickfixn}} disconnect when trying to negotiate sequence numbers

Mike Gatny mgatny at connamara.com
Thu Sep 1 14:02:59 PDT 2016


43=Y must be set in the standard header on messages sent in response to a
resend request.  This includes the particular case where 35=4 and 123=Y.

Specifically, instead of...

2548 20160901-13:38:51.094 : 8=FIX.4.2|9=66|35=4|49=THEM|
56=YOU|34=2507|52=20160901-13:38:50.697|123=Y|36=2508|


... send:

2548 20160901-13:38:51.094 : 8=FIX.4.2|9=66|35=4|49=THEM|56=YOU|34=2507|
*43=Y*|52=20160901-13:38:50.697|123=Y|36=2508|



p.s. It would technically be acceptable to omit 43=Y in the case where 35=4
and 123=N, but this is an exceptional case intended for disaster recovery
and not appropriate for a normal response to a resend request.

--
Mike Gatny
Connamara Systems, LLC

On Thu, Sep 1, 2016 at 2:58 PM, James A. Smith <jsmith at anstca.com> wrote:

> Our counter party would like clarification as to where you expect tag 43
> to be added?
>
>
>
> *From:* Quickfixn [mailto:quickfixn-bounces at lists.quickfixn.com] *On
> Behalf Of *Mike Gatny
> *Sent:* Thursday, September 01, 2016 12:34 PM
> *To:* Mailing list for QuickFIX/n
> *Subject:* Re: {{Quickfixn}} disconnect when trying to negotiate sequence
> numbers
>
>
>
> Your counterparty (redacted) is e.g. sending you a logon under seq num
> 2507:
>
> 2517 20160901-13:38:50.891 : 8=FIX.4.2|9=64|35=A|49=THEM|
> 56=YOU|34=2507|52=20160901-13:38:50.520|108=60|
>
>
>
> ...then some resend ensues... and then counterparty finishes off the
> resend with a combined seq reset / gap fill over the previous logon, *but
> without setting the PossDup flag (43=Y):*
>
>
>
> 2548 20160901-13:38:51.094 : 8=FIX.4.2|9=66|35=4|49=THEM|
> 56=YOU|34=2507|52=20160901-13:38:50.697|123=Y|36=2508|
>
> 2549 20160901-13:38:51.110 : 8=FIX.4.2|9=105|35=5|34=41|49=
> YOU|52=20160901-13:38:51.094|56=THEM|58=MsgSeqNum too low, expecting 2508
> but received 2507|
>
>
>
> I am typically slow to blame the other side, but I think that is plain
> wrong. I would be happy to hear their counter-argument, though I think the
> FIX spec is clear in this case.  It is do-able to add some config to go out
> of spec and workaround this (wouldn't be the first time), but of course the
> less of that we have to do the better.
>
>
>
> Might be interesting to check whether the other QF impls handle this.
>
>
>
> --
>
> Mike Gatny
> Connamara Systems, LLC
>
>
> --
>
> Mike Gatny
> Connamara Systems, LLC
>
>
>
> On Thu, Sep 1, 2016 at 11:30 AM, Grant Birchmeier <
> gbirchmeier at connamara.com> wrote:
>
> James, Mike is asking for your *message* log, not your event log.
>
>
>
> You need to make sure to delete any passwords or other sensitive
> information from it before sending.
>
>
>
> Because it is very large, maybe send it to Mike directly (as an
> attachment, not a paste) instead of on the list.
>
>
>
> (I'm going to admin-deny your event-log email from going to the list,
> because it's very large and not what we need.)
>
>
>
> -Grant
>
>
>
> On Thu, Sep 1, 2016 at 10:04 AM, Mike Gatny <mgatny at connamara.com> wrote:
>
> Hmm that almost looks like an off-by-one problem with the seqnums on
> recovery.  Which qf/n release version are you on (latest is v1.7.0)?  Can
> you post a sanitized messages log so we can follow along with one of those
> resends?
>
>
> --
>
> Mike Gatny
> Connamara Systems, LLC
>
>
>
> On Thu, Sep 1, 2016 at 10:42 AM, James A. Smith <jsmith at anstca.com> wrote:
>
> Hi team,
>
>
>
> I have an acceptor that is having problems negotiating sequence numbers
> after I bounce the server:
>
>
>
> 20160901-14:27:12.373 : Received logon
>
> 20160901-14:27:12.373 : Responding to logon request
>
> 20160901-14:27:12.373 : MsgSeqNum too high, expecting 11367 but received
> 11602
>
> 20160901-14:27:12.373 : Sent ResendRequest FROM: 11367 TO: 0
>
> 20160901-14:27:12.420 : ResendRequest for messages FROM: 11367 TO: 0 has
> been satisfied.
>
> 20160901-14:27:12.436 : Received SequenceReset FROM: 11371 TO: 11372
>
> 20160901-14:27:13.295 : Processing queued message: 11602
>
> 20160901-14:27:13.295 : Verify failed: MsgSeqNum too low, expecting 11603
> but received 11602
>
> 20160901-14:27:13.295 : Session FIX.4.2:ANS->BMO disconnecting: Verify
> failed: MsgSeqNum too low, expecting 11603 but received 11602
>
> 20160901-14:27:13.295 : Session FIX.4.2:ANS->BMO already disconnected:
> Received msg type '8' when not logged on
>
> 20160901-14:27:47.933 : FIX.4.2:ANS->BMO Socket Reader 11144452 accepting
> session FIX.4.2:ANS->BMO from 165.185.251.141:10456
>
> 20160901-14:27:47.933 : FIX.4.2:ANS->BMO Acceptor heartbeat set to 60
> seconds
>
> 20160901-14:27:47.933 : Received logon
>
> 20160901-14:27:47.933 : Responding to logon request
>
> 20160901-14:27:47.933 : MsgSeqNum too high, expecting 11603 but received
> 11855
>
> 20160901-14:27:47.933 : Sent ResendRequest FROM: 11603 TO: 0
>
> 20160901-14:27:47.964 : ResendRequest for messages FROM: 11603 TO: 0 has
> been satisfied.
>
> 20160901-14:27:47.979 : Received SequenceReset FROM: 11605 TO: 11606
>
> 20160901-14:27:48.870 : Processing queued message: 11855
>
> 20160901-14:27:48.870 : Verify failed: MsgSeqNum too low, expecting 11856
> but received 11855
>
> 20160901-14:27:48.870 : Session FIX.4.2:ANS->BMO disconnecting: Verify
> failed: MsgSeqNum too low, expecting 11856 but received 11855
>
> 20160901-14:28:23.633 : FIX.4.2:ANS->BMO Socket Reader 19043604 accepting
> session FIX.4.2:ANS->BMO from 165.185.251.141:10457
>
> 20160901-14:28:23.633 : FIX.4.2:ANS->BMO Acceptor heartbeat set to 60
> seconds
>
> 20160901-14:28:23.633 : Received logon
>
> 20160901-14:28:23.633 : Responding to logon request
>
> 20160901-14:28:23.633 : MsgSeqNum too high, expecting 11856 but received
> 12024
>
> 20160901-14:28:23.633 : Sent ResendRequest FROM: 11856 TO: 0
>
> 20160901-14:28:23.680 : ResendRequest for messages FROM: 11856 TO: 0 has
> been satisfied.
>
> 20160901-14:28:23.680 : Received SequenceReset FROM: 11857 TO: 11858
>
> 20160901-14:28:24.242 : Processing queued message: 12024
>
> 20160901-14:28:24.242 : Verify failed: MsgSeqNum too low, expecting 12025
> but received 12024
>
> 20160901-14:28:24.242 : Session FIX.4.2:ANS->BMO disconnecting: Verify
> failed: MsgSeqNum too low, expecting 12025 but received 12024
>
>
>
>
>
> Here is my config file:
>
> # default settings for sessions
>
> [DEFAULT]
>
> FileStorePath=store
>
> FileLogPath=log
>
> ConnectionType=acceptor
>
> ReconnectInterval=60
>
> SenderCompID=ANS
>
>
>
> # session definition
>
>
>
> [SESSION]
>
> UseDataDictionary=N
>
> ValidateUserDefinedFields=N
>
> BeginString=FIX.4.2
>
> TargetCompID=BMO
>
> UseLocalTime=Y
>
> StartTime=04:30:00
>
> EndTime=18:30:00
>
> ReconnectInterval=30
>
> HeartBtInt=30
>
> SocketAcceptPort=9304
>
> SocketConnectHost=165.185.251.141
>
> DataDictionary=BMOFIX42.xml
>
> # RequiresOrigSendingTime=N
>
> # test CheckLatency
>
> CheckLatency=N
>
>
>
>
>
>
>
> _______________________________________________
> Quickfixn mailing list
> Quickfixn at lists.quickfixn.com
> http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com
>
>
>
>
> _______________________________________________
> Quickfixn mailing list
> Quickfixn at lists.quickfixn.com
> http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com
>
>
>
>
>
> --
>
> Grant Birchmeier
>
> *Connamara Systems, LLC*
>
> *Made-To-Measure Trading Solutions.*
>
> Exactly what you need. No more. No less.
>
> http://connamara.com
>
>
> _______________________________________________
> Quickfixn mailing list
> Quickfixn at lists.quickfixn.com
> http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com
>
>
>
> _______________________________________________
> Quickfixn mailing list
> Quickfixn at lists.quickfixn.com
> http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20160901/f57549ae/attachment-0002.htm>


More information about the Quickfixn mailing list