question

Upvotes
Accepted
23 2 2 2

Reactor premature CHANNEL_READY on reconnect

Hi,

When the ValueAdd reactor first connects to an OMM provider the reactorChannelEventCallback is invoked with a CHANNEL_READY event only after it has received both the Field Dictionary and the Enum Dictionary. However, if the session is disconnected and the Reactor reestablishes the connection, the CHANNEL_READY event is received after it has received the Field Dictionary but before it has received the Enum Dictionary.

Is this expected behaviour? Is there a way to force the Reactor to wait until the Enum dictionary is received before sending CHANNEL_READY?

I am using ETA Java 3.5.0.0.

Thanks,

Mike

elektronrefinitiv-realtimeelektron-sdkrrtrfajavaeta-apielektron-transport-api
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
9.6k 10 6 7

Hello @Mike Slade

Refinitiv Real-Time SDK - Java - 1.5.1.L1 consists of EMA and ETA APIs 3.5.1.L1 (3.5.1.0) which fixed this issue has been released. This is mentioned in CHANGELOG.md as shown below:

I have did a quick test and the application worked properly.


resolvedissues.png (410.9 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
52.4k 134 44 63

@Mike Slade

I can replicate this issue with the VA Consumer example in the package.

After creating a connection, the CHANNEL_READY event is fired after the EnumType dictionary has completed.

EnumType Dictionary complete.
Channel Ready Event: java.nio.channels.SocketChannel[connected local=/127.0.0.1:30848 remote=localhost/127.0.0.1:14002]

However, after reconnecting, the CHANNEL_READY event is fired when RWFFld dictionary has received.

Connection down reconnecting: Channel java.nio.channels.SocketChannel[connected local=/127.0.0.1:30848 remote=localhost/127.0.0.1:14002]
    Error text: An existing connection was forcibly closed by the remote host
...
Received Dictionary Response: RWFFld
Channel Ready Event: java.nio.channels.SocketChannel[connected local=/127.0.0.1:30850 remote=localhost/127.0.0.1:14002]

I have compared this behavior of ETA C and found that ETA C works correctly. The RSSL_RC_CET_CHANNEL_READY has fired after the enumerated types dictionary has completed after reconnecting.

Received Dictionary Response: RWFEnum
Enumerated Types Dictionary complete.
### Channel is Ready ###
...
Connection down, reconnecting.  Channel fd=464
...
Received Dictionary Response: RWFEnum
Enumerated Types Dictionary complete.
### Channel is Ready ###

This could be a bug in ETA Java. Therefore, please submit a new case to RDC to verify the problem via Contact Premium Support at https://developers.refinitiv.com/elektron/elektron-sdk-java.

The support team will verify the problem and then contact the development team to fix it.


1592800471682.png (38.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.