question

Upvotes
1 0 0 1

Integrating a new source/service into ADS for test

We are developing code for trade halt, but certain conditions rarely occur in the market. In order to test for particular conditions we want to change captured xml data , but dont know how to specify another source in ADS running on TREP server(like changing the rmds.cnf file). Right now 14002 port defaults to being used for three different services ELEKTRON, EDJ_ELEKTRON, dEDJ_ELEKTRON. We wanted to add a fourth service which will read from a xml file of stocks with set price, so that we can test the halt condition in our application which connect to the ADH/ADS on TREP server using SaSS.

Tried to use the testserver & testclient shown in this article under Record and Playback https://developers.refinitiv.com/en/article-catalog/article/testing-ema-consumer-provider-applications

problem is that the quote from the fourth service is not picked up because it is not a service on 14002.

Please let me know if it is possible and steps to override the ADS server using testserver/testclient or is it possible to override using an API to include the fourth service. This setup will be used in test only not in production

replay-tool
icon clock
10 |1500

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

Upvotes
20.3k 73 10 20

Hi @quotes-support

As you may be aware, you need a Provider application to publish the data read from your XML file e.g. testserver is a provider application. OR you can write your own Provider application based on the multiple Provider examples we include with RT-SDK.

The provider would normally publish to your ADH - which then distributes the services to downstream consumers via the ADS.

As an alternative to adding the additional service to your ADH, you can actually connect your consumer directly to the provider application - is that something that would work for your test scenario?

In other words, run the Interactive Provider (or testserver) on a given PC and then point the consumer to that PC. So, for example, I could run my IProvider application on my local PC and then configure the consumer to connect to localhost 14002.

Let me know if that would work for you - and if not why it would not be suitable so that I can offer any possible alternatives.

However, if you do still wish to add a Provider service to your ADH, there is a possibility of Interactive(sink driven) or Non-Interactive (source driven). Please advise which you would prefer and I could share how I have done this on my test RTC (ADS POP) - which you could also try and apply to your rmds config.
However, as I am not an RTDS expert my implementation may be flawed/not work (or worse) for your RTDS(TREP) setup - and I would not be able to offer any support for this and you would need to raise a ticket with our RTDS team.



icon clock
10 |1500

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

Hi @umer.nalla,

Thank you very much for explaining. We would like to know how to add provider service to ADH since we are in end user testing phase. .

We tried the Record and play as told in the article using testserver/testclient but only the initial login and connection information seems to reach the testclient and the updates replayed by testserver for a particular symbol doesn't appear in testclient console. Also not sure about integration with our application to testclient so end to end testing cannot be done

Please let us know how to add the new XML source provider service to ADH, and how you had implemented this.

Had another question below on the symbol update seen by the consumer, which update will be picked by ADH and is there a way to pick the source/service

Will the symbol in the xml source/service have to be unique not found in the other services already in ADH? If multiple services have the same symbol will ADH pick the last update on the symbol from all the sources? How does ADH decide on which update to pick? or Is there a way to code/configure so that I can pick this new XML service from ADH ?

Upvotes
20.3k 73 10 20

Hi @quotes-support

So have you written a Provider application that will take your XML, convert it to OMM and publish it as a service? In order to add a service to the ADH you will need a Provider to publish the data for the service.

I ask because you talk about testserver (which is a provider application) - but if you have written an Interactive Provider - it can connect directly to the consumer.

In terms of your other questions, each service has a unique service name, so the provider publishes all its symbols under its service name - thereby allowing the same symbol name to be re-used by other services if required.

When the consumer requests a symbol, it also has to specify the service name as part of the request - therefore a consumer can in theory request the same symbol from more than one service if required.

If you have written your Provider application please confirm whether it is an Interactive or Non-Interactive Provider - so I can share the appropriate settings I used in my rmds cnf file.


icon clock
10 |1500

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

Hi @umer.nalla,

No I have not written provider application, I was just using testserver that comes with the TREP server. Please let me know where I can find sample provider application that can publish to ADH

Upvotes
20.3k 73 10 20

Hi @quotes-support

The following article by my colleague talks about creating your own provider application

Publish Custom Data via Refinitiv Real-Time Distribution System by EMA | Refinitiv Developers

It describes how to build an Interactive Provider using EMA in Java.

An interactive Provider can be connected directly by a Consumer application so you don't even need to add to your ADH. However, if after developing and testing it - you still wish to connect it to your ADH - we can certainly try and help with that.

As you may discover when reading the above, we include several simple Interactive Provider examples with the RT-SDK - both Java and C++ versions.

You can find them in the \Ema\Examples\Training\IProvider (C++) or Ema\Examples\src\main\java\com\refinitiv\ema\examples\training\iprovider (java) folders

Most of them just generate fields with dummy data - so you would have to replace that code with some that read the data from your XML file and publish those values to the required fields instead.

icon clock
10 |1500

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

Click below to post an Idea Post Idea