question

Upvotes
Accepted
23 1 0 2

How can we be sure that a MarketPrice stream is closed?

Hi,

UPA Version: 8.0.0.L1

We have an application using UPA which creates/closes market price streams, and reuses streamIDs. The current logic for closing a stream is as follows:

  1. Send RsslCloseMsg, set flag so we are sent an ACK.
  2. Once ACK is received, add streamID to list to be reused.

We are seeing a few issues with this. If the stream is busy, we can receive some UPDATES after we receive the ACK.
Also, if we 'quickly' reuse the streamID and send an open request after we receive the ACK, we get the following message:

"Request Rejected: Cannot request new item on open stream."


Is it correct to assume that once we receive an ACK from a CloseMsg the streamId can be reused / the previous stream is correctly closed?

We have also tried using rsslIsFinalMsg to check if we have received the final message for the stream, but this always returns false for close message ACKS.


Thanks

elektronelektron-sdkrrtapieta-apielektron-transport-api
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

1 Answer

Upvotes
Accepted
23k 22 9 14

Hello @Mike Slade,

Yes. The issue you are seeing is related to resubscribe, part of the same issue as the resubscribe failure, and was addressed in TREP 3.3.1 infrastructure.

Therefore, it's important to find out what infra you are connecting to. Your market data team/admin will know the version.

If it's below 3.3.1, you will not be able to fully rely on the ack and will have to introduce a wait after close on the app side to be fully sure it is completely closed.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Click below to post an Idea Post Idea