Loading a QoS

6 posts / 0 new
Last post
Offline
Last seen: 5 years 10 months ago
Joined: 05/04/2018
Posts: 2
Loading a QoS

I am trying to get my LabVIEW DDS application to use a custom QoS.  I have created the file "USER_QOS_PROFILES.xml" and (for now) put it next to the labview.exe executable (C:\Program Files (x86)\National Instruments\LabVIEW 2017).

Currently my QoS doesn't contain any data - just a reference to the LabVIEWLibrary::DefaultProfile to see if I could get that working.  Now, whenever I load one of my test reader files, I get a pop window (that looks like a console window) that says:

RTIXMLObject_initialize:Base object 'LabVIEWLibrary::DefaultProfile' not found
DDS_XMLQosProfile_initialize:!init XML QosProfile object
DDS_XMLQosProfile_new:!init XML QosProfile object
RTIXMLParser_onStartTag:Parse error at line 7: Error processing tag 'qos_profile'
RTIXMLParser_parseFromFile_ex:Parse error in file 'USER_QOS_PROFILES.xml'
DDS_XMLParser_parse_from_file:Error parsing file
DDS_QosProvider_load_profiles_from_current_dirI:ERROR: loading profiles file 'USER_QOS_PROFILES.xml'
DDS_QosProvider_load_profilesI:ERROR: loading profiles
DDS_DomainParticipantFactory_load_profilesI:!load profiles

 

It appears that for some reason, the LabVIEWLibrary::DefaultProfile is not found.  I was under the impression that the profiles contained in the reference file (RTI_LABVIEW_CONFIG.documentationONLY.xml) should be loaded by LabVIEW and are available for referencing.  Can someone help point me to what I'm doing wrong?

Keywords:
Offline
Last seen: 2 months 9 hours ago
Joined: 04/23/2014
Posts: 57

Hi Jeff,

I have seen the same behavior. Currently, there is no a way of avoiding this issue.

As a workaround, you can copy the LabVIEWLibrary::DefaultProfile from the RTI_LABVIEW_CONFIG.documentationONLY.xml into your XML QoS file, change the name and inherit from it instead of the internal LabVIEWLibrary::DefaultProfile.

I hope this helps,

Angel.

Offline
Last seen: 5 years 10 months ago
Joined: 05/04/2018
Posts: 2

Thanks... I have tried that now and it seems to be working.  Problem I am having now is that LabVIEW does not appear to be updating the "partition" I specify in either publisher_qos or subscriber_qos.  Other settings in the participant_qos update just fine as I can see in both effect and in wireshark.  However, the partition doesn't seem to get updated as observed in both RTI administrator or wireshark.  Any suggestions for this?

Offline
Last seen: 2 months 9 hours ago
Joined: 04/23/2014
Posts: 57

Hi Jeff,

There is a bug which avoids loading Publisher and Subscriber QoS in the toolkit versions 2.0.0 and 2.1.1. As partitions are part of the Publisher/Subscriber QoS, if you are using any of these versions, this issue is causing that behavior. 

This will be fixed in the following GAR.

Angel.

Offline
Last seen: 2 years 6 months ago
Joined: 09/01/2020
Posts: 1

Is there no other way of specifying a custom QoS profile than editing an environment variable or placing the file in the working LabVIEW directory?

Neither of these options will work in the situation where many developers are sharing a common codebase that is located in a repository. 

Ismael Mendez's picture
Offline
Last seen: 2 weeks 3 days ago
Joined: 07/03/2017
Posts: 74

HI daufdi,

Unfortunately those are the only ways. As a workaround you use a script that downloads the file from the repository, set the NDDS_QOS_PROFILES variable pointing to it and then executes LabVIEW.

Regards

Ismael