question

Upvotes
Accepted
6 3 6 7

NullReferenceException when trying to connect through Eikon in "offline" mode

diconnected null ref exception.PNG

RDPLog_69484.txt

Due to a local network problem Eikon was in the "Connection Mode: offline" state. Attempting to create a connection with example program 2.1.2 caused a null reference exception.

Log data:

2020-05-07 11:16:36.9422|Info|Refinitiv.DataPlatform.Delivery.Stream.StreamConnection|4|Successfully connected into the WebSocket server: localhost:9000/api/v1/data/streaming/pricing
2020-05-07 11:16:37.8967|Error|Refinitiv.DataPlatform.Delivery.Stream.StreamConnection|12|WebSocketSharp: "System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
bei Refinitiv.DataPlatform.Delivery.Stream.StreamConnection.ProcessJsonMsg(JObject msg)
bei Refinitiv.DataPlatform.Delivery.Stream.StreamConnection.OnWebSocketMessage(Object sender, MessageEventArgs e)
bei WebSocketSharp.Ext.Emit[TEventArgs](EventHandler`1 eventHandler, Object sender, TEventArgs e)
bei WebSocketSharp.WebSocket.messagec(MessageEventArgs e)"
2020-05-07 11:16:37.8967|Error|Refinitiv.DataPlatform.Delivery.Stream.StreamConnection|12|WebSocket error occurred: An error has occurred during an OnMessage event.
2020-05-07 11:16:37.8967|Warn|Refinitiv.DataPlatform.Core.DesktopSessionCore|12|Failed to establish a Desktop stream. "WebSocket error occurred: An error has occurred during an OnMessage event."

rdp-apirefinitiv-data-platformerror.netrefinitiv-data-platform-libraries
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.

1 Answer

Upvotes
Accepted
11.7k 57 39 60

Hi @martin.grunwald,

I just attempted to replicate the same behavior as you, i.e. putting my Eikon in a state where it is offline. In doing so, I was unable to establish a connection and thus unable to replicate your specific scenario. However, the overall behavior of what you and I received was the same - unable to get streaming data - and this was expected given the state of Eikon.

The RDP Library for .NET uses a specific WebSocket NuGet package (WebSocketSharp) as the default WebSocket processing capability. The Eikon Proxy server managing the connection perhaps closed the channel because it was unable to fulfill streaming services as a result of its state. This particular WebSocket package may not have handled the disconnect or close handshake elegantly and as a result internally threw a NullReferenceException().

The next version of the RDP Library for .NET will provide the ability for developers to use their own specific WebSocket implementation in place of the default. While I can't guarantee a specific WebSocket implementation will handle it more elegantly, each should be able to detect an issue with the stream.

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.