question

Upvotes
Accepted
15 2 5 12

How to specify two services in the ADS testclient/testserver (from infra tools package) ?

Hi,

I would like to use the testclient/testserver to record and playback data to performance test an application.

Quick Start Guide to Recording and Playback of Refinitiv Real-Time Data | Refinitiv Developers

I got it working for one service. However our application consumes data from two services configured in the ADS.

I tried with multiple services as shown below in the command but only one got picked up.

./testclient -S Service1 -S Service2 -ef ./rics1.txt -h ads1 -u rtds -ct rssl -rf 8 -obf recBin.dat -p 14002

Is is possible to record and playback data from two ADS services using the testclient/testserver in infra tools package ?

Thanks in advance.

Mani

ema-apiADS
icon clock
10 |1500

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

Hello @Mani.A ,

Thank you for your participation in the forum.

Is the reply below satisfactory in resolving your query?

If yes please click the 'Accept' text next to the appropriate reply. This will guide all community members who have a similar question. Otherwise please post again offering further insight into your question.

Thanks,

-AHS

Please be informed that a reply has been verified as correct in answering the question, and has been marked as such.

Thanks,
AHS

Upvote
Accepted
32.2k 40 11 20

Hello @Mani.A ,

testclient only accepts one service parameter. testserver only replays one service.

One way I can think of, to setup this test is

1. To record the two services separately, into separate files, by means of testclient.

service1 -> one recording

service2 -> another recording

3. replay separately, via two testservers into an RTDS (ADH+ADS), have both testservers connected to a test ADH and replay, while consumer connected to test ADS and consuming the two services. Schematically speaking:

---

testserver_service1 testserver_service2

ADH

ADS

CustomConsumer

---

Hope this approach is of help

icon clock
10 |1500

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

Upvotes
15 2 5 12

Thank you @zoya faberov for your quick response .

My apologies for my late response as I was away for a while.

I'm not clear on the step 3. Any documentation or pointers on how to feed/replay data to an ADS+ADH server ?

Can I just replay data to an existing ADS+ADH to a test services that I create on the later ?


Thanks in advance.

Mani


icon clock
10 |1500

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

Upvotes
32.2k 40 11 20

Hello @Mani.A ,

Please see REFINITIV REAL-TIME DEMO TOOLS manual on My Refinitiv (or with your local copy of infra tools or with infra) and look for testserver -> Advanced Data Hub for example usage for ADH connection.

Absolutely, you can create test services and replay on these new services.

Or if you are in a test/non-prod environment, may be easier to stop an already configured service(s) that is(are) running, and replay via testserver on this configured service.

icon clock
10 |1500

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

Thank you @zoya faberov I will try that.
Upvotes
15 2 5 12

Hi @zoya faberov and All,

I tried replaying data into an existing ADS server using the below command and got an error.

./testserver -S IDN_RDF -bdf RecBin.dat -U 100 -N my-ads-server-hostname
---Error: Invalid options.
 The listen option (-K) or published items (-pb # or -f <filename>) must be specified.

The documentation says -N ipc_server. Is ipc_server my ads server ?

I didn't specify -K and I want to feed data to an existing client, not accept any client connections.

I see that -pb of -f options are cache related ?

Any pointers appreciated ?

Thanks in advance.

Mani




icon clock
10 |1500

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

Upvotes
79.1k 250 52 74

@Mani.A

The -N option is for a TCP port used by the testserver. For example, the default TCP port for the RSSL interactive provider is 14002. Thus, you need to configure a route in RTDS (Refinitiv Real-Time Distribution System (ADH, ADS)) to connect to the testserver on that specified TCP port. It requires the -K option for the interactive provider.

Otherwise, you can run the testserver in the non-interactive mode. In the non-interactive mode, the testserver will establish a connection to RTDS so RTDS must be configured to accept a connection from the test server. The command will look like this:

1665375731850.png

The following picture shows how the testserver connects to RTDS in interactive and non-interactive modes.

1665375901543.png


To configure RTDS to support an interactive or non-interactive provider, you can contact the RTDS support team directly via MyRefinitiv.



1665375731850.png (39.2 KiB)
1665375901543.png (24.1 KiB)
icon clock
10 |1500

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

Upvotes
15 2 5 12

Thank you @Jirapongse for your prompt response.

Looks like I made some progress. I now get the below error message. I guess I need a username/account to access the ADS as a producer. I will reach out to our market data team. If you think otherwise, please let me know.


./testserver -S IDN_RDF -k ads-server -N 14002 -sn 1 -pb 10 -pbn RDT -U 1 -u adsUser
Initialized RSSL library.
Successfully loaded RWF data dictionary
Loaded refresh: 35 updates: 15
Configured 10 items.
Channel initialization in progress. (No more messages printed until connection)

SockOptions: TCP_NODELAY=1 SNDBUF=12582912 RCVBUF=12582912 bytes
UPA peer component version: ads3.5.4.L1.linux.rrg 64-bit

RSSL publisher login request denied.
Reason: Login rejected. Non-consumer attempting login.

Thanks

Mani

icon clock
10 |1500

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

Upvotes
79.1k 250 52 74

@Mani.A

The TCP port 14002 is for the subscription. You can't run testserver to connect to that port.

The default TCP port for non-interactive providers is 14003 (distribution_rssl_source). You need to enable it on ADS. I am using ADS POP and the configurations could be as follows

!!! RSSL
*ads*enableRsslServer : True
!*ads*rsslServerPort : distribution_rssl_source
!*ads*distribution_rssl_source*serverToClientPings : True
!*ads*distribution_rssl_source*clientToServerPings : True
!*ads*distribution_rssl_source*pingTimeout : 30
!*ads*distribution_rssl_source*minPingTimeout : 6
!*ads*distribution_rssl_source*maxConnections : 100
!*ads*distribution_rssl_source*guaranteedOutputBuffers : 200
!*ads*distribution_rssl_source*maxOutputBuffers : 400
!*ads*distribution_rssl_source*compressionType : 0
!*ads*distribution_rssl_source*zlibCompressionLevel : 3
!*ads*distribution_rssl_source*interfaceName :
!*ads*distribution_rssl_source*reusePort : False
!*ads*distribution_rssl_source*connectionType : 0
!*ads*distribution_rssl_source*serverCert :
!*ads*distribution_rssl_source*serverPrivateKey :

Next, you need to have the non-interactive service in the configuration, as follows.

!!! Non-interactive Cache for posting
*ads*DIST_CACHE*cacheLocation : ssl
*ads*DIST_CACHE*cacheType : sourceDriven
*ads*DIST_CACHE*maxCache : 50000
*ads*DIST_CACHE*domainsCached : ALL
*ads*DIST_CACHE*capabilityList : 6, 7, 8, 9, 10
*ads*DIST_CACHE*buildCacheFromUpdates : False
*ads*DIST_CACHE*markItemsOkOnUpdate : False
*ads*DIST_CACHE*forwardPostUserInfo : False
*ads*DIST_CACHE*dumpAccessLockFileName :
*ads*DIST_CACHE*dumpAuditUserInfoFileName :
*ads*DIST_CACHE*convertMfeedDataToRWF : False
*ads*DIST_CACHE*validateMfeedToRWFConvForPosts : False
*ads*DIST_CACHE*enableOverrideInsertRecordResp : False
*ads*DIST_CACHE*overrideClearCache : False

However, if you have ADH, you need to enable it on ADH instead. Please contact the RTDS support team to confirm the configurations.

icon clock
10 |1500

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

Upvotes
15 2 5 12

Thanks @Jirapongse

We do have ADH. All our applications are subscribers and they get data from ADS servers.

My understanding is providers use ADH and the subscribers consume data from ADS. I believe Refinitiv provides data to ADH and our application consumes data from the ADS server.

ads-adh.jpg

source: https://developers.refinitiv.com/content/dam/devportal/articles/how-can-i-get-a-list-of-all-rics-available-on-elektron-realtime-/rtsdk_api_concepts_guide.pdf

I understand that we need to enable Provider related config on the ADH to provide/produce data. Our support may be reluctant to make any changes on the ADH.

Is it possible to make changes on only one particular ADS server (without touching the ADH) and provide/produce simulated data to it ? And our test application subscribe to the data on this ADS server.

In fact we are thinking of setting up a test ADS server for this purpose.

Thanks,

Mani


ads-adh.jpg (213.3 KiB)
icon clock
10 |1500

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

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

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