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?