question

Upvotes
Accepted
205 6 12 26

Unhandled Exception: ThomsonReuters.RFA.Common.InvalidUsageException for OMMConsumerImpl::registerClient

Hello,

We are using RFA 8.1 api's to get market data from Reuters. We recently started seeing crash which is consistent with same symbol $IDRUSD IDRUSD=R. It's amazing that for others symbols subscribed before this, it works perfectly fine.


Track trace -

#0 0x00007f9c0c5a1387 in raise () from /lib64/libc.so.6
#1 0x00007f9c0c5a2a78 in abort () from /lib64/libc.so.6
#2 0x00007f9c0ceb1a95 in __gnu_cxx::__verbose_terminate_handler() () from /lib64/libstdc++.so.6
#3 0x0000000000e61b1c in ft::mdutils::Log::terminate () at mdutils/src/logging/Log.cpp:186
#4 0x00007f9c0ceafa06 in ?? () from /lib64/libstdc++.so.6
#5 0x00007f9c0ceafa33 in std::terminate() () from /lib64/libstdc++.so.6
#6 0x00007f9c0ceafc53 in __cxa_throw () from /lib64/libstdc++.so.6
#7 0x00007f9c0f437f6f in rfa::common::InvalidUsageExceptionImpl::throwInvalidUsageExceptionImpl(rfa::common::Exception::CommonErrorType, rfa::common::Exception::CommonErrorSeverityType, rfa::common::Exception::CommonErrorClassificationType, rfa::common::GeneralExceptionStatus::State, rfa::common::GeneralExceptionStatus::StatusCode, rfa::common::RFA_String const&) ()
from /home/flexsys/base/flex/libs/rfa/libRFA_Common.so
#8 0x0000000000f370bc in rfa::sessionLayer::OMMConsumerImpl::throwIUE(rfa::common::RFA_String const&) ()
#9 0x0000000000f3dda8 in rfa::sessionLayer::OMMConsumerImpl::subscribe(rfa::common::EventQueue*, rfa::sessionLayer::OMMIntSpec const*, rfa::common::Client&, void*) ()
#10 0x0000000000f3dfaa in rfa::sessionLayer::OMMConsumerImpl::registerClient(rfa::common::EventQueue*, rfa::sessionLayer::OMMIntSpec const*, rfa::common::Client&, void*) ()
#11 0x0000000000b11aaa in RFAFlex::OMMClient::Subscribe (this=0x7f9be4001b60) at api/Reuters_RFA/RFAOMMClient.cpp:80
#12 0x0000000000af13c1 in RFAFlex::ClientMgr::SubscribeL1 (this=0x361d370, sFlexSymbol="$IDRUSD", sRIC="IDRUSD=R", l1e=0x7f9be4008820, asDelayed=false) at api/Reuters_RFA/RFAClientMgr.cpp:142
#13 0x0000000000afe57e in RFAFlex::DataThread::Loop (this=0x184aaa0 <RFAFlex::Singleton<RFAFlex::DataThread>::GetInstance()::myInstance>) at api/Reuters_RFA/RFADataThread.cpp:386
#14 0x0000000000afd43e in RFAFlex::DataThread::Run (this=0x184aaa0 <RFAFlex::Singleton<RFAFlex::DataThread>::GetInstance()::myInstance>) at api/Reuters_RFA/RFADataThread.cpp:239
#15 0x0000000000b99dbb in RFAFlex::RFAThread::Run (pVoid=0x184aaa0 <RFAFlex::Singleton<RFAFlex::DataThread>::GetInstance()::myInstance>) at api/Reuters_RFA/RFAThread.cpp:32
#16 0x00007f9c1011fea5 in start_thread () from /lib64/libpthread.so.0
#17 0x00007f9c0c669b0d in clone () from /lib64/libc.so.6


trep#technologyrfa#productrfa-api
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.

Hello @mktdata

Thank you for your participation in the forum. Is the reply 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.

Thanks,


AHS

Upvote
Accepted
79.3k 253 52 74

@mktdata

I don't think so. They are different processes. Each process has its own process address space.

According to the call stack, the application crashed while sending an item request. You may need to verify the parameters sent to the OMMConsumerImpl::registerClient method.

You may need to catch the exception and print the exception's detail, as shown in the StarterConsumer example.

catch (rfa::common::Exception& e)
    {
        ExceptionHandler::checkException(e);
        ...
        return -1;
    }
 

The ExceptionHandler::checkException method in the ExceptionHandler.cpp in the example code. It will print the status text which may provide useful information.

To investigate this kind of issue, you need to contact the API support team directly via Contact Premium Support, as mentioned by my colleague.


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
79.3k 253 52 74

@mktdata

Thanks for reaching out to us.

I can run the StarterConsumer example in the RFA package to subscribe to IDRUSD=R and it can retrieve the data properly.

1678246343707.png

You may try to update the application to use the latest version of RFA C++ to avoid all known issues.

You can download the API from the Software Downloads and it is in the Category: MDS - API and Product: Robust Foundation API (RFA) - C++. The latest version is 8.2.2.L1.

I hope that this information is of help.


1678246343707.png (29.2 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.

Upvotes
205 6 12 26

@Jirapongse , We tried with latest library but problem still persist. May I know possible use cases when "OMMConsumerImpl::registerClient" will throw an exception? How to troubleshoot? Could it be due to older dictionary?

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
24.8k 54 17 14

Hello @mktdata

Could you please let us know if you are using the RFA C++ on the supported platforms/compilers?

Based on the RFA C++ README file, the supported platforms/compilers are as follows:

RFA 8.2:

# OS
- Red Hat Enterprise Linux Advanced Server 6.0 32/64-bit
- Red Hat Enterprise Linux Advanced Server 7.0 64-bit
- Red Hat Enterprise Linux Advanced Server 8.0 64-bit      
- Oracle Linux Server 6.0 32/64-bit
- Oracle Linux Server 7.0 64-bit
- CentOS Linux 7.0 64-bit
- CentOS Linux 8.0 64-bit
- Microsoft Windows Server 2012 64-bit 
- Microsoft Windows Server 2016 64-bit
- Microsoft Windows 7 Professional 32/64-bit
- Microsoft Windows 8 Professional 32/64-bit
- Microsoft Windows 8.1 Professional 32/64-bit
- Microsoft Windows 10 Professional 32/64-bit
# Compiler (Linux)
- GCC compiler suite version 4.4.4 or higher for RHAS 6.0 (32/64-bit)
- GCC compiler suite version 4.4.4 or higher for OLS 6.0 (32/64-bit)
- GCC compiler suite version 4.8.2 or higher for OLS 7.0 (64-bit)
- GCC compiler suite version 4.8.2 or higher for CentOS 7.0 (64-bit)
- GCC compiler suite version 8.3.1 or higher for RHAS 8.0 (64-bit)
- GCC compiler suite version 8.3.1 or higher for CentOS 8.0 (64-bit)
# Compiler (Windows)
- Microsoft Visual C++ 12.0 32/64-bit (Visual Studio 2013)
- Microsoft Visual C++ 14.0 32/64-bit (Visual Studio 2015)
- Microsoft Visual C++ 14.1-14.16 32/64-bit (Visual Studio 2017)
- Microsoft Visual C++ 14.29 64-bit (Visual Studio 2019)

RFA 8.1:

#OS
- Red Hat Enterprise Linux Advanced Server 6.0 32/64-bit
- Red Hat Enterprise Linux Advanced Server 7.0 64-bit
- Red Hat Enterprise Linux Advanced Server 8.0 64-bit      
- Oracle Linux Server 6.0 32/64-bit
- Oracle Linux Server 7.0 64-bit
- CentOS Linux 7.0 64-bit
- CentOS Linux 8.0 64-bit
- Microsoft Windows Server 2008 (SP1 or greater) 32/64-bit 
- Microsoft Windows Server 2012 64-bit 
- Microsoft Windows 7 Professional 32/64-bit
- Microsoft Windows 8 Professional 32/64-bit
- Microsoft Windows 8.1 Professional 32/64-bit 
#Compiler (Linux)
- GCC compiler suite version 4.4.4 or higher for RHAS 6.0 (32/64-bit)
- GCC compiler suite version 4.4.4 or higher for OLS 6.0 (32/64-bit)
- GCC compiler suite version 4.8.2 or higher for OLS 7.0 (64-bit)
- GCC compiler suite version 4.8.2 or higher for CentOS 7.0 (64-bit)
#Compiler (Windows)
- Microsoft Visual C++ 10.0 32/64-bit (visual Studio 2010)
- Microsoft Visual C++ 11.0 32/64-bit (Visual Studio 2012)
- Microsoft Visual C++ 12.0 32/64-bit (Visual Studio 2013)
- Microsoft Visual C++ 14.0 32/64-bit (Visual Studio 2015)

If you are using the API on the supported system listed above, but the problem still persists, please contact your colleague who has RDC-named user accounts to submit a ticket to the Real-Time API support team to investigate this issue. The RDC-named users can submit a ticket via the "Contact Premium support" button on the following pages:

RFA C++ API page: https://developers.refinitiv.com/en/api-catalog/refinitiv-real-time/robust-foundation-api-rfa-c--

contact-rfacpp-support.png

RTSDK C/C++ page: https://developers.refinitiv.com/en/api-catalog/refinitiv-real-time-opnsrc/rt-sdk-cc

contact-rtsdk-cpp-support.png


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.

Hi @mktdata

This is a private comment. Your colleague who is RDC-named users are as follows:

Please contact them to submit the ticket to the RDC team. If you want to register RDC, please contact your account/sale representative.

Upvotes
205 6 12 26

@wasin.w @Jirapongse , could it also happen if two applications share same Reuters connection and both subscribe to the same symbol?

When I say they share same connection, what I mean is below configurations are same for both applications -

  • Connections\Connection_RSSL\ConnectionType
  • Connections\Connection_RSSL\hostName
  • Connections\Connection_RSSL\rsslPort
  • \RFAIdentity
  • \DataFeedAppId
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.

@wasin.w , @Jirapongse It's bit urgent. If someone can reply sooner, that will be great help.

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.