2.2.10. Step 10: Working with DomainParticipant Partitions
Admin Console allows you to visualize and understand how DomainParticipant partitions affect a Connext system’s configuration. Admin Console’s graph views show you which DomainParticipants are not communicating with each other due to mismatched Partitions.
2.2.10.1. Configuring the scenario
First, let’s configure a specific scenario using Admin Console and Shapes Demo. Use domain 0 for all Shapes Demo instances.
Start a new instance of Shapes Demo using Launcher. Go to Controls > Configuration, enter
P1in the Partitions text box, then click Update to confirm the changes. In this instance of Shapes Demo, publish a red square with the default configuration.
Start a second instance of Shapes Demo. As in the previous step, enter
P1in the Partitions text box of the Configuration dialog. Subscribe to squares with the default configuration.Start a third instance of Shapes Demo and enter
P2in the Partitions text box. Subscribe to squares with the default configuration.Start a fourth instance of Shapes Demo. In the Partitions text box, enter
P*. Subscribe to squares with the default configuration.Now you have four instances of Shapes Demo: one Publisher and three Subscribers. We expect the Publisher (the first instance) to send data that will be received by the second instance (with DomainParticipant partition
P1) and the fourth instance (with DomainParticipant partitionP*).In Admin Console, make sure Automatically disover and join domains is selected in Preferences, then wait until all the instances of Shapes Demo are discovered.
Information about DomainParticipant partitions is available in multiple panels in Admin Console. The following sections describe each panel where you can review the partitions for a selected Entity.
2.2.10.2. DomainParticipant partitions in Entity Info tab
First, you can see this information in the Entity Info tab when interacting with an element in the graph. We will use Admin Console’s Topic View, but you can use any available view.
In the DDS Logical View, select the Topic Square for Domain 0.
The Topic View opens in the main view. If you click any Entity in the graph, the Entity Info tab updates with information relevant for the selected Entity.
As seen in the above image, the DomainParticipant partitions are indicated in the
Entity Info tab. The selected Shapes Demo process only has the
partition P1. Each item available in the graph, except domains and
Topics, will indicate the DomainParticipant partitions to which it is
connected when selected.
For example, if we select the host containing all our Shapes Demo
processes, the Entity Info panel shows all the DomainParticipant partitions contained by
the Host; {empty}, P1, P2, and P*.
As shown in the above image, the Entity Info tab for the selected Host displays a Health Status warning message, Reader-only Topic. This is because the third Shapes Demo instance we started is subscribed to the Square Topic in the DomainParticipant partition P2; there is no Publisher in that DomainParticipant partition, causing the indicated Health Status warning.
Note
Information in the Entity Info tab is updated when Admin Console detects changes in the selected Entity. If the DomainParticipant partition of the selected Entity changes, the Entity Info tab updates to display the detected changes.
2.2.10.3. DomainParticipant partitions in DDS QoS View
The second place where DomainParticipant partitions information is available is the DDS QoS View.
This view includes information about the selected Entity. If we select a DataWriter, DataReader, Publisher, Subscriber, or DomainParticipant, the DDS QoS View displays information about the selected Entity.
In the information about the DomainParticipant QoS, we can see the partition property, which includes the DomainParticipant partitions to which the selected entity is connected.
2.2.10.4. DomainParticipant partitions in Match Analyses View
The next area that provides information about DomainParticipant partitions is the Match Analyses View, where match analysis is performed when an Entity is selected.
To visualize the match analysis, we will select the only DataWriter in our graph, the Publisher for squares created in the first Shapes Demo process we created.
When we select this DataWriter, the style of the nodes in the graph changes
according to the specific match analysis with the selected Entity.
In the following image, notice that upon selecting the Publisher, the node for
one of the Shapes Demo processes has a different style. This is the
Shapes Demo instance that was configured with the P2 DomainParticipant partition.
This process is not sharing any DomainParticipant partitions with our selected process.
This style indicates Entities that the selected Entity cannot communicate with; in this case, the selected Publisher does not share DomainParticipant partitions with the Subscriber that displays in this style.
Note
It is important to note that just because an Entity appears in this specific style does not indicate that there may be an error in the design of the the DDS system. It only indicates that, with the current configuration, the selected Entity will not communicate with the highlighted entity that has this style.
Admin Console’s Match Analysis feature updates all views to reflect any changes detected in the system. So if any DomainParticipant partitions are changed, the Topic, DDS QoS, and Match Analyses views update accordingly.
The Match Analyses View only displays Entities that are relevant to the match analysis.
For example, if we select the DataWriter in the Topic View, one of the three running
DataReaders does not appear in the Match Analyses View. The missing DataReader isn’t
relevant because its DomainParticipant partition, P2, doesn’t match the DataWriter’s DomainParticipant
partition, P1.
If you were to change the missing DataReader’s DomainParticipant partition to
P1 or P*, it would show up in the Match Analyses View.
2.2.10.5. Filtering data using DomainParticipant partitions
Admin Console allows you to filter the data shown in the different graphs according to the DomainParticipant partitions. To do this, select the Filter graph info tab. Use the filter to choose the DomainParticipant partitions you want to see in the graph.
For example, if P2 is not selected in the filter, the process
associated with that DomainParticipant does not appear in the graph,
as you can see here:
2.2.10.6. Joining domains with a specific DomainParticipant partition
You can specify DomainParticipant partitions to use when joining to a specific domain. This option allows you to reduce traffic and focus only on specific DomainParticipant partitions.
To join a domain using a specific DomainParticipant partition, go to View > Preferences and select the Administration tab. Select Manually join and leave domains, select domain 0, then click Edit DomainParticipant(s).
In the Edit DomainParticipant settings dialog, you can see the DomainParticipant partitions used for the DomainParticipant that is created by Admin Console to join domain 0.
By default, the partitions {empty} and * are used to match everything.
Select each DomainParticipant partition to which Admin Console is connected
({empty} and *) and remove them by clicking the red X button.
Then use the green + plus button to add the DomainParticipant partition P2.
This change will cause Admin Console to update its DomainParticipant partitions without leaving the domain, since they are mutable. The QoS value will be updated with the new DomainParticipant partitions in all views.
Finally, apply the changes in the Edit DomainParticipant settings dialog.
Admin Console changes the partitions used by its own DomainParticipant
and it will no longer see DomainParticipants with partition P1.
Finally, to ensure that we can continue with the remaining steps in this
tutorial, undo this change in the Preferences dialog and add
{empty} and * to the DomainParticipant partitions, using these steps:
Go to View > Preferences > Administration, select Admin Console’s DomainParticipant
0 AdminConsoleDomain::defaultand click the “Edit DomainParticipant(s)” button.Remove
P2.Add a new DomainParticipant partition without filling in a name (press the green + button, then OK). Note that the
{empty}partition is added.Add a second DomainParticipant partition named
*and click Apply.
2.2.10.7. Subscriptions with DomainParticipant partitions
Finally, let’s Subscribe to a Topic using a DomainParticipant partition. The Subscription feature enables you to visualize data from a selected Topic. Here, we’ll use it to view data from the red square Topic.
First we will create a Publisher of blue squares in the
Shapes Demo instance that has DomainParticipant partition P2.
(This is the third instance of Shapes Demo, created at the start of this
tutorial.)
Note
So far, the Shapes Demo instance using P2 has not received any data,
since it does not match with our only Publisher, which uses P1.
After creating this new Publisher, Admin Console’s Topic View for the Square Topic will look something like this:
At this point, we have a Publisher for red squares using the DomainParticipant
partition P1, and a Publisher for blue squares using the DomainParticipant
partition P2.
Now we will create a Subscriber for squares using the DomainParticipant
partition P1. This will cause Admin Console to receive only samples for red squares.
To do this, right-click the Square Topic in the DDS
Logical View and select “Subscribe…” to open the Create Subscription
dialog.
Expand the Advanced Settings to see all the options. Click the edit button (pencil icon) to the right of the DomainParticipant Partitions field.
In the Edit Partitions dialog, remove the {empty} and * partitions,
add P1, then click OK. If prompted to switch to the Data visualization
Perspective, select No.
Admin Console is now subscribed to the square Topic, but
only receiving data for the red square Topic in the P1 partition.
To visualize this data, select the Topic Data tab in the Topic View.
Now we will change the current subscription so its associated
DomainParticipant uses partition P2 instead of P1. Then Admin Console will
stop receiving red squares and start receiving blue squares. Here
are the steps to make this change:
At the top right in the Topic View, select the Subscription Properties icon.
In the Subscription Properties dialog, note that only the
P1partition is listed in the DomainParticipant Partitions field. Click the edit button (pencil icon) on the right, removeP1, addP2, then click OK to confirm the changes.
As result of this change, the Topic View displays a new entry for receiving blue squares, and no new red squares are received.
Note
The Shapes Demo instances used in this step are not needed to complete this tutorial. Before continuing to Step 11, close all running instances of Shapes Demo.