You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We use a 3rd party vendor for order entry and market data. We use Golang 1.14.2 (the code uses master branch of quickfixgo). The counter party always sends us a full snapshot of the order book after a logon using 35=X message. Any subsequent incremental changes come as 35=X as well. For the most part this works fine for us to build the order book.
Just to stage the scenario, we have 2 open orders, a bid and an offer. I have been testing network disconnect/reconnect by simply turning of the WiFi connection right after the full snapshot is received. Once I see the engine attempting to reconnect, I reconnect the WiFi.
This is a stripped down version of our initiator: main.go
We noticed that after reconnecting, there is an exchange between the application and counter-party where we get sent the logon message and the full snapshot but the sequence numbers don't match. So a Resend Request is sent. The counter-party expects the application to hold on to the messages as it won't send the snapshot again and sends a Sequence Reset-Reset. We can see that the engine receives the incoming messages but they never get forwarded on to the FromApp handler. I have linked the logs here.
Another situation arises where we do get the full snapshot but for some reason another disconnect is detected (without any intervention) which follows the same pattern as above causing us to lose the snapshot. These logs show this behaviour.
The text was updated successfully, but these errors were encountered:
hackmad
changed the title
SocketInitiator not holding messages between resend request and sequence reset from counter party
Initiator not holding messages between resend request and sequence reset from counter party
Jun 15, 2020
We use a 3rd party vendor for order entry and market data. We use Golang 1.14.2 (the code uses master branch of quickfixgo). The counter party always sends us a full snapshot of the order book after a logon using 35=X message. Any subsequent incremental changes come as 35=X as well. For the most part this works fine for us to build the order book.
Just to stage the scenario, we have 2 open orders, a bid and an offer. I have been testing network disconnect/reconnect by simply turning of the WiFi connection right after the full snapshot is received. Once I see the engine attempting to reconnect, I reconnect the WiFi.
This is a stripped down version of our initiator: main.go
We noticed that after reconnecting, there is an exchange between the application and counter-party where we get sent the logon message and the full snapshot but the sequence numbers don't match. So a Resend Request is sent. The counter-party expects the application to hold on to the messages as it won't send the snapshot again and sends a Sequence Reset-Reset. We can see that the engine receives the incoming messages but they never get forwarded on to the FromApp handler. I have linked the logs here.
Another situation arises where we do get the full snapshot but for some reason another disconnect is detected (without any intervention) which follows the same pattern as above causing us to lose the snapshot. These logs show this behaviour.
The text was updated successfully, but these errors were encountered: