1. Home
  2. API Catalog
  3. Refinitiv Real-Time Java SDK

Refinitiv Real-Time SDK - Java

Quick Start

Last update Sept 2021
Environment Windows, Linux
Compilers JDK 1.7 or greater
Prerequisites

The steps outlined within this guide depend on details outlined within the RTSDK Java Installation Guide available within the Documentation tab. Ensure this document is at your disposal.

Access to an existing Refinitiv Real-Time Distribution System to retrieve content

Introduction

The goal of this Getting Started tutorial is to provide the developer the steps required to download and confirm they have access to their Refinitiv Real-Time Distribution System (RTDS) by executing one of the packaged RTSDK examples.  EMA and ETA are sub-components of the RTSDK (Refinitiv Real-Time SDK) package that includes a number of examples available to test specific functionality.  For our purposes, the goal is to walk through the procedure to specify the connection details to access your market data environment to connect and retrieve market data content.

The tutorial is applicable to both Linux and Windows environments.

Download the RTSDK

The RTSDK package includes the Enterprise Message API (EMA) and Enterprise Transport API (ETA) components.  Outlined within the RTSDK Java Installation Guide, you can refer to the sections to obtain the download package, setting up Gradle, and establishing any dependencies required to run the packaged examples. 

Select and configure a consumer sample

Once the RTSDK package has been installed within your file system, you can begin the process of verifying you can successfully retrieve streaming data from your RTDS environment.  As outlined within the Building Examples section defined within the RTSDK Java Installation Guide, ensure you can generate a listing of the RTSDK examples.  This will ensure your Gradle system is operating and prepare you to try out one of the examples.

Once you have successfully listed the examples as outlined within the Installation Guide, then we can move to the Building and Running an Example using Gradle section within the guide.  While there are many examples to try, for our purposes, we will simply consume some streaming market data from the platform using the example runVaConsumer.

To run this example, you will need to ensure you the following:

  • Server connection details
    • Eg: ads:14002
  • Service providing market data
    • Eg: MDSERVICE

You will need to reach out to your market data team to get this required information.

Build and run the example

As outlined within the Installation Gude, use Gradle to build and run this example.

    	
            
To list the command-line parameters:
 
> Gradlew runVaConsumer --args="-?"
 
And an example of how to run this test to retrieve streaming market data:
 
> Gradlew runVaConsumer --args="-c rtds:14002 ELEKTRON_AD mp:AAPL.O"

Upon execution, we are presented with some initial connection results followed by our initial image called a RefreshMsg. The RefreshMsg or initial image contains all fields for the requested instrument representing the latest up-to-date market values. Following this image, we will begin to see UpdateMsgs or real-time updates reflecting changes in the market.

The example application will automatically exit after ~1 minute.  Alternatively, you can (Ctrl+C) to exit at any time.

    	
            

Consumer initializing...

Channel Up Event: java.nio.channels.SocketChannel[connected local=/10.46.208.3:60241 remote=ewa/10.116.80.111:14002]

Received Login Refresh for Username: U8007876

LoginRefresh:

        streamId: 1

        name: U8007876

        nameType: 1

        State: Open/Ok/None - text: "Login accepted by host torsrmds11."

        isSolicited: true

        applicationId: 256

        applicationName: ADS

        position: 10.46.208.3/U8007876-TPL-A

        providePermissionProfile: 0

        providePermissionExpressions: 1

        singleOpen: 1

        allowSuspectData: 1

        supportBatchRequests: 1

        supportBatchReissues: 1

        supportBatchCloses: 1

        supportOMMPost: 1

        supportOptimizedPauseResume: 0

        supportStandby: 0

        supportViewRequests: 1

 

Received Source Directory Refresh

DirectoryRefresh:

        streamId: 2

        State: Open/Ok/None - text: "null"

        clearCache: true

        solicited: true

        filter: INFO | GROUP | STATE

        Service:

                serviceId: 779

                InfoFilter:

                        serviceName: DELAY_CONFLATE1

                        vendor: Thomson Reuters

                        isSource: 0

                        supportsQosRange: 0

                        supportsOutOfBandSnapshots: 1

 

...

 

AAPL.O

DOMAIN: MARKET_PRICE

State: Open/Ok/None - text: "All is well"

        1/PROD_PERM: 74

        2/RDNDISPLAY: 66

        3/DSPLY_NAME: APPLE INC

        4/RDN_EXCHID:    (0)

        6/TRDPRC_1: 144.1499

        7/TRDPRC_2: 144.15

        8/TRDPRC_3: 144.15

        9/TRDPRC_4: 144.155

        10/TRDPRC_5: 144.155

        11/NETCHNG_1: 1.2099

        12/HIGH_1: 144.6

        13/LOW_1: 142.78

        14/PRCTCK_1: ■(2)

        15/CURRENCY: USD(840)

        16/TRADE_DATE: 21 SEP 2021

        18/TRDTIM_1: 16:09:00:000:000:000

        19/OPEN_PRC: 143.93

        21/HST_CLOSE: 142.94

        22/BID: 144.14

...

        32741/TRNOVR_UNS: 5.7553131375547E9

        32743/ACVOL_UNS: 40035669

 

(Channel java.nio.channels.SocketChannel[connected local=/10.46.208.3:60241 remote=ewa/10.116.80.111:14002]):

AAPL.O

DOMAIN: MARKET_PRICE

UPDATE TYPE: QUOTE

        22/BID: 144.14

        25/ASK: 144.15

        30/BIDSIZE: 4.0

        31/ASKSIZE: 7.0

        11683/BIDFINMMID: <blank data>

        11684/ASKFINMMID: <blank data>

        3298/BIDXID: NAS(43)

        3297/ASKXID: NAS(43)

        6579/BID_COND_N: R

        6580/ASK_COND_N: R

        293/BID_MMID1: NAS

        296/ASK_MMID1: NAS

        1000/GV1_TEXT: A

        8937/LIMIT_INDQ: BOE(25)

        3887/SEQNUM_QT: 5.415158E7

        118/PRC_QL_CD:    (0)

        3264/PRC_QL3:    (0)

        8406/QTE_ORIGIN:

        1041/GV1_FLAG:

        12783/NBBO_IND: 6  (5)

        3855/QUOTIM_MS: 58182906

        1025/QUOTIM: 16:09:42:000:000:000

        14238/ORDRECV_MS: 16:09:42:906:000:000

        14246/ORDREC2_MS: <blank data>

...

Once you have successfully completed the steps above, you can further your learning by following the series of EMA tutorials or ETA tutorials.