RTI Monitor on Ubuntu

7 posts / 0 new
Last post
Offline
Last seen: 9 years 2 days ago
Joined: 08/03/2015
Posts: 8
RTI Monitor on Ubuntu

Hi guys,

I work with Ubuntu 14.04 LTS, eclipse CDT and the language used is c++.

I've compiled and ran successfully the rti example "using_qos_profiles".

To enable the monitoring I've modify the QoS file "my_custom_qos_profiles.xml" in the following way.

<qos_library name="profiles_Library">

<qos_profile name="transient_local_profile" base_name="BuiltinQosLib::Generic.Monitoring.Common">

<participant_qos>

Also, I modify the definition of entities in profile_publisher.cxx to get the QoS from "my_custom_qos_profiles.xml". For example:

participant = DDSTheParticipantFactory->create_participant_with_profile
( domainId, "profiles_Library",
"transient_local_profile",
NULL /* listener */, DDS_STATUS_MASK_NONE);

After apply the changes, the compilation is OK, but when I run ./profile_publisher I get the following errors:

[CREATE Participant]RTIOsapiLibrary_open:error opening library librtimonitoring.so: librtimonitoring.so: cannot open shared object file: No such file or directory
[CREATE Participant]DDS_DomainParticipantMonitoring_initializeMonitoringLibrary:ERROR: Failed to get load monitoring library
[CREATE Participant]DDS_DomainParticipantMonitoring_initializeI:!create monitoring library instance
[CREATE Participant]DDS_DomainParticipant_createI:!create builtin monitoring support
[CREATE Participant]DDS_DomainParticipantFactory_create_participant_disabledI:!create participant
DDSDomainParticipant_impl::create_disabledI:!create participant
DDSDomainParticipant_impl::createI:!create participant
DomainParticipantFactory_impl::create_participant():!create failure creating participant
DomainParticipantFactory_impl::create_participant_with_profile():ERROR: Failed to create participant from a profile
create_participant error


The librariy librtimonitoring.so is locates at ../rti_connext_dds-5.2.0/lib/x64Linux3gcc4.8.2/librtimonitoring.so

The RTI Monitor doesn't monitor anything. However all entities appears on the screen, but with a question mark.

I've run the same example on Windows 7 and RTI Monitor worked successfully, with any problem.


Thanks for advanced!

Organization:
Offline
Last seen: 1 year 2 months ago
Joined: 05/23/2013
Posts: 64

Hi,

Have you added your DDS library directory to the environment variable, LD_LIBRARY_PATH?
$ export LD_LIBRARY_PATH=$NDDSHOME/lib/x64Linux3gcc4.8.2:$LD_LIBRARY_PATH

The example command above assumes that you set the environment variable, NDDSHOME, properly. (NDDSHOME should be set to "../rti_connext_dds-5.2.0" in your case)

Thanks,
Kyoungho

Offline
Last seen: 9 years 2 days ago
Joined: 08/03/2015
Posts: 8

Hi Kyoungho,

Thanks for answer,

No, I hadn't set LD_LIBRARY_PATH. But now, when I run ./profile_publisher I get another error type.

DDS_DomainParticipantGlobals_initializeWorkerFactoryI:!Potential library mismatch.
This may happen if your application uses the static and the shared RTI core libraries simultaneously.
For example, using the shared RTI Monitoring library and linking statically with the RTI core libraries will cause this mismatch RTIDefaultMonitorPublisher_create:!get worker factory

This error appears several times when I try to run ./profiles_publisher in terminal

I have no idea to how fix it.

Thanks for advanced again!

Offline
Last seen: 1 year 2 months ago
Joined: 05/23/2013
Posts: 64

Hi,

You need to compile your applications with the shared library option as monitoring libraries are linked dynamically. Would you try to compile with adding "SHAREDLIB=1" like the following example?

$ make -f make/Makefile.x64Linux2.6gcc4.4.5 SHAREDLIB=1

Thanks,
Kyoungho

Offline
Last seen: 9 years 2 days ago
Joined: 08/03/2015
Posts: 8

Hi Kyoungho,

The problem still persists...
I don't know what info tell you. Do you have any project already running? I could check it in my system.

Thank you very much mister!

Offline
Last seen: 1 year 2 months ago
Joined: 05/23/2013
Posts: 64

Hi,

I used RTI examples provided in the workspace (using 5.2.0) and it worked. If you are not using makefiles provided by RTI examples, the SHAREDLIB option will not work. If not using examples, I think your makefile is set to use DDS static libraries (-lnddscppz -lnddscz -lnddscorez). If so, you can remove "z" from the library names (-lnddscpp -lnddsc -lnddscore) as "z" indicates static libraries. If it still doesn't work, please provide me your makefile. 

Thanks,
Kyoungho

Offline
Last seen: 9 years 2 days ago
Joined: 08/03/2015
Posts: 8

Hi Kyoungho,

My system is working fine! I have to fix some configuration problems with eclipse but now everything works.

Thanks a lot boss!