Re: [Quickfix-developers] Contributing code
Brought to you by:
orenmnero
From: Joerg T. <Joe...@ma...> - 2003-11-18 14:08:53
|
Hi Howard, > Issue #1 > If a FIX client connects to the QuickFIX acceptor, using a SessionID > already in use, it fouls the state of the Session object associated with > that SessionID resulting in the Second connection being dropped, but the > first connection no longer calling events on the Application class. It > is also impossible to prevent the second connection from being accepted > within the Application class override, because the OnLogon event is > never raised. > > Fix > My fix for this solution is to disconnect an existing connection when a > second connection with a "connected" SessionID comes in. The first > connection is disconnected (App gets LogOut event) and the second > connection is accepted (App gets Logon event). The FIX 4.3 spec says in the chapter "FIX Session-level Testcases and Expected Behaviour", section "Test Cases" on page 39: b. Logon message received with duplicate identity (e. g. same IP, port, SenderCompID, TargetCompID, etc. as existing connection) 1. Generate an "error" condition in test output. 2. Disconnect without sending a message (note sending a Reject or Logout would consume a MsgSeqNum) IMHO, this solution violates the FIX spec. The second connection attempt should be dropped. Could you implement this? > Modules Affected: (Acceptor.cpp, SocketConnection.cpp) > Modules Affected: (Session.cpp) It would be nice to have the complete changed files. Doing diff against the current CVS version is quite easy. Thanks! Cheers, Jörg -- Joerg Thoennes http://macd.com Tel.: +49 (0)241 44597-24 Macdonald Associates GmbH Fax : +49 (0)241 44597-10 Lothringer Str. 52, D-52070 Aachen |