|
From: Philip W. <Phi...@fl...> - 2019-04-24 00:18:56
|
I agree. In fact this is still present in master: https://github.com/quickfix-j/quickfixj/blob/master/quickfixj-core/src/main/java/quickfix/Session.java#L861 The logout mechanism is actually closer to spec compliance than it used to be - 1.6.4 ensured we actually send the logout at all. https://www.quickfixj.org/jira/browse/QFJ-885 It is fortunate that the existing reset functionality already has the `isResetting` atomic boolean and doesn't guarantee the session has reset before it returns as the method can't block for this. I think the approach will need to be that the `next()` method called from timer code, when `isResetting` is true, checks to see if we have been waiting more than a configurable time (with a sensible default of a few seconds). When either we get the logout response or the timer expires we disconnect. We'll need to test to make sure we handle any intervening messages correctly. A good workaround for this is just not to close your session until somewhat after the trading window to allow for late execution responses. I try to keep QFJ login and logout times both away from application startup/shutdown and trading window start/ends to avoid unnecessary race behaviour. Whether the fix is back-ported to the 1.6.x branch I'm not sure - it'll depend on how complex it is I guess. Best regards, Philip Whitehouse FlexTrade Ltd. ________________________________ From: Ajay Patwardhan <ap...@en...> Sent: 23 April 2019 20:19 To: qui...@li... Subject: [Quickfixj-users] Session reset behavior in 1.6.4 ATTENTION: This email was sent from someone outside of FlexTrade. Always use caution when opening attachments or clicking links. QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ QuickFIX/J Support: http://www.quickfixj.org/support/ |