[QFJ-213] MessageStore should refresh immediately before connector start or logon Created: 19/Jul/07 Updated: 06/Oct/07 Resolved: 06/Oct/07 |
|
Status: | Closed |
Project: | QuickFIX/J |
Component/s: | Engine |
Affects Version/s: | 1.1.0, 1.2.0, 1.2.1 |
Fix Version/s: | None |
Type: | Improvement | Priority: | Default |
Reporter: | Jörg Thönnes | Assignee: | Steve Bate |
Resolution: | Won't Fix | Votes: | 0 |
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. |
Comments |
Comment by Steve Bate [ 16/Aug/07 ] |
Did you try using RefreshOnLogon with the initiators? From looking at the code, this will refresh the state for initiators before sending the logon message. It sounds like the behavior you want. I'm curious, how are you signalling the backup initiator to become active and logon? |
Comment by Steve Bate [ 06/Oct/07 ] |
AFAIK, the current code should exhibit the desired behavior. |