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.

Hello @Mike Slade

Thank you for your participation in the forum. Is the reply below satisfactory in resolving your query?


If so please can you click the 'Accept' text next to the appropriate reply. This will guide all community members who have a similar question.

Thanks,


AHS

This is case 08873087 and the development team is investigating.

<AHS>

The case 08873087 is now in "Fixed Applied" status, extend triage.

<AHS>

The case 08873087 is now in "Fixed Applied" status, extend triage.

@Mike Slade

Hi,

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
9.6k 10 7 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
78.8k 250 52 74

@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.

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.