Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Configure throttling

...

outgoing messages

Info

Throttling of outgoing messages is available since FIXEdge C++ 6.14.0 release.

Throttling of outgoing messages allows limiting the amount of sent FIX messages within a time interval.

Overview

If the throttling of outgoing messages is configured for the session, FIXEdge sends to the counterparty the particular amount of messages (MessagesLimit) within the specified time interval (IntervalMs) using the mechanism defined in the Type property. 

...

If at least one of these parameters is specified with an incorrect value then the FIX session will not be created.

Configure throttling incoming messages

Info

Throttling incoming messages is available since FIXEdge C++ 6.15.0 release.

Throttling incoming messages allows limiting the amount of received FIX messages within a time interval.

Overview

If the throttling of incoming messages is configured for the session, FIXEdge receives from the counterparty the particular amount of messages (MessagesLimit) within the specified time interval (IntervalMs) using the mechanism defined in the Type property. 

If the amount of received FIX messages exceeds the specified MessagesLimit within the configured IntervalMs then the onIncomingThrottling callback with the particular DefaultAction will be called.

When configuring several throttlers for the session, they must be listed in the Throttlers parameter in the order of severity.

Configuration example

Throttling properties must be configured in the FIXEdge.properties file:

Code Block
titleFIXEdge.properties
FixLayer.FixEngine.Session.TestFIXAcceptor.Throttlers = MyGeneralInLimiter1, MyGeneralInLimiter2 

FixLayer.FixEngine.Session.TestFIXAcceptor.Throttlers.MyGeneralInLimiter1.Direction = Incoming
FixLayer.FixEngine.Session.TestFIXAcceptor.Throttlers.MyGeneralInLimiter1.Type = SlidingWindowMessages
# throttler type dependent parameters
FixLayer.FixEngine.Session.TestFIXAcceptor.Throttlers.MyGeneralInLimiter1.MessagesLimit = 10000
FixLayer.FixEngine.Session.TestFIXAcceptor.Throttlers.MyGeneralInLimiter1.IntervalMs = 10000
FixLayer.FixEngine.Session.TestFIXAcceptor.Throttlers.MyGeneralInLimiter1.DefaultAction = TerminateWithLogout

FixLayer.FixEngine.Session.TestFIXAcceptor.Throttlers.MyGeneralInLimiter2.Direction = Incoming
FixLayer.FixEngine.Session.TestFIXAcceptor.Throttlers.MyGeneralInLimiter2.Type = SlidingWindowMessages
# throttler type dependent parameters
FixLayer.FixEngine.Session.TestFIXAcceptor.Throttlers.MyGeneralInLimiter2.MessagesLimit = 100
FixLayer.FixEngine.Session.TestFIXAcceptor.Throttlers.MyGeneralInLimiter2.IntervalMs = 10000
FixLayer.FixEngine.Session.TestFIXAcceptor.Throttlers.MyGeneralInLimiter2.Type = SendReject

Log messages

If the MessagesLimit or IntervalMs property is specified with an incorrect value, the warning below will be logged:

...