Details
-
Type: Improvement
-
Status: Closed
-
Priority: Default
-
Resolution: Won't Fix
-
Affects Version/s: 1.1.0, 1.2.0, 1.2.1
-
Fix Version/s: None
-
Component/s: Engine
-
Labels:None
Description
In a failover setup, two instances with QuickFIX/J engines are running on different nodes. They connect to the same database using Jdbc. One engine is started and persists its session state into the database.
The other instance is stopped. If a failover occurs (instance crashes etc.), the second instance takes over and the engine is started. But the session state is not refreshed from the database. It has been loaded when the instance started and the QF connector (acceptor or initiator) has been constructed. In the meanwhile, the other instance has updated the session state.
I would expect that the second instance picks up the new session state on connector.start() or even better immediately before the Logon is sent / processed.
RefreshOnLogon already does this for acceptors. Maybe this is a good place to add this for initiators.
In summary, a general MessageStore.refresh() is required at connector.start(). If possible, immediately before the Logon (network connection already established) would be great.