Hello there
I have been fiddling with QoS profiles for an application. I have attempted to create a library with a number of profiles to be used for different entitites. My profiles inherit from various profiles in the builtin profiles.
The default profile is:
<qos_profile name="LwDefault" base_name="BuiltinQosLibExp::Generic.KeepLastReliable.TransientLocal"
is_default_qos="true">
<participant_qos>
<transport_builtin>
<mask>SHMEM</mask>
</transport_builtin>
<participant_name>
<name>LW Component</name>
</participant_name>
</participant_qos>
</qos_profile>
I've set the environment variable NDDS_QOS_PROFILES to point at the xml file. This seems to work for my application, but I'm having problems using the RTI Analyzer.
When I start the analyzer agent I get the following Warning:
TransportSupport.set_builtin_transport_property failed to set properties for ShmemTransport: error message : null
And I cannot see my application in the entity tree. If I remove the inheritance I have no problems and can see my entities just fine in the analyzer.
Does anyone have an idea what could be wrong?
Hi,
I was able to reproduce your issue with the Qos profile you've provided. It looks like you've hit a bug related to our new BuiltinProfiles and how they are processed by our core. The short summary is that one of the inherited profiles contains a setting related to the DomainParticipantFactory, which is causing your problems because of how we create the DomainParticipant within the Analyzer.
Fortunately, there is a straightforward workaround. When you start Analyzer, click on the "Configure" button. Then, click the radio button to "Configure using XML QoS Profile". In the input boxes, specify your XML file, the name of the Library, and the name of the Profile. Then click "OK", and then start Analyzer. This should bypass the above bug, and I've verified that it should work.
Note that if you have the NDDS_QOS_PROFILES environment variable pointing to your XML file, and you do the above, you'll get a different error about duplicate profiles. This happens because our core is processing your XML file twice, once because of the NDDS_QOS_PROFILES variable and once because of the Analyzer dialog box. If this happens, don't specify the file in the Analyzer configuration but *do* specify the library and profile. See the attached screenshot for what I mean.
Hello there :)
Thanks for the reply. This seems to work, I get no warnings and the applications show up in the entity tree.
There is one piece of, for me, odd behaviour though. If my applications were started prior to RTI Analyzer, I get the applications in my entity tree just fine, but I can't see the data readers and writers. If I start a new application, all the data writers show up on the existing applications.
If I start the applications after RTI analyzer everything works fine. This is obviously not a huge problem, but rather a weird change from how it used to work for me.
-Tue
Hi Tue,
That is strange. I can't seem to reproduce it myself, though. It might be a UI delay with Analyzer or something similar.
Have you tried to use RTI AdminConsole instead? All of the Analyzer functionality has been rolled into AdminConsole, and it provides the same information. As I mentioned earlier, Analyzer has been deprecated and AdminConsole will be the new platform going forward.