[Quickfix-developers] QuickFIX/J Initiator failover multi-address has a wrong rolling sequence.
Brought to you by:
orenmnero
|
From: Lin L. <le...@gm...> - 2006-08-14 12:17:04
|
I use QFJ 1.0.1 for testing developement.
I found the Initiator failover multi-address has a wrong rolling sequence.
My setting file like belown:
SocketConnectHost=10.17.198.207
SocketConnectPort=6001
SocketConnectHost1=10.17.198.206
SocketConnectPort1=6001
I expect that session will connect to SocketConnectHost in initializing. if
the SocketConnectHost failing in error then the SocketConnectHost1 will
replace with it.
But in fact,the session connected to SocketConnectHost1 in
initializing.When the SocketConnectHost1 failed in error,session try
reconnect to SocketConnectHost1 too.So QFJ could not connect to
the right FIX server.
I found belown code of QFJ in class IoSessionInitiator:
public synchronized void connect() {
lastReconnectAttemptTime = SystemTime.currentTimeMillis();
try {
IoConnector ioConnector = ProtocolFactory.
createIoConnector(getNextSocketAddress());
ConnectFuture connectFuture = ioConnector.
connect(getNextSocketAddress(), ioHandler);
connectFuture.join();
ioSession = connectFuture.getSession();
} catch (Throwable e) {
quickfixSession.getLog().onEvent("Connection failed: " +
e.getMessage());
}
}
The method always try connect with invoking getNextSocketAddress() twice.
So cause the getting error address problem descripted in the begining of
this mail.
Is it?
Regards,
--
Lin Lejiang
|