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?

Best Answer

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

Answers

  • error text<..\..\..\Ripc\Impl\ripcsrvr.c 6889>

  • error.jpg and here is the pic

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

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