-
Notifications
You must be signed in to change notification settings - Fork 121
Frequently Asked Questions
You can switch on debug logging by passing the following commandline parameter: -Dfix.core.debug=true
. Different types of debug logging can be enabled through different tags. The available options are in the LogTag
class.
If you want to configure the channel through which the Library and Engine talk to each other then you can set the aeronChannel
configuration property, if you want more detailed configuration then both the Library and Engine have an aeronContext
configuration property.
See the Key Concepts page.
In a cluster by default all messages are replicated throughout the cluster. This replication system is a derivative of Raft and provides a linearizable log of the messages.
You can implement a custom SessionReplicationStrategy
in order to determine on a session-by-session basis whether the messages of a given session are replicated. If a session's messages isn't replicated they will only be sent out by a node that considers itself to be the leader. However because we don't wait for an acknowledgement before reading or writing the non-replicated messages there is no guarantee that a quorum of cluster members consider this node to be the leader.
You can register an implementation of the RoleHandler
interface on the FixEngine. This will receive callbacks when a node transitions to a leader, follower or candidate. A node that used to be the leader but which has been netsplit can believe that it is still the leader until it re-establishes contact with the rest of the cluster. So the node that is the leader is the one that has the most recent onTransitionToLeader
callback invoked. Ordering is defined by the leadershipTerm. If you are communicating with an external system from several nodes (for example updating a virtual IP address that is pointing at the leader) then this ordering can be used to disambiguate out of order messages.
We don't checksum in flight messages, which means that any non-ECC memory is vulnerable to message corruption.
The gateway ships with uk.co.real_logic.fix_gateway.dictionary.CodecGenerationTool
which generates codecs in the appropriate style for use with the FIX Gateway. By default the gateway depends upon a minimal FIX protocol that just includes the session codecs. If practice you want to exclude these session codecs from the build in order to use a real FIX protocol that a venue has provided, in order to do this simply exclude the project fix-gateway-session-codecs
from your dependency graph. An example of this can be seen in the FIX Integration project that generates full FIX 4.2 and 4.4 codecs for the purpose of integration testing.