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 wangfugen · Apr 08, 2019 at 02:48 AM · ema c++

how can I deserialize RefreshMsg and UpdateMsg ?

Hello, everyone, Due to timezone problem, I can only receive realtime quote of us market from 9:30pm in China. So I wonder if I can save RefreshMsg & UpdateMsg into somewhere, and replay these message the next bright day?

Through the ema sdk, as RefreshMsg & UpdateMsg is not copiable, the only way I can think of is to store the string value produced via toString() member method and decode each line into corresponding object member value. Is that applicable, or any better way to achieve my target ? Many thanks, expecting your reply,

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.

10 Replies

  • Sort: 
avatar image
REFINITIV
Best Answer
Answer by chavalit.jintamalit · Apr 08, 2019 at 06:01 AM

Hi @wangfugen

Are you trying to replay the message for testing / development purpose ?

You can take a look at this tool. Here.

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 wangfugen · Apr 09, 2019 at 06:59 AM

@chavalit.jintamalit

Hi, chavalit, Thanks for your suggestion. I tried the tools, but without luck, maybe i missed some steps ?

First, I use the following command to record messages

./rmdstestclient -S ELEKTRON_DD -h  10.57.44.11 -p 14002 -u user15 -ct rssl -of us.xml -ef /opt/parser/uspackage/data/tools.ric &

As rmdstestclient runs background, I terminate the tool using "kill -9" command. One question, what is the correct way to terminate the tool in order to stop recording messages? Is "kill -9" commmand OK ?

Second, I use the following command to start message server:

./sink_driven_src -S ELEKTRON_DD -Q us.xml -U 100  -N 14002 -K -ik

But I found the tools terminates by SIGKILL command after reading us.xml. I haven't done anything else than that. So How can resolve the problem ? Is it related to my way terminating rmdstestclient ?

Thanks, expecting your reply.

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 wangfugen · Apr 10, 2019 at 11:55 PM

Hi, @chavalit.jintamalit, Is there any more advice on my problem ? Thanks

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 zoya.farberov · Apr 16, 2019 at 04:37 PM

Hello @wangfugen,

You need to first debug the capture, to make sure that the store at /opt/parser/uspackage/data/tools.ric is properly recorded, do you see the file recorded?

Then kill rmdstestclient.

Then start replaying the store.

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 wangfugen · Apr 19, 2019 at 04:06 AM

Hi, @zoya.farberov Thanks for your advice. I tried again and found that using "kill -9" command to kill rmdsTestClient will cause the dump file incomplete with losing xml tags. The correct way is run rmdsTestClient foreground, and using Ctrl-C to terminate it. Then the dump file is complete for replay. Thanks again. also to @chavalit.jintamalit

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 wangfugen · Apr 20, 2019 at 01:41 AM

I read the manual from the infra tools, and found the following description:

sink_driven_src: source application (or traffic generator). It can also be used to evaluate update and insert latency inconjunction with rmdstestclient. It can play back data recorded by the rmdstestclient tool at rates specified by a user or at market rates.

So can I understand "at market rates" as sending played data recoded by rmdstestclient tool at the speed receiving from thomsonreuter trep precicisely at each second ? If so, which command line arguments should I use to make data replayed at market rates? @chavalit.jintamalit @zoya.farberov Thanks .

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 zoya.farberov · Apr 22, 2019 at 09:31 AM

Hello @wangfugen,

No, it does not.

With rmdstestclient and sink_driven_src combination, one can replay at assigned speed, or at increasing speed, which one can specify as starting, ending, and increase/delta.

If one requires more advanced replay capabilities, including "precisely as recorded originally", or "at times the speed" as recorded originally, consider ReplayService tool from TradeWeb.

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 wangfugen · Apr 24, 2019 at 09:19 AM

OK, I will take a look at ReplayService tool you advised. Many thanks. @zoya.farberov

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 wangfugen · May 08, 2019 at 01:40 AM

Hi, @zoya.farberov, when replaying quotes using sink_driven_src, I encountered such error message:

Possible overload in receiving application during the last 5 seconds.
25.00 updates/sec not sent due to buffer backlog.
Possible overload in receiving application during the last 5 seconds.
30.00 updates/sec not sent due to buffer backlog.
Possible overload in receiving application during the last 5 seconds.
27.40 updates/sec not sent due to buffer backlog.

my command specifies -U(Start update rate) with argument 30, without -M(Max update rate). Does the error indicates my consumer application is too slow to process the messages ? Thanks

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 zoya.farberov · May 08, 2019 at 12:11 PM

Hello @wangfugen,

The overload appears to be reported not on the replay, but on the consumer.

This may result from the fact that rmdstestclient + sink_driven_src together are intended for functionality, content, and end-to-end verification, not for performance testing.

If you are verifying functionality, suggest decreasing the load, to see if it helps.

If you are looking to test performance, you need different tools, both publisher and consumer should be very performant.

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

Related Questions

EMA TRCC OmmMemoryExhaustionException

Unsupported environment in EMA

EMA C++ post message, value after decimal point is truncated

Are onRefreshMsg, onUpdateMsg and onStatusMsg callbacks guaranteed to be always called on the same single thread

How to set OpenLimit in EMAConfig for IProvider

  • 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