If you are currently using version 5.x.x, we advise you to upgrade to the latest version before the EOL date. You can find the latest documentation here.
This plug-in is deprecated and is no longer supported by Geneos.
We recommend that you not use any deprecated features, as these may be removed in future releases.
For more information, see Deprecated and removed features in Geneos Compatibility Matrix.
Triarch Latency Plug-In - Technical Reference
Introduction
The Geneos Triarch Latency Plug-in monitors the latency between a SRC-DIST and a P2PS market feed. The RFA5 version of the plug-in uses the MarketFeed data format, the RFA6 version of the plug-in can use either MarketFeed or the more optimised RWF data format but can only be run on Solaris 10.
Views
View
The Triarch Latency plug-in produces one view, TRIARCH_LATENCY, which shows the User the time taken for market messages to pass through the system:
Headline Legend
Name | Description |
---|---|
numSamplingReporters | Number of places that the message is run |
publishingInstrument | Name of the publishing element that the system is publishing and then reading |
Table Legend
Name | Description |
---|---|
reporter | Name of the individual reporters that are reading the Market data feed. |
status | Status of the connection (OK or TimedOut). |
lastTurnAround | Time to deliver the last message. |
lastSampleTime | The time that the last message was received by the reporter. |
aveTurnAround5Min | Average turn-around over the last 5 minutes. |
aveTurnAround15Min | Average turn-around over the last 15 minutes. |
aveTurnAround60Min | Average turn-around over the last 60 minutes. |
Plug-in Configuration
The following parameters can be configured for this plug-in:
config
Variable to store the Refinitiv RFA configuration data. This will be in the Refinitiv RFA configuration file format (see section Latency Configuration File for details on the format). On initialization the probe will save this to the file specified in configFilename.
Mandatory: No
configFilename
Full path to the latency configuration file (see section Latency Configuration Filefor details on the format). This is a Refinitiv RFA configuration file. If the config setting has been specified, then this file will be overwritten with the contents of the config setting every time the plug-in is initialized.
Latency Configuration File
The latency configuration file is a flat file Refinitiv config database (for full details see Refinitiv Foundation API C++ Edition The Configuration Guide).
An RFA Session needs to be defined for each Reporter and the Originator. The following additional fields must be defined to bind the Originator and Reporters to the defined RFA Sessions.
Defining the Originator of the data:
Geneos\Originator\<NAME>\Session = <SessionName>Geneos\Originator\<NAME>\Subject = <SubjectName>Geneos\Originator\<NAME>\FieldName = <ItemName>Geneos\Originator\<NAME>\Type = "ManagedMarketDataPublisher"
Defining the Reporter of the data (multiple reporters can be defined I the latency at multiple points is being measured):
Geneos\Reporter\<NAME>\Session = "Session1"
Geneos\Reporter\<NAME>\Subject = <4 part Item name>Geneos\Reporter\<NAME>\Type = " MarketDataSubscriber"
In order to use the RWF data format (available with the RFA v6 version of the plug-in), use the following Reporter and Originator types instead:
Geneos\Originator\<NAME>\Type = "RDMProvider"
Geneos\ Reporter\<NAME>\Type = " RDMConsumer"
The low latency CallbackThreadModel can be enabled in the OMMConsumer with the following line:
Geneos\Reporter\<NAME>\ThreadModel = "CallbackThreadModel"
To use this the session OMMPerfMode MUST be set to "Latency" (see example 2 below)
Example 1: MarketDataFeed
Adapters\SASS3_Adapter\requestQueueReadThreshold= 1
Adapters\SASS3_Adapter\mainLoopTimerInterval = 200
Adapters\SSLED_Adapter\masterFidFile = "/var/triarch/appendix_a"
Adapters\SSLED_Adapter\enumTypeFile = "/var/triarch/enumtype.def"
Adapters\SSLED_Adapter\downloadDataDict = false
Connections\Connection_SSLED\PortNumber = 8101
Connections\Connection_SSLED\UserName = "nbkn9hl"
Connections\Connection_SSLED\ServerList = "itrsblade5"
Connections\Connection_SSLED\connectionType = "SSLED"
Connections\Connection_SSLED\logEnabled = True
Connections\Connection_SSLEDMP\connectionType = "SSLED_MP"
Connections\Connection_SSLEDMP\ipcServerName = "s_name_5"
Connections\Connection_SSLEDMP\logEnabled = True
Connections\Connection_SSLEDMP\logFileSize = 10000
Logger\AppLogger\windowsLoggerEnabled = false
Logger\AppLogger\fileLoggerEnabled = true
# The following lines are required for RFASTTicker example
Services\LAT_TEST\dataFormat = "marketfeed"
Services\LAT_TEST\dataDictList = "MF"
Connections\Connection_SSLED\serviceList = "LAT_TEST"
Connections\Connection_SSLEDMP\serviceList = "LAT_TEST"
DataDictionaries\MF\dataDictType = "marketfeed"
Logger\ComponentLoggers\Connections\messageFile = "ConnectionsMessages.mc"
Logger\ComponentLoggers\Adapter\messageFile = "AdapterMessages.mc"
Logger\ComponentLoggers\SessionCore\messageFile = "SessionLayerMessages.mc"
Logger\ComponentLoggers\SSLED_Adapter\messageFile= "SSLED_AdapterMessages.mc"
Logger\ComponentLoggers\SSLED_MP_Adapter\messageFile= "SSLED_MP_AdapterMessages.mc"
Logger\ComponentLoggers\STIC_Adapter\messageFile = "STIC_AdapterMessages.mc"
Logger\ComponentLoggers\SASS3_Adapter\messageFile = "SASS3_AdapterMessages.mc"
Logger\ComponentLoggers\LicensingSystem\messageFile= "SessionLayerMessages.mc"
Sessions\Session1\connectionList = "Connection_SSLEDMP"
Sessions\Session2\connectionList = "Connection_SSLED"
Control\Entitlements\dacs_CbeEnabled = False
Control\Entitlements\dacs_SbeEnabled = False
Control\Entitlements\dacs_SbePubEnabled = False
Control\Entitlements\dacs_NewsCbeEnabled = False
Geneos\Originator\OriginatorName1\Session = "Session1"
Geneos\Originator\OriginatorName1\Subject = "LAT_TEST"
Geneos\Originator\OriginatorName1\FieldName = "ITEM_NAME.O"
Geneos\Originator\OriginatorName1\Type = "ManagedMarketDataPublisher"
Geneos\Reporter\ReporterUK1\Session = "Session2"
Geneos\Reporter\ReporterUK1\Subject = "LAT_TEST.ANY.ITEM_NAME.O"
Geneos\Reporter\ReporterUK1\FieldName = "ITEM_NAME.O"
Geneos\Reporter\ReporterUK1\Type = "MarketDataSubscriber"
Example 2: RWF
Adapters\SASS3_Adapter\requestQueueReadThreshold= 1
Adapters\SASS3_Adapter\mainLoopTimerInterval = 200
Adapters\SSLED_Adapter\masterFidFile = "/var/triarch/appendix_a"
Adapters\SSLED_Adapter\enumTypeFile = "/var/triarch/enumtype.def"
Adapters\SSLED_Adapter\downloadDataDict = false
Adapters\RSSL_Cons_Adapter\Adapters\rsslMultithreaded = false
Connections\Connection_RSSL_CONS\connectionType = "RSSL"
Connections\Connection_RSSL_CONS\rsslPort = 14002
Connections\Connection_RSSL_CONS\UserName = "nbkn9hl"
Connections\Connection_RSSL_CONS\hostName = "itrsblade4"
Connections\Connection_RSSL_CONS\logEnabled = True
Connections\Connection_RSSL_PROV\connectionType = "RSSL_PROV"
Connections\Connection_RSSL_PROV\rsslPort = "14005"
Connections\Connection_RSSL_PROV\logEnabled = True
Connections\Connection_RSSL_PROV\logFileSize = 10000
Connections\Connection_RSSL_PROV\hostName = "itrsblade4"
Connections\Connection_RSSL_PROV\maxOutputBuffers = 1000
Connections\Connection_RSSL_PROV\guaranteedOutputBuffers = 1000
Connections\Connection_RSSL_PROV\flushRetryInterval = 100
Connections\Connection_RSSL_PROV\tcp_nodelay = true
Connections\Connection_RSSL_PROV\forceFlushOnWrite = true
Logger\AppLogger\windowsLoggerEnabled = false
Logger\AppLogger\fileLoggerEnabled = true
# The following lines are required for RFASTTicker example
Services\LAT_TEST\dataFormat = "marketfeed"
Services\LAT_TEST\dataDictList = "MF"
Connections\Connection_RSSL_CONS\serviceList = "LAT_TEST"
Connections\Connection_RSSL_PROV\serviceList = "LAT_TEST"
DataDictionaries\MF\dataDictType = "marketfeed"
Logger\ComponentLoggers\Connections\messageFile = "ConnectionsMessages.mc"
Logger\ComponentLoggers\Adapter\messageFile = "AdapterMessages.mc"
Logger\ComponentLoggers\SessionCore\messageFile = "SessionLayerMessages.mc"
Logger\ComponentLoggers\SSLED_Adapter\messageFile= "SSLED_AdapterMessages.mc"
Logger\ComponentLoggers\SSLED_MP_Adapter\messageFile= "SSLED_MP_AdapterMessages.mc"
Logger\ComponentLoggers\STIC_Adapter\messageFile = "STIC_AdapterMessages.mc"
Logger\ComponentLoggers\SASS3_Adapter\messageFile = "SASS3_AdapterMessages.mc"
Logger\ComponentLoggers\LicensingSystem\messageFile= "SessionLayerMessages.mc"
Sessions\Session1\connectionList = "Connection_RSSL_PROV"
Sessions\Session2\connectionList = "Connection_RSSL_CONS"
Sessions\Session1\responseQueueMaxBatchSize = 1
Sessions\Session1\responseQueueBatchInterval = 10
Sessions\Session1\responseQueueBias = 5
Sessions\Session2\OMMPerfMode = "Latency"
Sessions\Session2\responseQueueMaxBatchSize = 1
Sessions\Session2\responseQueueBatchInterval = 10
Sessions\Session2\responseQueueBias = 1
Control\Entitlements\dacs_CbeEnabled = False
Control\Entitlements\dacs_SbeEnabled = False
Control\Entitlements\dacs_SbePubEnabled = False
Control\Entitlements\dacs_NewsCbeEnabled = False
Geneos\Originator\OriginatorName1\Session = "Session1"
Geneos\Originator\OriginatorName1\Subject = "LAT_TEST"
Geneos\Originator\OriginatorName1\FieldName = "ITEM_NAME.O"
Geneos\Originator\OriginatorName1\Type = " RDMProvider"
Geneos\Reporter\ReporterUK1\Session = "Session2"
Geneos\Reporter\ReporterUK1\Subject = "LAT_TEST.ANY.ITEM_NAME.O"
Geneos\Reporter\ReporterUK1\FieldName = "ITEM_NAME.O"
Geneos\Reporter\ReporterUK1\Type = " RDMConsumer"
Geneos\Reporter\ReporterUK1\ThreadModel = "CallbackThreadModel"