question

Upvotes
Accepted
3 1 1 1

"Domain type does not match existing request." in EMA API C++ Sample code consummer11

We are having issues with EMA API C++ Sample code consummer113. The sample code was found to have this problem today. It used to work ok.



loggerMsg
TimeStamp: 13:42:52.398
ClientName: ChannelCallbackClient
Severity: Success
Text: Received ChannelUp event on channel Channel_3
Instance Name Consumer_3_1
Connected component version: ads3.4.2.L1.linux.tis.rrg 64-bit
loggerMsgEnd

loggerMsg
TimeStamp: 13:42:53.167
ClientName: SingleItem
Severity: Error
Text: Internal error: rsslReactorSubmitMsg() failed in SingleItem::submit( RsslRequestMsg* )
RsslChannel 0x(nil)
Error Id -29
Internal sysError 0
Error Location /r/emalib/Cpp-C/Eta/Impl/Reactor/Watchlist/wlItem.c:697
Error Text Domain type does not match existing request.
loggerMsgEnd

loggerMsg
TimeStamp: 13:42:53.167
ClientName: Consumer_3_1
Severity: Error
Text: Failed to open or modify item request. Reason: RSSL_RET_INVALID_DATA. Error text: Domain type does not match existing request.
loggerMsgEnd

Exception Type='OmmInvalidUsageException', Text='Failed to open or modify item request. Reason: RSSL_RET_INVALID_DATA. Error text: Domain type does not match existing request.', ErrorCode='-29'



Best regards,
Yongguang



elektronrefinitiv-realtimeelektron-sdkrrtema-apielektron-message-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

Upvote
Accepted
38.1k 71 35 53

@yongguang.wang

From my checking, I assume that you are using EMA 3.5.0.L1 in Real-Time SDK C/CPP 1.5.0.L1.

It looks like to be a bug fixed in EMA C++ 3.5.1.L1 in RTSDK C++/C Release 1.5.1.L1.

- [ESDK-4086] - EMA must check both DictionaryUsed and DictionaryProvided to download dictionary from network 

The workaround for EMA 3.5.0.L1 is loading the dictionary from the local files by using Dictionary_2 in Consumer_3.

    <Consumer>
      <Name value="Consumer_3"/>

      <!-- ChannelSet specifies an ordered list of Channels to which OmmConsumer will attempt to    -->
      <!-- connect, one at a time, if the previous one fails to connect                            -->
      <ChannelSet value="Channel_3"/>

      <Logger value="Logger_1"/>
      <Dictionary value="Dictionary_2"/>
      <XmlTraceToStdout value="0"/>
    </Consumer>


        <Dictionary>
            <Name value="Dictionary_2"/>
            <DictionaryType value="DictionaryType::FileDictionary"/>

            <!-- dictionary names are optional: defaulted to RDMFieldDictionary and enumtype.def -->
            <RdmFieldDictionaryFileName value="./RDMFieldDictionary"/>
            <EnumTypeDefFileName value="./enumtype.def"/>
        </Dictionary>

Then, copy the RDMFieldDictionary and enumtype.def files from the Cpp-C\etc to the working directory of the application.

Otherwise, you can upgrade to the latest version of the Refinitiv Real-Time SDK.



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