2.2.7. Step 7: Distributed Debugging with the Topic View
Admin Console provides insight and details about your distributed system that can be used for debugging. In this step, you will see how to use this view to debug your system.
The Topic View provides three distinct sets of information related to a single DDS Topic in the distributed system. To best understand this information, let’s first create a new instance of Shapes Demo. Follow the same directions as in Step 1; this time choose the Shape data type (instead of the default Shape Extended type) and use domain 1.
Publish an orange square with exclusive ownership.
In the Admin Console DDS Logical View, select the Square Topic under Domain 1. In the main view, the Square Topic View displays; at the bottom of the Topic View, select the Endpoints Table tab.
All of the DataWriters and DataReaders associated with this Topic can now be seen in the Endpoints Table. This table shows the host and process to which the endpoint belongs. These two facts alone are often very helpful in understanding what is running where. When you select rows from this table, you get detailed information about the data type, QoS, and match status of the endpoint; use the panels at the right and bottom in the Topic View to review this information.
Select the DataWriter associated with the Shapes Demo instance created in Step 1
(use the icon
in the Endpoint column and the process name from
the Process column to locate it).
In the bottom panel of the Topic View, select the DDS Data Type tab. Here you can see details about the datatype associated with this DataWriter in the DDS Data Type View.
Select the DataReader (look for the
icon) associated with the Shapes Demo
instance created in this step of the tutorial. Notice that the DDS Data
Type view changes and now displays this content:
Select the Datatypes tab at the bottom of the main view. This tab displays a hierarchical view of the data types and endpoints associated with the selected Topic.
The Datatypes tab shows that the system has multiple type-definitions for the same Topic. This is often a critical piece of information, so much so that another tab in this editor is dedicated to making this information easy to find.
The Datatypes tab shows which endpoint is associated with each of the two datatypes currently being used in the system for this Topic. It also shows the serialized TypeCode and sample size for each of the two datatypes. This information is important when tuning DDS QoS.
Select the DataWriter listed under the ShapeType datatype; note that the DDS QoS View on the right populates, displaying QoS settings for the selected datatype.
Want to find out more information about a particular QoS? Click a hyperlinked setting in the QoS Name column to review documentation for that QoS (active internet connection required).
The ownership QoS setting can be found in the DDS QoS View. The DataWriter created in this step of the tutorial was created using exclusive ownership. That setting, however, is in conflict with the previously created DataReader. How can this be debugged? Select the Match Graph tab at the bottom of the main view:
This tab shows that the newly created DataWriter with exclusive ownership is not matched to any DataReader associated with this Topic. This tab can also be used to drive the content in other panels by selecting endpoints. But why does the Shapes Demo DataReader show that it is partially matched? Because the QoS of one DataWriter is a mismatch.
Select the red DataWriter icon
in the graphic, then turn your
attention to the Match Analyses tab in the bottom panel.
The Match Analyses View provides a comprehensive overview of each match analysis criterion as it pertains to each potential match for an Entity in the system. Each endpoint criterion is visible by default, whether it is a match or not.
Want more information about how a match is determined for a particular row? Click on a hyperlinked entry in the Name column to review the related documentation (active internet connection required).
In this case, the mismatch is obvious and easy to locate. But how can we narrow down the criteria list to focus on the mismatch(es) only?
Press the Show/Hide Matches toggle button
. In this
case, the Ownership.kind Qos is mismatched.
Relevant reference topics: