EMA Java - Request timeout

When we receive a StatusMsg like the following


StatusMsg streamId="5" domain="MarketPrice Domain" state="Open / Suspect / None / 'Request timeout'" name="TICKER" serviceId="10" serviceName="ELEKTRON_DD"StatusMsgEnd

Is it possible to close this stream with the given streamId when this occurs. This is to prevent EMA from sending repeated timeout status messages.


Best Answer

  • @xinjames.chen

    Thank you for reaching out to us.

    Yes, you can unregister an item calling the unregisterClient method with a handle (UInt64) returned by the registerClient method.

    However, if you use a batch request, you can get an item's handle from the AppClient::onStatusMsg callback method by calling the OmmConsumerEvent::getHandle() method inside the callback.

    Otherwise, you can change the RequestTimeout value in the consumer configuration. The default value is 15 seconds.

    1698812830716.png


Answers

  • Thank your for your earlier guidance, I've implemented the suggested changes using event.handle() method. However, after adjusting the request timeout value to 100 milliseconds, I've encountered a new issue.

    I got the following message when creating the ommConsumer

    c.refinitiv.ema.access.OmmConsumerImpl : loggerMsg

    ClientName: ChannelDictionary

    Severity: Warning

    Text: RDMDictionary stream state was changed to suspect with status message

    streamId 3

    Reason State: Open/Suspect/None - text: "Request timeout"

    loggerMsgEnd

    This prevents me from even sending a request to the server, thereBy making it challenging to test the original "Request timeout" issue.

  • @xinjames.chen

    100 miliseconds is too small. You can use the default value (15000) or increase the value.