Take a look at the DynamicAcceptorSessionProvider
and how it's used in the Executor example. The Executor example reads session "templates" from the settings file and associates these with the acceptor endpoint IP address. An acceptor template is identified by the "AcceptorTemplate=true" setting. Any of the session ID fields, including the FIX version, can be wildcarded, not just the SenderCompID.
See the executor_dynamic.cfg for an example of how session templates are defined. In this configuration, both the SenderCompID and TargetCompID are wildcarded and templates for various FIX versions are defined (to specify the appropriate data dictionary file).
When a message arrives for an unknown session ID, the DynamicAcceptorSessionProvider
will try to match the session ID with a template's wildcarded sessionID. If it finds a match, the new session will be created automatically and added to the acceptor as if it had been explicitly defined in the settings. The new session will have the settings defined in the acceptor session template.
The DynamicAcceptorSessionProvider
is an AcceptorSessionProvider
implementation that uses the settings file to support dynamic session creation. However, you could also implement a custom AcceptorSessionProvider
that could dynamically create sessions based on database information, for example.
SenerCompID
isEXEC
and theTargetCompID
isBANZAI
. I infer this to mean that setting theSenderCompID
of the acceptor to*
will result in the messages, coming from the acceptor, not being identified with a sender. All the examples I've seen seem to indicate that theSenderCompID
is the current sender's ID (in this case if it's an Acceptor then it's the CompID of the exchange). – Epley