-
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
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.