EOL

Effective 30 April 2017, RTIC and RV Latency Plug-In - Technical Reference reached end of life. This documentation is archived and will no longer be updated.

RTIC and RV Latency Plug-In - Technical Reference

Introduction Copied

The Geneos RTIC / RV Plug-in monitors the time it takes RV messages to make a specific round trip. The plug-in publishes test messages across the configured RV networks and subscribes to the same message. A publishing entity is referred to as a message originator and a subscribing entity is a message reporter as it will report a latency figure. The latency figure quoted is the difference between the published time and the time the reporter receives the response and is measured to microsecond resolution.

A single instance of the plug-in can be configured to have one Originator and many Reporters. The plug-in can be configured in two ways.

Sass3 Copied

To locally publish a message into a Reuters TIC - RMDS Edition (RTIC) or other infrastructure that supports the Sass3 protocol, the message originator is configured as a “MarketDataPublisher”. A reporter can be configured as a “MarketDataSubscriber” and will support Sass3 subscriptions.

As Sass3 runs over RV, RVD’s must be configured to send the messages to the correct publish multicast channel. The message will pass through the RTIC and be published out on the subscribe multicast channel, which will be picked up by the subscribing RVD and passed back to the plug-in [Fig 1]. The plug-in supports publication of Q-form message types. Multiple reporters can be configured if the RTIC is cascaded to other machines.

rv-latency2

RTIC-Latency Message Path

Generic RV Messages Copied

To publish messages to the local RVD network, the message originator is configured as a “GenericPublisher”. A reporter configured as a “GenericSubscriber” will subscribe directly from the local network (or from Sass2 publishing infrastructure). Here the plug-in is configured to communicate with the RV Layer only. A message is passed from the plug-in to the RVD, is published onto the multicast channel and is picked up by the subscribing RVD and then passed back into the plug-in:

rv-latency3

RV-Latency Message Path

Views Copied

View Copied

The RTIC / RV Latency Plug-in produces a single view per plug-in instance:

rv-latency4

View of RTIC-Latency Plug-in Configured with an Originator and 7 Reporters.

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 Copied

The following parameters can be configured for this plug-in:

config Copied

Variable to store the Reuters RFA configuration data. This will be in the Reuters 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 Copied

Full path to the latency configuration file (see section Latency Configuration File for details on the format). This is a Reuters 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.

Mandatory: No

Default: latency.cfg

responseTimeout Copied

Timeout period on waiting for a message

Units: Seconds

Mandatory: No

Default: 10s

publishInterval Copied

Interval between publishing events.

Units: Seconds

Mandatory: No

Default: 20s

private Copied

The private configuration section holds settings used for debugging the plug-in. Please contact ITRS support if you require assistance with this plug-in.

Latency Configuration File Copied

Originator and Reporters Copied

The latency configuration file follows the Reuters RFA configuration database format. More details of RFA configuration can be found in the Reuters 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 = "MarketDataPublisher" | "GenericPublisher"

Defining the Reporter of the data (multiple reporters can be defined if multiple latency points are being measured):

Geneos\Originator\<NAME>\Session = "Session1"
Geneos\Originator\<NAME>\Subject = <SubjectName>Geneos\Originator\<NAME>\Type = "MarketDataSubscriber" | "GenericSubscriber"

The Originator and Reporter sessions must be bound to connections. For MarketDataPublisher and MarketDataSubscriber types, the session type must be Sass3. The Sass3 session must then be bound to an RV subscribe and RV publish session.

For MarketDataSubscriber and GenericSubscriber types, the session is bound directly to an RV session.

Q-Form Publishing Copied

To publish a Q-form message to an RTIC the following parameters are required:

\Geneos\Originator\<NAME>\ClassId = 6012

This is the form class id that will be published.

\Geneos\Originator\<NAME>\FieldName = "Tmp_Str"

This is the field name that the latency info will be published into. This should be at least 30 bytes in size to allow the full timestamp to be published.

\Geneos\Originator\<NAME>\FieldSize = 40

The size, in bytes, of the published field, should be in the range of 30 - 8192 bytes, the default is 40 bytes.

\Geneos\Originator\<NAME>\FieldType = 2

Type 2 (string) is currently supported.

\Geneos\Originator\<NAME>\UseSassControlFields = true

This instructs the plug-in to publish the 4 sass control fields, MSG_TYPE, REC_TYPE, SEQ_NO, REC_STATUS.

Listen Subject Copied

A listen subject can be specified, this instructs the RTIC Originator to listen to the publication channel as well as the subscription channel, and report the latency figure as the time difference between the two events. This can lead to a more accurate latency reading. This should be bound to another RFA session, which is bound to a RV type connection.

\Geneos\Originator\<NAME>\ListenSession = <SessionName>\Geneos\Originator\<NAME>\ListenSubject = "_SASS.XXX.PUB"

Note

The Sass3 protocol means that the listen session subject should be configured as above where xxx is the first of the four part instrument name.

Numeric publishing time fields Copied

The plug-in can optionally append the publishing time into outgoing messages, as numeric 32-bit integer values. Two optional values are available:

e.g. If the message is published at Sat 1 Dec 2012 14:00:00.020740 UTC, then the field values will be TimeSec=1354370400, TimeUSec=20740.

These fields will be enabled if configured with a non-empty field name. For TimeSec configure the following:

\Geneos\Originator\<NAME>\TimeSec_FieldName = "<FieldName>"

Similarly for TimeUSec see the below:

\Geneos\Originator\<NAME>\TimeUSec_FieldName = "<FieldName>"

Example RTIC Latency Configuration Copied

Control\Entitlements\dacs_CbeEnabled = False
Control\Entitlements\dacs_SbeEnabled = False

\Geneos\Originator\OriginatorName1\Session = "Session_Orig1"
\Geneos\Originator\OriginatorName1\Subject = "XYZ.ANY.ABC.CC1"
\Geneos\Originator\OriginatorName1\ClassId = 6012
\Geneos\Originator\OriginatorName1\FieldName = "TMP_STR"
\Geneos\Originator\OriginatorName1\FieldSize = 40
\Geneos\Originator\OriginatorName1\FieldType = 2
\Geneos\Originator\OriginatorName1\UseSassControlFields = true
\Geneos\Originator\OriginatorName1\Type = "MarketDataPublisher"
\Geneos\Originator\OriginatorName1\ListenSession = "Session_Orig2"
\Geneos\Originator\OriginatorName1\ListenSubject = "_SASS.XYZ.PUB"
\Geneos\Originator\<NAME>\TimeSec_FieldName = "ASK"
\Geneos\Originator\<NAME>\TimeUSec_FieldName = "BID"

\Geneos\Reporter\ReporterUK1\Session = "Session_UK1"
\Geneos\Reporter\ReporterUK1\Subject = "XYZ.ANY.ABC.CC1"
\Geneos\Reporter\ReporterUK1\DacsAppName = "534"
\Geneos\Reporter\ReporterUK1\DacsPosition = "127.0.0.1/net"
\Geneos\Reporter\ReporterUK1\FieldName = "TMP_STR"
\Geneos\Reporter\ReporterUK1\FieldSize = 40
\Geneos\Reporter\ReporterUK1\FieldType = 2
\Geneos\Reporter\ReporterUK1\Type = "MarketDataSubscriber"

#Sessions
\Sessions\Session_Orig1\connectionList          = "Connection_RTIC1"
\Sessions\Session_Orig2\connectionList          = "Connection_Pub2"
\Sessions\Session_UK1\connectionList            = "Connection_RTIC_UK1"

#publish
\Connections\Connection_RTIC1\connectionType            = "SASS3"
\Connections\Connection_RTIC1\subscriberRV_Connection   = "Connection_Sub1"
\Connections\Connection_RTIC1\marketDataItemSubTimeout  = 120000
\Connections\Connection_RTIC1\marketDataDictSubTimeout  = 30000
\Connections\Connection_RTIC1\publisherRv_Connection    = "Connection_Pub1"
\Connections\Connection_RTIC1\serviceList                       = "XYZ"

#uk reporter
\Connections\Connection_RTIC_UK1\connectionType                 = "SASS3"
\Connections\Connection_RTIC_UK1\subscriberRV_Connection        = "Connection_Sub1"
\Connections\Connection_RTIC_UK1\marketDataItemSubTimeout = 120000
\Connections\Connection_RTIC_UK1\marketDataDictSubTimeout = 30000
\Connections\Connection_RTIC_UK1\publisherRv_Connection         = "Connection_Sub1"
\Connections\Connection_RTIC_UK1\serviceList            = "XYZ"


\Services\XYZ\dataFormat                = "Qform"
\Services\XYZ\dataDicstList     = "Sass"
\Services\XYZ\inrfastructureType        = "RTIC"

#publish
\Connections\Connection_Pub1\connectionType             = "RV"
\Connections\Connection_Pub1\service                    = "8000"
\Connections\Connection_Pub1\daemon                     = "tcp:192.168.10.6:7500"
\Connections\Connection_Pub1\network                    = "ce0;239.20.250.3;239.20.250.3"
\Connections\Connection_Pub1\connectRetryInterval               = 300000
\Connections\Connection_Pub1\softLinkInstanceSharing    = True

#RVD on a different machine
\Connections\Connection_Sub1\connectionType             = "RV"
\Connections\Connection_Sub1\service                    = "8001"
\Connections\Connection_Sub1\daemon                     ="tcp:192.168.10.6:7500"
\Connections\Connection_Sub1\network                    = "ce0;239.9.250.1;239.9.250.1"
\Connections\Connection_Sub1\connectRetryInterval               = 300000
\Connections\Connection_Sub1\softLinkInstanceSharing    = True
["Geneos"] ["Geneos > Netprobe"] ["Technical Reference"] "1"

Was this topic helpful?