question

Upvotes
Accepted
131 6 6 13

Building VAConsumer

I've cloned the Real-Time-SDK code and tried to build the C++ VAConsumer on Linux using this guide. When I issue the make VAConsumer command I get this error


[100%] Building C object Cpp-C/Eta/Applications/Examples/VAConsumer/CMakeFiles/VAConsumer.dir/__/VACommon/rsslVASendMessage.c.omake[3]: *** No rule to make target 'RTSDK-BinaryPack_rsslVACache_LIBRARY-NOTFOUND', needed by '../Cpp-C/Eta/Executables/LIN2_64_GCC831/Optimized/VAConsumer'.  Stop.
make[2]: *** [CMakeFiles/Makefile2:3324: Cpp-C/Eta/Applications/Examples/VAConsumer/CMakeFiles/VAConsumer.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:3336: Cpp-C/Eta/Applications/Examples/VAConsumer/CMakeFiles/VAConsumer.dir/rule] Error 2
make: *** [Makefile:937: VAConsumer] Error 2

Is there another step I need to do before the build to get this working ?




eta-apic++build
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.

17 Answers

Upvote
Accepted
131 6 6 13

I understand that ETA does that. But i causes problems when ETA is linked to an application that already links statically to OpenSSL. I found away around this - see VAConsumer application curl issue - Forum | Refinitiv Developer Community

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
14.7k 39 12 18

Hi @andy.sciascia,

That is the correct guide to start with the Realtime SDK. Can you please confirm that you are building on one of the supported linux platforms. You can see the list of supported linux'es in the API compatibility matrix.

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
131 6 6 13

Hi. Thanks for the answer. I was building on CentOS 6.

I rebuilt on

CentOS Linux 7
[build@jenkins-cent7-005 buildDir]$ gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)

and got this

make[3]: *** No rule to make target `RTSDK-BinaryPack_rsslVACache_LIBRARY-NOTFOUND', needed by `../Cpp-C/Eta/Executables/LIN3_64_GCC485/Optimized/VAConsumer'.  Stop.
make[2]: *** [Cpp-C/Eta/Applications/Examples/VAConsumer/CMakeFiles/VAConsumer.dir/all] Error 2
make[1]: *** [Cpp-C/Eta/Applications/Examples/VAConsumer/CMakeFiles/VAConsumer.dir/rule] Error 2
make: *** [VAConsumer] Error 2

Do I need to install some Oracle library(s) on my CentOS7 machine to satisfy the qualification ?

GCC compiler suite version 4.8.2 or higher for CentOS 7.0, 64-bit, qualification with OL7 library build



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
28.3k 30 11 15

Hello @andy.sciascia,

Would like to share a little more information, maybe some of it will come up helpful.

After you have built RTSDK under supported platform, as suggested by @Gurpreet, do you see the library that causes the message librsslVACache in BinaryPack under:

/opt/refinitiv/Real-Time-SDK/RTSDK-BinaryPack/Cpp-C/Eta/Libs

I see it in there on centos7, after RTSDK build is completed successfully.

If you do, is it included in your user's library path LD_LIBRARY_PATH so it can be found by make? Is the lib there, but not being found?

If it is not there, please verify that both cmake and make of RTSDK completed fully successfully for you?

You may wish to refer to article Deploy and Run Refinitiv Real-Time SDK in Docker for a great step-by-step of the build, including pre-requisites, that can be applied both in a docker container and on physical linux to building the latest RTSDK from GitHub source repo.

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.7k 57 39 60

Hi @andy.sciascia

According to the Supported Platforms, OSs, compilers, the supported platforms for CentOS is 7.X and 8.X.

Perhaps you can try renaming RTSDK-BinaryPack\Cpp-C\Eta\Libs\OL7_64_GCC482 to RTSDK-BinaryPack\Cpp-C\Eta\Libs\LIN2_64_GCC831.

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
45.2k 103 43 60

@andy.sciascia

Please try to install the redhat-lsb-core.x86_64 package with the following command.

yum install redhat-lsb-core.x86_64

The RTSDK uses this package to determine LSB (Linux Standard Base) and Distribution information.

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
131 6 6 13

Hi. None of the above worked for me.

I dir manage to build the docker using the Docker instructions provided above but there is a part missing. To run VAConsumer example I had to update the LD_LIBRARY_PATH to a path that had libcurl.so. I used /opt/refinitiv/Real-Time-SDK/rtsdk/install/lib64 because that has libcurl.so.

The app doesn't fully work but I think it's connecting. I tried to connect to -encryptedSocket emea-1-t2.streaming-pricing-api.refinitiv.com:14002 and I got this


Adding connection to emea-1-t2.streaming-pricing-api.refinitiv.com:14002...
Error rsslReactorConnect(): Failed to request authentication token information with HTTP error 400. Text: {"error":"access_denied"  ,"error_description":"Invalid username or password." }

I assume that means that I connected and the credentials were checked at emea-1-t2.streaming-pricing-api.refinitiv.com - is that correct ?

The credentials and client Id I used were ones I set up when I got my setup emails.

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
23.6k 84 10 22

Hi @andy.sciascia

Can you confirm the credentials are in the form of a Machine ID e.g. something like GE-A-12345678-1-1234 and the password is the long password you set using the link in the Welcome email that contained the MachineID?


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
131 6 6 13

Hi. Yes. The machine Id starts with GE-A- and the client Id is a 41 character string beginning b59 and the password is 65 character string which includes the required characters.

Is there any time limit by which I have to log in with the credentials after setting them up ?

Also are all credentials valid for all servers. I used the emea server because it's given in the example here

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
23.6k 84 10 22

Hi @andy.sciascia

Can you please try the following with your MachineID(username), password and appkey(clientID):

curl --location --request POST 'https://api.refinitiv.com/auth/oauth2/v1/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'authorization: ' \
--data-urlencode 'username=GE-A-12345678-3-1234' \
--data-urlencode 'password=abcdefghiPsZHt5m2uabcdefg4TWTN' \
--data-urlencode 'grant_type=password' \
--data-urlencode 'scope=trapi' \
--data-urlencode 'takeExclusiveSignOnControl=true' \
--data-urlencode 'client_id=abcdefghijk7478987d1c75f2c5fd8fcabcdefg1'

Do you get back a valid token or the same invalid username password error?

If you are still getting invalid username password, then please raise a ticket with My.Refinitiv for the Real-time Optimised product to have you credentials checked/reset.


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
131 6 6 13

Cheers for that - I got this

{"error":"access_denied" ,"error_description":"Invalid username or password." }

Obviously my password has expired or I didn't copy it correctly when I set it up. I'll raise that ticket. Cheers.

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
131 6 6 13

I've fixed my credentials - I had the machine id saved incorrectly and I re-entered the password. That curl command now returns a token. When I try VAConsumer now I get this

        emea-1-t2.streaming-pricing-api.refinitiv.com:14002 ELEKTRON_DD
                MarketPriceItems: IBM.N
                MarketByOrderItems:
                MarketByPriceItems:
                YieldCurveItems:
                MarketPriceItems (Private Stream):
                MarketByOrderItems (Private Stream):
                MarketByPriceItems (Private Stream):
                YieldCurveItems (Private Stream):


Adding connection to emea-1-t2.streaming-pricing-api.refinitiv.com:14002...




Connection down, reconnecting.  Channel fd=-1
        Error text: </opt/refinitiv/Real-Time-SDK/Cpp-C/Eta/Impl/Transport/rsslSocketTransportImpl.c:6851> Error: 1002 Could not read IPC Mount Ack.  Connection attempt has failed. System errno: (0)


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
23.6k 84 10 22

Hi,

Sincere apologies for the outdated hostname on the QuickStart. We renamed our hosts last year - as detailed in the following document - New Hostnames August 2021 -and it seems the old hostnames have finally stopped working. I will arrange to get that updated.

If you can try one of the alternative hostnames and confirm if that works e.g.

VAConsumer -encryptedSocket eu-west-1-aws-3-med.optimized-pricing-api.refinitiv.net:14002 ELEKTRON_DD mp:IBM.N -uname <machineID>  -passwd <password> -clientId <appkey> -sessionMgnt

Note that the document talks about TIER levels - if you don't know your tier level, please check with your Refinitiv Account team which tier you are licenced to - or just try hostnames from sm,med and lrg tiers until you identify your licenced tier.

Tier levels are explained in the RTO config and install guide.

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.

Note: You will most likely be using a Refinitiv Managed endpoints - unless you have been told otherwise internally or by your account team.
Upvotes
131 6 6 13

Hi. Sorry for the late reply. I couldn't log in here yesterday. It kept hanging.

That host worked fine for me yesterday - cheers. I connected and got data for various RIC's.

It stopped working last night complaining - I can't remember the error, something about sso. I thought maybe my password expired. But it's working again now.

BTW, those docker instructions should probably be updated so that the issue with VAConsumer is addressed. I did this to get it working

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/refinitiv/Real-Time-SDK/rtsdk/install/lib64 
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
131 6 6 13
Got my application working but I had to temporarily stop statically linking it to OpenSSL ( version 1.1.1m ). I need to restore the static link eventually because we use the library in the app for Caplin secure connections. But it proves that the connection code I implemented from the examples is correct. Have you tried getting an example working that is already statically linked to OpenSSL ?
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
45.2k 103 43 60

@andy.sciascia

ETA calls the dlopen method to dynamically load the OpenSSL shared library.

It doesn't support the OpenSSL static library.

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
131 6 6 13

Yes - I know that the ETA dynamically loads OpenSSL. My point is that if any application that needs to links to ETA is already itself statically linked to OpenSSL then there will be a problem and that should be documented.

My application is statically linked to OpenSSL 1.1 - for it's own purposes. But it also needs to link to ETA - that's where the problem was. The solution was straightforward in the end but it would be useful if the ETA documentation pointed out that this is a potential issue.

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.