Page tree

Versions Compared

Key

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

...

FIX Antenna 2.27.1

January 30, 2020

The most major features of this release are Scheduler component and flexible affinity mask setup, see below. Scheduler component allows user to build and executes execute flexibly defined schedules and override actions execution if required, see the documentation

...

  • Scheduler component is implemented. 
  • SSLCACertificate is mandatory if peer certificate validation is enabled.
  • Improve logging of errors for unhandled exceptions generating business rejects during processing the message.
  • Parameter Session.Default.SocketTcpMaxSeg is added. It configures the TCP_MAXSEG parameter of the session's TCP/IP connection. It is applicable to initiator sessions only,
  • Added callbacks onAfterMessageIsParsed and onBeforeMessageIsSerialized to FA.NET
  • Improved FIX message parser scalability in a multi-threaded environment.
  • Improved performance and reduced response time of the Session::put method in aggressive_send mode in case if the message can't be sent on spot(engine overload, broken connection, etc).
  • CPU resources consumption is optimized while receiving in even mode( using threads pool) that causes response time decreasing on message path from input to Session::process method.
  • Session parameter "Role" is case insensitive in engine.properties now,
  • New timestamp formats %date{FIXus}, %date{FIXns} %date{ISO8601us}, %date{ISO8601ns} with micro and nano precisions are added for application log output. see: Support of microseconds and nanoseconds timestamps in application logsFormat of log entries in the log file
  • FIX Antenna accepts Hexadecimal values as a CPU affinity mask.

  • Affinity mask for CPU cores can be specified as comma-separated, semicolon-separated lists or as a range see details (Core binding and affinity mask usage in FIX Antenna C++ products).

    Info

    NOTE: The curly braces should be used in case of a single number configuration in order to keep backward compatibility. By default affinity parameter values are treated as affinity mask in decimal format. It the value is set in curly braces than cores number is used instead of the mask.

  • Improve description of AggressiveReceiveDelay parameter
  • EchoServer sample is redesigned to utilize new Engine::SessionsManager::onSessionTerminated callback.

...

  • (SD4906754) Extended logging of incoming connection event

    text has been changed:

    Previous message

    <severity> <timestamp> <thread> [Engine] - New incoming connection was detected (from <target ip>:<target port>).

    Current message

    <severity> <timestamp> <thread> [Engine] - New incoming connection was detected (from <target ip>:<target port> to <local ip>:<local port>).

  • Improved logging of errors for unhandled exceptions generating business rejects during processing the message.

    text has been changed:


    Previous message

    [ERROR] <timestamp> <thread> [Engine] - Session <session> : Exception in Application::process() - "<exception text>"

    Current message

    [ERROR] <timestamp> <thread> [Engine] - Session <DEF, ABC> : Exception in Application::process() - "The message 'New Order - Single' (D) with sequence number 4 can't be processed properly because it causes an exception '<exception text>' at the application level. A business level reject message (j) will be sent to the counterparty."

  • Improved text of FIX Dictionary load warnings

    text has been changed:


    Previous message

    [WARN] <timestamp> <thread> [Engine] - Found duplicate in c:\Downloads\FIX_Antenna_Cpp_2.25.1_274\samples\EchoServer\bin\.\../../../data/fixdic40.xml: / 6

    Current message

    [WARN] <timestamp> <thread> [Engine] - Found duplicated value = '6' for node 'fielddef' with attributes { name='TrdRegPublicationReason' tag='2670' type='int' } in the dictionary fixdic40.xml

  • Improved exception in the logs for loading dictionary failure

    text has been changed:


    Previous message

    [WARN] <timestamp> <thread> [Engine] - 

    Current message

    [ERROR] <timestamp> <thread> [Engine] - FixEngine::init: Cannot load message '<msg>' in the protocol '<version>'. Duplicated tag in the message is found. Possible reason is field used outside the block. Tag: <tag>

  • A WARN record is logged in case when affinity configuration can't be applied
  • FIX Antenna prints the resulted affinity configuration in the log.

...

Documentation

...

  • Engine processes message after the session is disconnected