QuickFIX/J

Extend dynamic creation of sessions to have template IDs for each FIX version

Details

  • Type: Improvement Improvement
  • Status: Closed Closed
  • Priority: Default Default
  • Resolution: Fixed
  • Affects Version/s: 1.3.0
  • Fix Version/s: 1.3.0
  • Component/s: Engine
  • Labels:
    None

Description

This is an extension to QFJ-165.
Currently the way to allow for dynamic sessions is to use and specify a set of session settings and a template SessionID that will drive the creation of new sessions dynamically.

That works great as long as all the new sessions are of same FIX version and need the same data dictionary file.

However, if you want to support different FIX versions coming across the same acceptor connection this paradigm breaks down, since only the data dictionary of the template session will be used.

The simple solution is to use a Map of templateIDs --> SessionSettings, with different settings for each corresponding session id. Then you look up the appropriate template ID based on the incoming FIX version and use the corresponding settings.

Not sure if this simple approach has a similar (but yet undiscovered) future drawback....

Workaround:
In client code, you can subclass from DynamicAcceptorSessionProvider and override the getSession() method to overwrite the value of Data dictionary path to be the right version.

Issue Links

Activity

Hide
Steve Bate added a comment - 08/Aug/07 2:07 PM

You could also create a template for each FIX version and bind them to separate acceptor ports. Clients would connect to a specific port depending on the version of FIX they wanted to use.

Show
Steve Bate added a comment - 08/Aug/07 2:07 PM You could also create a template for each FIX version and bind them to separate acceptor ports. Clients would connect to a specific port depending on the version of FIX they wanted to use.
Hide
Toli Kuznets added a comment - 08/Aug/07 7:23 PM

Good point - I guess we can have multiple SocketAcceptors and as a result multiple DynamicAcceptorSessionProviders.
that's a good workaround.

however, ideally i think it'd be good to have an option of being able to multiple different FIX version over the same port connection.

Show
Toli Kuznets added a comment - 08/Aug/07 7:23 PM Good point - I guess we can have multiple SocketAcceptors and as a result multiple DynamicAcceptorSessionProviders. that's a good workaround. however, ideally i think it'd be good to have an option of being able to multiple different FIX version over the same port connection.

People

Vote (0)
Watch (0)

Dates

  • Created:
    07/Aug/07 3:49 AM
    Updated:
    11/Feb/09 5:22 PM
    Resolved:
    16/Aug/07 1:48 PM