Discover Thomson Reuters
Financial Government Solutions Legal Tax & Accounting Reuters News Agency Risk Management Solutions
Thomson Reuters' Developers Logo DEVELOPER COMMUNITY
All APIs Questions & Answers Login
Ask a question
  • Questions
  • Tags
  • Badges
  • Unanswered
Search:
  • Home /
  • Elektron /
  • EMA /
avatar image
Question by sagar.s · Jun 14, 2017 at 03:37 PM · emachain

Is there a possibility of not getting a reply for a RIC and not getting reply of status closed?

I'm querying a multiple chaniend RIC and the process gets stuck after sometime. However the statusMsg.state is not closed, How to validate if the reply was sent and if the status was closed for a RIC ?

My current logic is :

post the batch request and wait for the refreshMsg.status to be true or check statusMsg.state having "CLOSED" string in it.

Problem is that is does not receive the refreshMsg nor it obtains the status as closed. Can you please advise.

People who like this

0 Show 0
Comment
10 |600 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

3 Replies

  • Sort: 
avatar image
Best Answer

Answer by nick.zincone.1 · Jun 14, 2017 at 04:15 PM

For the RICs you provided, 0#1US+ and 1US1855V7, both return a refreshMsg with an Ok dataState (see below) when I request for each one individually. When you request for 0#1US+, it is a chain. EMA does not automatically expand chains and request the constituents on your behalf. You have to programmatically perform this task yourself.

If you are unfamiliar with chains and their processing, you can review Decoding Chains articles which goes into depths about how they are organized and processing recommendations.

RefreshMsg
    streamId="6"
    domain="MarketPrice Domain"
    Solicited
    RefreshComplete
    ClearCache
    state="Non-streaming / Ok / None / 'All is well'"
    itemGroup="00 00"
    permissionData="03 01 64 31 53 C0"
    qos="RealTime/TickByTick"
    seqNum="112"
    name="0#1US+"
    nameType="1"
    serviceId="356"
    serviceName="ELEKTRON_AD"
    Payload dataType="FieldList"

RefreshMsg
    streamId="6"
    domain="MarketPrice Domain"
    Solicited
    RefreshComplete
    ClearCache
    state="Non-streaming / Ok / None / 'All is well'"
    itemGroup="00 00"
    permissionData="03 01 64 31 53 C0"
    qos="RealTime/TickByTick"
    seqNum="768"
    name="1US1855V7"
    nameType="1"
    serviceId="356"
    serviceName="ELEKTRON_AD"
    Payload dataType="FieldList"
Comment

People who like this

0 Show 6 · Share
10 |600 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
avatar image nick.zincone.1 ♦♦ · Jun 14, 2017 at 04:28 PM 0
Share

Ok - I see in your original question you are processing the chain (got confused with the spelling "chaniend" :-). In this case, I would turn on XmlTrace to see what you are receiving. Within your EmaConfig.xml, you can enable with this:

<XmlTraceToFile value="1"/>

You will see alot of initial output for your dictionary download.

avatar image sagar.s nick.zincone.1 ♦♦ · Jun 14, 2017 at 04:36 PM 0
Share

Sorry about the typo. I'll try the XML trace option. I tested the string comparison case issue. It is not failing due to that. Thanks Nick!

avatar image Pimchaya.Wongrukun ♦♦ sagar.s · Jun 19, 2017 at 02:43 AM 0
Share

Hello @sagar.s

EMA Java provides XmlTraceToStdout Consumer entry parameter to specify whether EMA traces its messages in XML format to stdout. Please set the parameter to 1 to turn on tracing to stdout. For example:

<Consumer>
  <Name value="Consumer_1"/>
  ...
  <XmlTraceToStdout value="1"/>
</Consumer>

Then, please attach the output so that we can know what message the application receives instead of refresh messages when the problem occurs.

Show more comments
avatar image

Answer by nick.zincone.1 · Jun 14, 2017 at 03:47 PM

Hi @sagar.s,

Does your logic utilize the onStatusMsg() callback? If any of the items in your batch are invalid for example, you'll will not receive a refreshMsg with a status. You will receive a statusMsg indicating the issue.

Comment

People who like this

0 Show 3 · Share
10 |600 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
avatar image sagar.s · Jun 14, 2017 at 03:49 PM 0
Share

It utilizes statusMsg.state().streamStateAsString().contains("CLOSED"). However, the RIC is valid.

Is there any other keywords I should be checking?

Should I reissue the RIC request if the above statusMsg is not received or if there is no status on refreshMSg?

avatar image nick.zincone.1 ♦♦ sagar.s · Jun 14, 2017 at 03:56 PM 0
Share

Hi @sagar.s,

You should always receive something whether valid or invalid. Can you provide the RIC? Are you receiving a refreshMsg for this RIC?

avatar image sagar.s nick.zincone.1 ♦♦ · Jun 14, 2017 at 04:02 PM 0
Share

For example, I have a RIC 0#1US+ . For the current run it doesn't get reply for 1US1855V7

avatar image

Answer by nick.zincone.1 · Jun 14, 2017 at 03:53 PM

Hi @sagar.s,

When an item is closed, your statusMsg looks like this:

StatusMsg
    streamId="6"
    domain="MarketPrice Domain"
    state="Closed / Suspect / Not found / 'The record could not be found'"
    name="JUNK.TEST"
    nameType="1"
    serviceId="356"
    serviceName="ELEKTRON_AD"
StatusMsgEnd

Perhaps it could be a string comparison/case issue? You are looking specifically for "CLOSED". Can you provide us the output of what you are seeing?

Comment

People who like this

0 Show 1 · Share
10 |600 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
avatar image sagar.s · Jun 14, 2017 at 03:59 PM 0
Share

I do not think it is a string comparison issue. Since the issue is intermittent. Sometimes I receive all the chaned RICs reply. But sometimes it doesn't get a reply.

However, I can check change the string comparison to be case insensitive and test as well.

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 >
10 People are following this question.

Related Questions

How do you identify if a RIC is a chain RIC in order to subscribe to all the underlying RICs? 3 Answers

How to open chains with EMA 1 Answer

configure channel set using programmatically 1 Answer

Do we need unregister process? 2 Answers

Elektron - Get TRNA data 1 Answer

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