question

Upvotes
Accepted
1 0 1 1

ETAJ: Receive F9: Service has gone down but not receive any message on up

I am using ETA Java to connect TREP

I've receive the SourceDirectoryUpdate from server with the following message

F9: Service has gone down, Will recall when service become available

I have the following questions:
1. After the service is up, what message will I be received?
2. Should I do reconnect when I receive this message? Or I could pend the connection and wait until it recover?


Thanks!

refinitiv-realtimetrep#technologyeta-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
82.7k 279 53 77

@altman.wong

Thanks for reaching out to us.

When the service is down, the application will get a source directory message that indicates the service is down and a source directory group status message that indicates that all items in the group are in the Open/Suspect state.

<UPDATE domainType="SOURCE" streamId="2" containerType="MAP" flags="0xC0 (DO_NOT_CACHE|DO_NOT_CONFLATE)" updateType="0" dataSize="115">
    <dataBody>
        <map flags="0x00" countHint="0" keyPrimitiveType="UINT" containerType="FILTER_LIST" >
            <mapEntry flags="0x00" action="UPDATE" key="5001" >
                <filterList containerType="ELEMENT_LIST" countHint="0" flags="0x00">
                    <filterEntry id="3" action="SET" flags="0x00" containerType="ELEMENT_LIST">
                        <elementList flags="0x08 (HAS_STANDARD_DATA)">
                            <elementEntry name="Group" dataType="BUFFER" data="1"/>
                            <elementEntry name="Status" dataType="STATE" State: Open/Suspect/None - text: "F9: Service has gone down. Will recall when service becomes available."/>
                        </elementList>
                    </filterEntry>
                </filterList>
            </mapEntry>
        </map>
    </dataBody>
</UPDATE>

If you use ETA VA with WatchList enabled, the API will fanout this message to all items in this group. Therefore, the application will retrieve the Open/Suspect status messages for all subscribed items in this group.

DefaultMsgCallback Status -- ItemName: TRI.N Domain: MARKET_PRICE, StreamId: 5
State: Open/Suspect/None - text: "F9: Service has gone down. Will recall when service becomes available."

When the service is up, the application will get the source directory messages that indicate the service is up. Because the item state is still Open, the application doesn't need to re-subscribe to items. The server will recover items and send new refresh messages to the application.

In short, the application needs to check the stream state of the subscribed items. If the stream state is Open, the application doesn't need to re-subscribe to items.

This one applies to the service down, not disconnection.

I hope that this information is of help.

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
26.3k 61 17 14

Hello @altman.wong

For the second question, please check my colleague @Jirapongse answer in this post. He shows the example status message and how the application should handle the message.

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
1 0 1 1

Hello @Jirapongse

Much appreciated for your help

From log I saw I receive "A23", which indicate a server switch

However, since it is a SourceDirectoryUpdate message, from the logic of ETAJ example, it has cleared the capabilities list and cause me fail to send MARKET PRICE request even the connection is fine.

To tackle the issue, should I try to send SourceDirectoryRequest once more to refresh the capabilities list? Or try not to handle the update message in this case?

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.

@altman.wong

Typically, the example will send item requests when it can detect that the subscribed service is up and ready.

The application should receive the source directly update message when the service is up. It is not necessary to send another source directory request if the source directory stream is still open.

@Jirapongse

What if I could not receive the source directory update? The stream looks fine but I did not see any new capability list at last, does it mean I need to resend the request myself?

Thanks a lot

Hello @altman.wong

The infrastructure should send the directory update to consumers once the service is UP again (and the source directory stream is still open).


If the API or application did not receive the directory update message when the service is UP, it might be something wrong. I highly recommend you open the RSSL log message to check if the API received the directory update message from the backend. If not, you need to check the RTDS level.

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.