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.

Shapes configuration dialog

Publish an orange square with exclusive ownership.

Shapes square publisher

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.

Endpoints

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 ICON_DW 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.

Shape type

Select the DataReader (look for the ICON_DR 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:

Shape type extended

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.

Data types

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).

DDS QoS View image

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:

Debugging with Match graph

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 ENDPOINT_MISMATCH 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).

Match graph analysis matches

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 ICON_MATCH_CRITERION. In this case, the Ownership.kind Qos is mismatched.

Match graph analysis mismatches only

Relevant reference topics: