[Quickfix-developers] Cannot reconnect after ungraceful disconnect
Brought to you by:
orenmnero
|
From: John D. <joh...@ch...> - 2005-10-27 15:33:21
|
Hi,
We are having issues re-establishing QuickFIX sessions after our initiator
disconnects ungracefully. We have traced through the code, and our problem
seems to be this loop inside ThreadedSocketConnection::setSession():
// see if the session frees up within 5 seconds
for ( int i = 1; i <= 5; ++i )
{
m_pSession = Session::registerSession( sessionID );
if ( m_pSession ) break;
process_sleep( 1 );
}
Question 1: What is this loop doing? Who is going to free the session within
5 seconds?
As I step through Session::resgisterSession(), the problem seems to be here:
if ( isSessionRegistered( sessionID ) ) return 0;
isSessionRegistered() always returns true, so the session is never
re-established.
Can anyone help me understand what is going on here? When should
isSessionRegistered() return false? After a session has been physically
disconnected? At some other time?
Thanks in advance for any help or advice.
John
|