Re: [Quickfix-users] Session restarts
Brought to you by:
orenmnero
From: Oren M. <or...@qu...> - 2006-04-04 17:20:06
|
Brian, Have you tried adding these scenarios to the unit tests? Were the = results normal? --oren ----- Original Message -----=20 From: Brian Erst=20 To: qui...@li...=20 Sent: Tuesday, April 04, 2006 12:08 PM Subject: [Quickfix-users] Session restarts We're seeing some very odd session resets since the switch to DST. Using QuickFIX 1.9.4 (it's a production environment, so we're a few = releases back), I've got the following settings: ConnectionType=3Dacceptor StartDay=3DSunday StartTime=3D00:05:00 EndDay=3DSaturday EndTime=3D23:45:00 MillisecondsInTimeStamp=3DY ResetOnLogout=3DN ResetOnDisconnect=3DN At 2006/04/03-00:00:00 UMT (5am Chicago time -5 UMT), all our = connections reset. Our sessions were completely reset - the socket was = dropped ("Dropped connection"), the sequence numbers were reset and we = had all sorts of problems reconnecting (our clients attempted to = reconnect, but our sequence numbers were now back to "1" and the logon = response (resend sequence) had too low of a sequence number, causing the = other side to drop us). Just when our operations staff got everything = back in sync, the same thing happened at 01:00:00 UMT. The session then stayed up all day until, you guessed it, 00:00:00 UMT = on the 4th. All sessions were dropped and reset, we struggled to get = things back up and at 01:00:00, it happened again. Needless to say, I'm = not the most popular man in the organization today. I've looked at the Session, SessionTime, SessionState and FileStore = code to try to track what's going on. I suspect that for some = unexplained reason we're triggering a session reset because = checkSessionTime() in Session.h is returning false. My guess is that = we're resetting twice because the first time, the "current" time is = failing (00:00:00 UMT) and the second time the "session creation time" = (inside the .session file) is "00:00:00". Upon the creation of the = second session, the .session creation time is 01:00:00 and we're safe = until the "real time" is 00:00:00. The problem is - I can't figure out why this is happening. I've gone = thru the SessionTime code, running the code thru my head with the = appropriate values and everything SEEMS okay, but obviously something is = wrong. As far as I can tell, last night I should have called = isSameSession(00:00:05, 23:45:00, 1, 7, 2006/04/04-00:00:00, = 2006/04/03:01:00:00) - which should have returned "true" but seems to = have returned "false". I can't figure out why - the code is a little = overly complicated (I can tell there are some buggy parts of 1.9.4's = session time code - which shouldn't be triggered with these values) but = it looks OK with these values. Further data point - prior to DST switch, this all worked. We've been = running the exact same code and configuration for months with no = problems. The only reason I mention DST is the coincidence that it would = have first been exercised Monday morning, the problem is time related = and it's only happened since then (and consistently every night). Ideas or suggestions? - Brian Erst Thynk Software, Inc. |