|
From: Ajay P. <ap...@en...> - 2019-04-23 19:48:58
|
The FIX Spec mentions "Before actually closing the session, the logout initiator should wait for the opposite side to respond with a confirming Logout <5> <https://www.onixs.biz/fix-dictionary/4.2/msgType_5_5.html> message. This gives the remote end a chance to perform any Gap Fill operations that may be necessary. The session may be terminated if the remote side does not respond in an appropriate timeframe." The code quickfix.Session in the next method is as below if (sessionSchedule != null && !sessionSchedule.isNonStopSession()) { // Only check the session time once per second at most. It isn't // necessary to do for every message received. final long now = SystemTime.currentTimeMillis(); if ((now - lastSessionTimeCheck) >= 1000L) { lastSessionTimeCheck = now; if (!isSessionTime()) { if (state.isResetNeeded()) { * reset(); // only reset if seq nums are != 1* } return; // since we are outside of session time window } else { // reset when session becomes active resetIfSessionNotCurrent(sessionID, now); } } } The reset method generates the logout message and instantly disconnects. public void reset() throws IOException { if (!isResetting.compareAndSet(false, true)) { return; } try { if (hasResponder() && isLoggedOn()) { if (application instanceof ApplicationExtended) { ((ApplicationExtended) application).onBeforeSessionReset(sessionID); } * generateLogout();* * disconnect("Session reset", false);* } resetState(); } finally { isResetting.set(false); } } In this case, it looks like there is no waiting for LogoutTimeout. Is this supposed to be like this. We believe one execution report message that was sent to us a 1 ms after we sent the logout was not received because of this. If this is not expected behavior, I can open a jira Ajay Patwardhan Enfusion LLC -- DISCLAIMER: Transmission confidential, intended for use by entities named above and those properly entitled to access. Information may be privileged and/or exempt from disclosure under applicable law. Unauthorized use, distribution, dissemination, or duplication is prohibited. If received message in error, please notify us and delete original. |