For a deeper look into our Elektron API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
9 3 4 7

RFA.NET Connectivity issues recovery handling

We use RFA.NET and LPC to get market price events stream. We have a wrapper application which uses RFA.NET and LPC to get market price events stream.

The application works by "Update" model which means we get connectivity status updates and market prices events via a queue.

In case we got login event with status other than OK, we are trying to reload our application (after recovery time threshold passed).

From time to time we have a connectivity issues like the below:

Login response: Data type : 141 Major version : 14 Minor version : 1 IsBlank : False HintMask : 2 IndicationMask : 0 MsgModelType : 1 MsgType : 1 
RespType : Status RespTypeNum : 0 , Response status: StatusText : Force Logout from DACS. StatusTextW : StreamState : Closed DataState : Suspect StatusCode : 3 ,
 Attributes: HintMask : 0 DataMask : 0 Name : NameType : 1 ServiceName : ServiceID : 0 ID : 0

When such event comes till now, we did the application reload as mentioned, but I'm wondering if this action is needed and if it can be helpful.


My questions:

1. Do you have any built in mechanism which deals with connectivity issue, that knows how to recover/retry from the problematic state?

2. What's the recommended way to deal with connectivity issues when occur? Is any action needed?

3. By the way, does RFA.NET coupled to .NET framework yet?

Thanks!

refinitiv-realtimerfa.netlpc
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.

Upvote
Accepted
52.7k 135 44 63

@aharonya

This is a closed login stream message.

message:Login response: Data type : 141 Major version : 14 Minor version : 1 IsBlank : False HintMask : 2 IndicationMask : 0 MsgModelType : 1 MsgType : 1 RespType : Status RespTypeNum : 0 , Response status: StatusText : TREP authentication token has expired. StatusTextW : StreamState : Closed DataState : Suspect StatusCode : 2 , Attributes: HintMask : 0 DataMask : 0 Name : NameType : 1 ServiceName : ServiceID : 0 ID : 0

The closed login stream also closes all opened streams and RFA will not recover the streams.

To handle this scenario, the application needs to re-open Login Stream to reconnect to the server by calling the registerClient method for the Login request, and then re-subscribe to all items.

RFA.NET doesn't support .NET Core.




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.

@Jirapongse Thanks! What could be the reason for stream closing?

@aharonya

The status contains the "TREP authentication token has expired" text.

It could be a problem in the LPC or the authentication service. You can contact the server team to verify the problem.

@Jirapongse One more question please: Do you have a replacement for the RFA.NET. Something I can use in a more modern C# environment?
Show more comments

@Jirapongse Sorry for my digging... Regarding the re-registration in case of connectivity issue - does it require disposing and re-creation of the infra objects like Session, OmmConsumer, Queue, etc.?

Thanks!

@aharonya

From my test, I just registered a login request with the same OMMConsumer.

Upvote
16.8k 31 9 12

Hello @aharonya

What the LPC version? Is it LPC version 1.2?

The OMM Login status response with the "StreamState : Closed, DataState : Suspect, and StatusText : Force Logout from DACS." means the login stream between the API and LPC is closed because of the "Force Logout from DACS. " reason.

When the application gets the Login status message with the Stream State Closed, the application needs to re-send the OMM login request message to the provider (LPC) manually, and then re-request items again.

I suggest you contact the LPC support team with the LPC information (LPC user, configuration file, log) and the disconnection time to verify the disconnection.

Could you please clarify the 3rd question? You can check the RFA .Net API API Compatibility Matrix from this document.

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
9 3 4 7

Hi @wasin.w,

Thanks for your response!

1. I was in contact with LPC team regrading this error. What I need to understand is what the way I should deal with connectivity issues happens during my rfa.net wrapper application running.

Do I need to do something to reconnect or it done automatically by the rfa.net infrastructure?

This is another error I see from time to time:

message:Login response: Data type : 141 Major version : 14 Minor version : 1 IsBlank : False HintMask : 2 IndicationMask : 0 MsgModelType : 1 MsgType : 1 RespType : Status RespTypeNum : 0 , Response status: StatusText : TREP authentication token has expired. StatusTextW : StreamState : Closed DataState : Suspect StatusCode : 2 , Attributes: HintMask : 0 DataMask : 0 Name : NameType : 1 ServiceName : ServiceID : 0 ID : 0

2. Regarding question 3, my question is if there isn't yet compatibility with .NET.Core?

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.