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

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
24 5 1 7

Failover for multiple NI Providers

I have an application setup to stream the same data to two ADH servers using an NI Provider. I am getting some weird failover behaviour and I'm not sure what might be going wrong.

  1. Start provider application that sends messages to both ADH servers
  2. Subscribe to Item using a separate application
  3. Ticks are successfully received.
  4. Turn off ADH1 which is acting as primary node. Subscriber get's notified and successfully starts receiving the data from the ADH2.
  5. Restart ADH1. Provider application reconnects and starts sending data there again.
  6. Stop ADH2 (acting as primary). Subscriber get's notified and pulls an IMAGE from ADH1
  7. Subscriber receives no further updates. But the publisher is still running.
  8. Restart ADH2. Provider connects and starts sending data.
  9. Stop ADH1 again. Subscriber now starts getting updates.

After I have gone through this initial failure cycle. You can successfully flip between both hosts repeatedly. I don't quite know why the first failback to ADH1 fails but after that everything is working.

Also to note, I can create the same behaviour in reverse. So if I start with ADH2 as the primary node then the first failback to ADH2 fails, subsequently you can flip servers without any issues.

elektronrefinitiv-realtimeelektron-sdkjavaADHnon-interactive-provider
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
Accepted
24 5 1 7

Hi Wasin,

I have made a bit of progress with this issue after posting on the GitHub issues too. It turns out that the ServiceID set in the Directory message is defaulted by EMA to '0' on connection recovery. The subscription streams don't pick up the continuation of the publisher unless the Service ID is the same. Here's the issue:

https://github.com/thomsonreuters/Elektron-SDK/issues/33

My workaround is to always use '0' as the ServiceID. I haven't found any good documentation on the significance of the ServiceID. I seem to be able to publish to the same Item with two different NI Publishers using the same Service name and ServiceID. Do you have any links to documentation on the ServiceID?

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
16.8k 31 9 12

Hello @tbaker

To let us check this issue in detail, could you please give us the following information?

  • The ADH and Elektron SDK Java version that encounter the problem
  • The RSSL trace file from the consumer side when the problem occurs. If you are using the EMA Java API, you can enable it by setting <XmlTraceToStdout value="1"/>
  • You ADH and ADS configuration files
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
16.8k 31 9 12

Hi @tbaker

There is the EMA Java RDM Usage Guide document that describes about the ServiceID in chapter 5 - Source Directory Domain. You can get the document from this link.

However, if you need more detail or clarification regarding the ServiceID behavior from development, I suggest you follow up in the GitHub 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.