question

Upvotes
Accepted
11 4 5 7

Error: 1002 ripcRead() failure. system error:(10054)

LoggerMsg
  TimeStamp: 15::47:54.693
  ClientName: ChannelCallbackClient
  Severity: Warning
  Text:    Received ChannelDownReconnecting event on channel Channel_1
    Consumer Name Consumer_1_1
    RsslReactor 0x00000075694FCF90
    RsslChannel 0x00000075694FCF90
    Error Id -1
    Internal sysError 10054
    Error Location ..\..\..\ValueAdd\Reactor\Impl\rsslReactor.c:3087
    Error Text <..\..\..\Ripc\Impl\ripcsrvr.c:6889> Error:1002 ripcRead() failure. System errno: (10054)
LoggerMsgEnd

What does that mean?

elektronelektron-sdkrrteta-apierrorelektron-transport-api
150-error.jpg (58.5 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.

@James.Shen

Hi. Thank you for your participation in the forum.

Are any of the replies 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.

Else please post again offering further insight into your question

Thanks

AHS

Upvote
Accepted
1.2k 23 31 44

The system error 10054 from Win32 is:

WSAECONNRESET (10054) Connection reset by peer. A existing connection was forcibly closed by the remote host.

Thus the provider you are connecting to is forcibly closing your connection. For the reason you must peruse the provider logs, if an ADS you may need help from your administrator possibly requiring elevated log levels.

Typical cause in production is a slow consumer, i.e. you are not processing incoming updates fast enough causing a back log in the ADS. One resolution for this is for the administrator to enable just-in-time-conflation which will conflate updates that are waiting delivery.

Typical cause in development is that you are not following the RDM protocol correctly and the provider has not understood what you have sent it and thus drops the connection to reset the state.

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
11 4 5 7

How many threads are calling

void onUpdateMsg( constthomsonreuters::ema::access::UpdateMsg&, constthomsonreuters::ema::access::OmmConsumerEvent& );

in the configure, do I have a way to increase the number of thread calling the

onUpdateMsg(call back) func? thanks.

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.

Upvote
78.8k 250 52 74

@James.Shen

In EMA, there are two operation modes:

  • OmmConsumerConfig::ApiDispatchEnum: In this mode, EMA will create a second, internal thread to dispatch received messages to the callbacks
  • OmmConsumerConfig::UserDispatch: In this mode, the application is responsible for calling the Ommconsumer::dispatch() method to dispatch all received to the callbacks. However, calling Ommconsumer::dispatch() from multiple threads is not recommended because it can introduce ordering issues associated with information received, which may or may not impact ordering of related messages.

In conclusion, for one OmmConsumer, it should have only one thread that dispatches received messages to the callbacks.

To use multiple dispatch threads, you can create multiple instances of OmmConsumer. For more information, please refer to 410__MarketPrice__HorizontalScaling example in EMA package

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.