Using your own QoS profile in RTI Admin Console 6.0.1 and previous versions

Background: 

RTI Admin Console uses several non-default QoS settings when interacting with Topics that are used to communicate with other RTI products. The out-of-the-box settings attempt to satisfy the majority of use cases customers have with other configurations, but sometimes it is necessary to change these QoS settings. Common cases for adding a custom QoS profile include disabling multicast support or using a non-default transport such as TCP.

Admin Console also makes use of some less-frequently-used QoS settings (such as ignore_default_domain_announcements) in order to implement certain features.

As a result, simply replacing the QoS settings that ship with Admin Console can lead to unexpected behavior such as auto-join or remote administration not working. This article walks you through using your own QoS settings while preserving the functionality of Admin Console.

Let's start by reviewing the different use cases of custom QoS profiles. There are two possible ways we can use a custom QoS profile in Admin Console:

  • Administration Profile: this profile is used to join domains, perform discovery, and administer RTI products (such as RTI Routing Service).

  • Data Visualization Profile: this profile is used to subscribe to user Topics and display data.

In order to correctly use your custom QoS profile in Admin Console, we may need to modify it a bit depending on the goal. 

The first step is to open the admin_console_example_profiles.xml file that is located in the installation directory ($NDDSHOME/resource/xml/).

This file contains four profiles with all the configuration settings needed by Admin Console. From this file, copy the ExampleAdminConsole::ExampleAdministration profile to your custom XML file. Be sure to put the profile ahead of other profiles in your file since we’ll be referencing it. Copy only the profile itself and not the ExampleAdminConsole library. Even though the admin_console_example_profiles.xml file is not used by Admin Console itself, it is not recommended to modify it since there is no other way of recovering it apart from reinstalling Connext DDS.

<qos_library name="MyLibrary">
        <!-- Insert ExampleAdministration above your profile -->
        <qos_profile name="ExampleAdministration">
             ...
        </qos_profile>   

        <qos_profile name="MyProfile">
             ...   
        </qos_profile>
</qos_library> 

Next, make your custom profile inherit from the ExampleAdministration profile. There are two possible scenarios depending on your profile:

Your profile does NOT inherit from any other profile:

In this case you would only add the base_name="MyLibrary::ExampleAdministration" to your profile.

<qos_library name="MyLibrary">
        <qos_profile name="ExampleAdministration">
             ...
        </qos_profile>   

        <qos_profile name="MyProfile"
                base_name="MyLibrary::ExampleAdministration"> 
             ...   
        </qos_profile>
</qos_library> 

This is how your profiles should look like: 

Your profile DOES inherit from another profile:

  1. Add base_name="<base_profile>" to the ExampleAdministration profile.
    <qos_library name="MyLibrary">
            <qos_profile name="ExampleAdministration"
                    base_name="<base_profile>"> 
                 ...
            </qos_profile>   
    
            <qos_profile name="MyProfile"
                    base_name="<base_profile>">
                 ...   
            </qos_profile>
    </qos_library> 
    
     
  2. Change the base_name="MyLibrary::ExampleAdministration" of your profile.
    <qos_library name="MyLibrary">
            <qos_profile name="ExampleAdministration"
                    base_name="<base_profile>">
                 ...
            </qos_profile>   
    
            <qos_profile name="MyProfile"
                    base_name="MyLibrary::ExampleAdministration">
                 ...   
            </qos_profile>
    </qos_library> 
 

This is how your profiles should look like:

Adding the custom profile to Admin Console

Open the Admin Console preferences to add your custom QoS file. If you want to use this profile for already-joined domains, click on the “Apply to currently joined domains” button. This profile will be used for administrative purposes, such as discovering participants to show them in a graph. If you want to use your profile to subscribe to a DataReader, add it to the Data Visualization profile as explained below.

Admin Console will now be able to discover other applications/DomainParticipants using your provided QoS profile.

Using your custom profile for Data Visualization

To provide a profile to be used for Data Visualization, change your profile similarly to how you did for Administration above. From admin_console_example_profiles.xml, copy the ExampleAdministration and ExampleDataVisualization profiles to your custom file. This time, change the base name library to match your file’s library:

<qos_profile name="ExampleDataVisualization">
  <participant_qos base_name="MyLibrary::ExampleAdministration"> 
    ...
  </participant_qos>
    ...  
</qos_profile>

The rest of the steps for modifying your profile are the same as for the Administration profile, depending on whether your profile inherits from another profile. This time, instead of your custom profile (MyProfile) inheriting from "MyLibrary::ExampleAdministration", it should inherit from "MyLibrary::ExampleDataVisualization".  Add your custom profile to the Admin Console preferences the same way as explained above.

Once all the changes have been made, subscribe to a Topic and click “Advanced Settings”.

In the Create Subscription window that appears, select your custom QoS profile to be used for the subscription. 

Now Admin Console will subscribe to the Topic with your provided QoS profile.