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 /
  • EMA /
avatar image
Question by askochin · May 08, 2018 at 08:21 AM · refreshni provider

Item values are not updated after NI Provider restart

We currently develop the NI Provider application that publishes quotes with the MMT_MARKET_PRICE domain.

The problem is after the provider restarts and sends refresh messages, the consumer is not able to update item values. We tried to keep the same handle value for the item between restarts and change it - doesn't help.

We cannot change the consumer logic. In OMMViewer we also observe items disappear after provider restarts and we have to open a new subscription. So the question is if there's something wrong with our provider logic? Can we change it somehow to get rid of consumer restart? Is it necessary to have the same handle value in refresh messages for the same item in different provider sessions?

Below is the source code of the provider (in kotlin):

val refreshMsg = EmaFactory.createRefreshMsg()
refreshMsg.serviceName(serviceName).name("FIAT_" + trepQuoteDTO.isin)
refreshMsg.domainType(MMT_MARKET_PRICE)
refreshMsg.state(
		OmmState.StreamState.OPEN,
		OmmState.DataState.OK,
		OmmState.StatusCode.NONE,
		"UnSolicited Refresh Completed")
val fieldList = EmaFactory.createFieldList()


fieldList.add(EmaFactory.createFieldEntry().ascii(831, serviceName))
fieldList.add(EmaFactory.createFieldEntry().real(BID, trepQuoteDTO.bid, OmmReal.MagnitudeType.EXPONENT_NEG_2))
fieldList.add(EmaFactory.createFieldEntry().real(BID_SIZE, trepQuoteDTO.bidSize, OmmReal.MagnitudeType.EXPONENT_0))
fieldList.add(EmaFactory.createFieldEntry().real(ASK, trepQuoteDTO.ask, OmmReal.MagnitudeType.EXPONENT_NEG_2))
fieldList.add(EmaFactory.createFieldEntry().real(ASK_SIZE, trepQuoteDTO.askSize, OmmReal.MagnitudeType.EXPONENT_0))
refreshMsg.payload(fieldList).complete(true)
val handleId: Long = itemHandlers.getOrPut(trepQuoteDTO.isin, { counter.getAndIncrement() })
provider.submit(refreshMsg, handleId)

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.

4 Replies

  • Sort: 
avatar image
REFINITIV
Best Answer
Answer by Gurpreet · May 08, 2018 at 11:01 AM

Hi @askochin, You can publish the item on the same handle in between the restarts.

I tried the Java EMA sample example100__MarketPrice__Streaming and connected the OMMConsumer, and the application was able to receive refresh and update messages after multiple NIP restarts.

Can you please try the Java sample instead of Kotlin? Also, in you code, you seem to be sending refreshes only.

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.

avatar image
Answer by askochin · May 08, 2018 at 02:07 PM

@Gurpreet., thanks! We send updates after refreshes only so they work ok.

Looked at the config in examples, it's quite the same as ours.

The problem was our NIP started sending refreshes after restart with the delay.

If this delay is less than 10-15 sec, OMMViewer recovers the item value and updates DataState from SUSPECT to OK.

Otherwise, if this timeout expires, it considers the item to be "Not In Cache". And all this doesn't depend on whether handle is the same or not after restart.

Does anybody know if there's a config param setting this delay? Is the handle value supposed to be used in update messages only?

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.

avatar image
REFINITIV
Answer by Gurpreet · May 08, 2018 at 03:13 PM

So, to be sure, you are using a non interactive provider, and publishing into the ADH cache, and subscribing to that data from ADS, right?

There are numerous parameters within TREP configuration which control the service behavior, when the provider goes down. Its advisable to work with your market data administrator to get it properly setup.

Comment

People who like this

0 Show 1 · 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.

avatar image
askochin · May 09, 2018 at 11:57 AM 0
Share

Yes, we use a non interactive provider, and publish into the ADH cache, and subscribe from ADS

avatar image
REFINITIV
Answer by Vladimir.Laskin · May 16, 2018 at 02:55 AM

@Gurpreet. Can you please kindly have a look at the attached rmds.zip (rmds.cnf) So we will change parameters if it is required for client needs


rmds.zip (6.1 KiB)
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 >
10 People are following this question.

Related Questions

Vector on EMA

Login Domain - Components and Elements in Login responses

How to handle prices that are added in an updateMsg after first added in a refreshMsg?

  • 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