Discover Refinitiv
MyRefinitiv Refinitiv Perspectives Careers
Created with Sketch.
All APIs Questions & Answers  Register |  Login
Ask a question
  • Questions
  • Tags
  • Badges
  • Unanswered
Search:
  • Home /
  • Elektron /
  • ETA /
avatar image
Question by RAJ · Jul 09, 2018 at 11:17 AM · eta apidictionary reuse

Reusing data dictionary across connections

I'm using ETA C API in Linux.

Here are some background information on my application and information I received from Reuters tech support assigned for my project regarding the EaaS site.

  • My application will be connecting to multiple ADSs hosted at multiple EaaS sites.
  • There is a chance that data dictionaries in different EaaS sites may be different as data dictionary upgrades may be scheduled during different maintenance windows in different EaaS sites.
  • For data dictionary updates, EaaS always re-starts ADS process.

I would like to get recommendation on the following options:

1. Use one data dictionary to decode data from ADS in different data center. I’m planning to use the data dictionary downloaded from the first connections and reuse it across connections. Download data dictionary only when the ADS where I have open subscription gets restarted.

  • Would it be safe to use old dictionary in case market price updates with new FIDs arrives from other ADS connections ?
  • I see the following code accesses dictionary by offset of the FID. I’m concerned if the FID will access the array creating out of bounds exception.
dictionaryEntry =
dictionary->entriesArray[fEntry->fieldId];
  • Is there any way to skip lookup of new FIDs that are not in dictionary by checking against the size of dictionary ?

2. Download data dictionaries from all connections (provided I make connection to different data center)

  • Would it be safe to maintain per connection data dictionary , use the latest version, and update if new version is downloaded after ADS re-start ?

People who like this

0 Show 0
Comment
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Reply

  • Sort: 
avatar image
REFINITIV
Best Answer
Answer by jirapongse.phuriphanvichai · Jul 12, 2018 at 03:25 AM

Would it be safe to use old dictionary in case market price updates with new FIDs arrives from other ADS connections ?

Yes, if the application properly handles null value returned from dictionary->entriesArray[fEntry->fieldId].

dictionary->entriesArray supports FID between -32768 and 32767. Therefore, if the verified FID is in this range, it will not be out of bounds. However, the application must verify the return value of dictionary->entriesArray[fEntry->fieldId]. If it is null, it means that the loaded data dictionary doesn't contain that FID so the application must not accessing its value.

Is there any way to skip lookup of new FIDs that are not in dictionary by checking against the size of dictionary ?

I don't think so. You need to verify the return value of dictionary->entriesArray[fEntry->fieldId]. If it is null, you can skip decoding.

Would it be safe to maintain per connection data dictionary , use the latest version, and update if new version is downloaded after ADS re-start ?

Yes, you can do it. However, instead of downloading dictionaries from all connections, you and send the dictionary requests with RDM_DICTIONARY_INFO filter to all connections.

msg.msgBase.msgKey.filter = RDM_DICTIONARY_INFO;

With this filter, the dictionary response will contain only the version of dictionary on EaaS.

<refreshMsg domainType="RSSL_DMT_DICTIONARY" streamId="3" containerType="RSSL_DT_SERIES" flags="0x168" groupId="0" dataState="RSSL_DATA_OK" streamState="RSSL_STREAM_NON_STREAMING" code="RSSL_SC_NONE" text=""  dataSize="50">
    <key  flags="0xF"  serviceId="2115" name="RWFFld" nameType="1" filter="0"/>
    <dataBody>
        <series  flags="0x2 (RSSL_SRF_HAS_SUMMARY_DATA)" countHint="0" containerType="RSSL_DT_ELEMENT_LIST">
            <summaryData>
                <elementList flags="0x8 (RSSL_ELF_HAS_STANDARD_DATA)">
                    <elementEntry name="Type" dataType="RSSL_DT_UINT" data "1"/>
                    <elementEntry name="DictionaryId" dataType="RSSL_DT_INT" data="1"/>
                    <elementEntry name="Version" dataType="RSSL_DT_ASCII_STRING" data="4.20.29"/>
                </elementList>
            </summaryData>
        </series>
    </dataBody>
</refreshMsg>

After that, you can choose the one with the newest version and then send a dictionary request with RDM_DICTIONARY_NORMAL filter to get the dictionary.

Comment

People who like this

0 Show 0 · Share
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Watch this question

Add to watch list
Add to your watch list to receive emailed updates for this question. Too many emails? Change your settings >
9 People are following this question.

Related Questions

How do I get the RIC of a government bond using CUSIP within Elektron Transport API?

Migrating from NFD to Elektron Transport API MRN - No news received

Refreshing token returns error 400 (iPlanet session has been expired.)

Read ERT Data through ETA!

ERT in Cloud: failed to send AuthToken request

  • Feedback
  • Copyright
  • Cookie Policy
  • Privacy Statement
  • Terms of Use
  • Careers
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Alpha
  • App Studio
  • Block Chain
  • Bot Platform
  • Calais
  • Connected Risk APIs
  • DSS
  • Data Fusion
  • Data Model Discovery
  • Datastream
  • Eikon COM
  • Eikon Data APIs
  • Elektron
    • EMA
    • ETA
    • WebSocket API
  • Legal One
  • Messenger Bot
  • Messenger Side by Side
  • ONESOURCE
    • Indirect Tax
  • Open PermID
    • Entity Search
  • Org ID
  • PAM
    • PAM - Logging
  • ProView
  • ProView Internal
  • Product Insight
  • Project Tracking
  • Refinitiv Data Platform
    • Refinitiv Data Platform Libraries
  • Rose's Space
  • Screening
    • Qual-ID API
    • Screening Deployed
    • Screening Online
    • World-Check One
    • World-Check One Zero Footprint
  • Side by Side Integration API
  • TR Knowledge Graph
  • TREP APIs
    • CAT
    • DACS Station
    • Open DACS
    • RFA
    • UPA
  • TREP Infrastructure
  • TRIT
  • TRKD
  • TRTH
  • Thomson One Smart
  • Transactions
    • REDI API
  • Velocity Analytics
  • Wealth Management Web Services
  • World-Check Data File
  • Explore
  • Tags
  • Questions
  • Badges