question

Upvotes
Accepted
1 1 1 0

TREP resilient issue: 2 type of error, 1 successful, 1 failed to failover to next channel.

We are using Ema-3.3.1.0.jar in our TREP application to get live/delay feed. We setup 4 channels in our EmaConfig.xml. However, we notice that the resiliency failed on some scenario.


Scenario 1:

Error Message: A21: Access Denied. Waiting to connect to DACS server. Try request again.

Result: Resiliency works, the application able to failover to next channels and re-establish the connection

Scenario 2:

Error Message: A21: Access Denied. Timed out waiting for response from DACS server. Try request again.

Result: Resiliency failed, the application failed to failover to next channel and the application lost connection to TREP


May I know why the resiliency fail for second Scenario?




elektronrefinitiv-realtimeelektron-sdktrep
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 @fuweng.ng

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 reply. This will guide all community members who have a similar question. Otherwise please post again offering further insight into your question.

Thanks,

AHS

Hello @fuweng.ng,

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

Thanks,

-AHS

Upvotes
Accepted
25.3k 87 12 25

Hi @fuweng.ng

As explained in my earlier post, the ADS is the one that interacts with the DACS server - not your application. Your application only talks to the ADS.

Therefore, you need to speak to your Market Data team and/or DACS administrators to resolve this issue. If they are uncertain how to resolve they should raise a My.Refinitiv ticket for technical support for the ADS / DACS issue.

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
1 1 1 0

This is the log after 1st Scenario:

2020-11-28 21:12:30.005 WARN [pool-2-thread-1] OmmConsumerImpl - loggerMsg

ClientName: ChannelCallbackClient

Severity: Warning

Text: Received ChannelDownReconnecting event on channel Channel_3

RsslReactor @59dbf726

RsslChannel @571c126d

Error Id -1

Internal sysError 0

Error Location WlLoginHandler.readStatusMsg

Error text Received login response with Closed/Recover stream state. Disconnecting.

loggerMsgEnd


2020-11-28 21:12:30.822 INFO [Thread-0] ObjectStatReport - >> Program_statistics start:

2020-11-28 21:12:30.822 INFO [Thread-0] ObjectStatReport - >> UpdateSubMgr statistics: Subscriptions=0 Subscribers=0


UpdateSubMgr statiistics end. <<


2020-11-28 21:12:30.822 INFO [Thread-0] ObjectStatReport - Pub_i statistics :Pub_i statiistics end


2020-11-28 21:12:30.822 INFO [Thread-0] ObjectStatReport - Program_statistics end. <<


2020-11-28 21:12:34.023 INFO [pool-2-thread-1] OmmConsumerImpl - loggerMsg

ClientName: ChannelCallbackClient

Severity: Info

Text: Received ChannelUp event on channel Channel_4

Instance Name Consumer_1_1

Component Version ads3.3.1.L1.linux.tis.rrg 64-bit

loggerMsgEnd


This is the log after 2nd scenario:

2020-11-28 18:12:27.640 ERROR [pool-2-thread-1] RTROmmConsumer - [registerClient] Item: app_eqtrade / Service: <not set> [State: Closed / Suspect / Timeout / 'A21: Access Denied. Timed out waiting for response from DACS server. Try request again.']

2020-11-28 18:12:27.640 WARN [pool-2-thread-1] RTROmmConsumer - No. connection failed detected :2

2020-11-28 18:12:56.907 INFO [Thread-0] ObjectStatReport - >> Program_statistics start:

2020-11-28 18:12:56.907 INFO [Thread-0] ObjectStatReport - >> UpdateSubMgr statistics: Subscriptions=0 Subscribers=0


UpdateSubMgr statiistics end. <<


2020-11-28 18:12:56.907 INFO [Thread-0] ObjectStatReport - Pub_i statistics :Pub_i statiistics end


2020-11-28 18:12:56.907 INFO [Thread-0] ObjectStatReport - Program_statistics end. <<


2020-11-28 18:12:58.202 INFO [Thread-7] SL_SubMgr - proUnsub starting check

2020-11-28 18:12:58.202 INFO [Thread-7] SL_SubMgr - proUnsub check end. Count=0

2020-11-28 18:13:26.907 INFO [Thread-0] ObjectStatReport - >> Program_statistics start:

2020-11-28 18:13:26.907 INFO [Thread-0] ObjectStatReport - >> UpdateSubMgr statistics: Subscriptions=0 Subscribers=0


UpdateSubMgr statiistics end. <<


2020-11-28 18:13:26.907 INFO [Thread-0] ObjectStatReport - Pub_i statistics :Pub_i statiistics end


2020-11-28 18:13:26.907 INFO [Thread-0] ObjectStatReport - Program_statistics end. <<


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
25.3k 87 12 25

Hi @fuweng.ng

Looking at the output you have provided, it would appear that there are problems with your DACS server - which is not a data provider - it is Data Access Control system.

In your consumer configuration, you have setup 4 channels - these alternate channels should be for different ADS instance. When your application connects to an ADS, the ADS must check your login credentials with the DACS server to ensure you are a valid user and then as you request data, it will again check with the DACS to ensure you are entitled to each of the data items you are requesting.

The problem is that If the DACS server(s) is slow to start or crashing - even if all your ADS are working fine they cannot proceed as they are unable to validate your credentials.

In the above examples you have posted, it is unlikely the failover is even being activated - you are most likely connecting to the first ADS. In scenario 1, the ADS then tries to validate your credentials with a DACS server, it waits a while and then it would appear the DACS server does respond before the timeout period, so the ADS can continue and process your login + data request.

In scenario 2, the ADS waits for the DACS server to respond which fails to do so in the timeout period so the ADS has no choice but to close the connection. There would be little point in failing over to a different ADS because the 1st ADS itself is running just fine.

I would speak to your Market Data team and identify why the DACS server is failing to respond to the ADS request to validate your credential. They need to resolve the DACS issues with a high priority. It is quite rare for a DACS server to fail to respond or crash - so there must some serious issue at play here. They can raise a support ticket at MyRefinitiv if they need assistance.

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
1 1 1 0

Thanks alot for your prompt reply. In this case, may i know where can i change the timeout for DACS server? is the below setting in EmaConfig.xml the timeout for DACS?

<ConnectionPingTimeout value="30000"/>

I am thinking if we can set the timeout longer, we can avoid the 2nd Scenario. Thanks.

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.