Discover Refinitiv
MyRefinitiv Refinitiv Perspectives Careers
Created with Sketch.
All APIs Questions & Answers  Register |  Login
Ask a question
  • Questions
  • Tags
  • Badges
  • Unanswered
Search:
  • Home /
  • TREP APIs /
  • RFA /
avatar image
Question by glr · Oct 18, 2018 at 12:03 PM · rfajavatrepupaOMM

OMM for TREP

Hi,

We are moving to a new TREP and need to publish structured product prices. For this I was told that I need to migrate to OMM (using Java). Looking into this and I am a bit confused, I found OMM examples in both RFA and UPA. The code I am having to migrate was written using RFA, how can I know if it is already using OMM or not? For example, both the RFA OMM example and our code uses com.reuters.rfa.common.EventQueue. I would like to have to change a minimum of the code because it is a legacy applicartion.

Thank you,

Gabriel

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.

11 Replies

  • Sort: 
avatar image
REFINITIV
Best Answer
Answer by umer.nalla · Oct 22, 2018 at 05:28 AM

Hi @glr

The examples I mentioned are part of the RFA and EMA APIs respectively.

Elektron SDK - Java Downloads

Robust Foundation API (RFA) · Java Downloads

Please download and unpack/install the above APIs to access the previously mentioned examples.

Please NOTE that the Elektron SDK consists of ETA and EMA - please drill down the EMA subfolder for the EMA examples.

Regards your question about NIProvider - as explained earlier, you mention MarketDataContributor and MarketDataItemCont. These are Contribution related classes and the OMM equivalent is Posting.

If you no longer wish to Contribute data and wish to write a provider / publisher type application instead then yes you could use the Interactive Provider or NIProvider - depending on your requirements.

Please see this article to get an overview of Posting / Contributing data - posting functionality is whereby your application can send data to a contribution gateway which can then be sent onto Thomson Reuters or other third-party data vendor for incorporation into their feeds.

For a high level view of Provider (Publisher) and the difference between IProvider and NIProvider please refer to this tutorial introduction. - Providers are server based applications use to publish your internally generated data onto your TREP

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 · Oct 18, 2018 at 12:30 PM

Does your code use any com.reuters.rfa.omm.* or com.reuters.rfa.RDM.* packages.

The new OMM datamodel only changed the actual payload. RFA mechanisms like event queue etc are still valid in the OMM context. Look at the

public void processEvent(Event event) {
                

method in classes to see, if it is Marketfeed or OMM messages.

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 glr · Oct 19, 2018 at 04:36 AM

Hi Gurpreet,

thanks for the reply. Ah, I see. It effectively does not use those packages, the events are of type

com.reuters.rfa.session.event.*

So the actual messaging code/mechanisms are still valid it is just the payload that has changed. From what I see I still need to replace

com.reuters.rfa.session.MarketDataContributor

with

com.reuters.rfa.session.omm.OMMProvider

and instead of using

com.reuters.rfa.session.MarketDataItemCont

I assume I would use an

com.reuters.rfa.omm.OMMMsg
?

Thanks!

Gabriel

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 · Oct 19, 2018 at 09:22 AM

Hi Gabriel, There will be other changes required throughout the code - like creating an OMMProvider and OMMListenerIntSpec etc. You should refer to a working example in the RFA SDK directory (Examples/com/reuters/rfa/example/omm) for how it should be done.

In case there is a need to rewrite the application, please consider using EMA API, which is considerably easier to use and has a step by step tutorial to create a NI Provider.

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 glr · Oct 19, 2018 at 11:13 AM

Hi Gurpreet,

thanks for the info. Yes, I have done this already, thanks.

What I am missing is some sort of document explaining how to migrate from MarketFeed/MarketData events to OMM events. I was not able to find such a document or something even remotely close. OMM is a very generic message format by design, which is good, but I need some sort of document telling me how to create messages that the MLIP Contrib understands using OMM. Do you know where I can find this?

Rewriting the application is currently not possible but I will keep this in mind if at some point it becomes possible.

Thank you,

Gabriel

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 umer.nalla · Oct 19, 2018 at 11:37 AM

Hi @glr

The other thing key point to note here is that you mention MarketDataContributor and MarketDataItemCont

These are Contribution related classes and the OMM equivalent is Posting.

For Posting you would use an OmmConsumer - rather than OmmProvider.

Also, you say that rewriting the application is not currently possible, but the likelihood is that the amount of effort and code changes required in moving from MarketFeed to OMM in RFA will most likely be greater than if you were to switch to using EMA Java.

Just to highlight this point, I would recommend you compare the RFA Java OMM example StarterConsumer_Post to the EMA Java equivalent of example340__MarketPrice__OnStreamPost or example341__MarketPrice__OffStreamPost.

OnStream Posting is where you subscribe / consume an item before Posting (contributing) data to that item.
OffStream Posting is where you are not interested in Consuming that item - only in Posting data to the item.

When you compare the RFA StarterConsumer_Post example with example340 or 341, you will notice just how little code is require when using EMA.

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 umer.nalla · Oct 19, 2018 at 12:03 PM

Hi @glr

In terms of creating your Message to Post (Contribute data) you can see the PostItemManager.doPost() method of the RFA StarterConsumer_Post example which demonstrates how to populate the Msg for posting including encoding each Field with its value.

The EMA equivalent is demonstrated in the onRefreshMsg() method of the 340 and 341 examples I mentioned above.

For example the following snippet Posts (contributes) to 4 fields - 2 Price fields (22+25), a time field(18) and an Enumerated type field(37) to an existing record:

PostMsg postMsg = EmaFactory.createPostMsg();
UpdateMsg nestedUpdateMsg = EmaFactory.createUpdateMsg();
FieldList nestedFieldList = EmaFactory.createFieldList();

nestedFieldList.add(EmaFactory.createFieldEntry().real(22, 34, OmmReal.MagnitudeType.EXPONENT_POS_1));
nestedFieldList.add(EmaFactory.createFieldEntry().real(25, 35, OmmReal.MagnitudeType.EXPONENT_POS_1));
nestedFieldList.add(EmaFactory.createFieldEntry().time(18, 11, 29, 30));
nestedFieldList.add(EmaFactory.createFieldEntry().enumValue(37, 3));

nestedUpdateMsg.payload(nestedFieldList );
	
((OmmConsumer)event.closure()).submit( postMsg.postId( 1 )
	.serviceName( "DIRECT_FEED" )						.name( "IBM.N" ).solicitAck( true ).complete(true)
	.payload(nestedUpdateMsg), event.handle() );

I recommend you work through the first few steps EMA Java Consumer Tutorials for your understanding.

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 · Oct 19, 2018 at 12:12 PM

Hi Gabriel, Looks like existing application is a contributor to MLIP. As you might be aware, MLIP is end of life and the replacement is the TR Contributions Channel (TRCC). RFA API is not supported for TRCC; please talk to your account manager for roadmap for migration.

Here is a EMA Java article and a tutorial on how to contribute to TRCC.

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 glr · Oct 19, 2018 at 12:16 PM

Hi @Umer Nalla,

Thanks for this info. I though the producer was used when I want to produce data (post) and the consumer was when I want to receive data.

May I ask where you found all these examples? I have the examples I downloaded from the RFA downloads page but they are very simple examples, for example there is no 340/341 examples nor the examples you mention in your 2nd message. I just have Tutorial_01 - Tutorial_11, there is no StarterConsumer_Post example inside. If you don't mind pointing me to the download locations for the RFA & EMA example you speak of I would greatly appreciate it. This way I can compare the two and assess a migration to EMA.

I will also have a look at your link.

Thanks,

Gabriel

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 glr · Oct 22, 2018 at 03:44 AM

Hi @Umer Nalla,

I found some more documentation (but still not the examples you spoke of unfortunately), If I just want to publish data, should I not use a NI-Provider instead of a Consumer?

Thanks,

Gabriel

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 glr · Oct 22, 2018 at 07:41 AM

Hi @Umer Nalla,

thank you, I will have a look at all of this. We effectively still need to contribute, thank you for clarifying this.

Kind regards,

Gabriel

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

Related Questions

Post Id must exist for multiple part post message

Decoded login message has wrong OMMMsg.MsgType

How do we get more information regarding the reason for an Event type of Event.COMPLETION_EVENT?

TREP stripping AttribInfo from UPDATE_RESP messages using custom model

Can we set up an RFA Session without using the Config Editor?

  • 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