What does it mean when RTI Monitor shows only DomainParticipants and a "Topics" category with no actual Topics listed under it?

When RTI Monitor is not getting updates from RTI Monitoring Library, the left-hand Physical View looks similar to the following, showing one or more DomainParticipants and a Topics category, but no DataReaders, DataWriters, or Topics listed under the Topics category:

 

 

 

 

 

 

This indicates that RTI Monitor is not correctly communicating with RTI Monitoring Library. There are several reasons why communication with RTI Monitoring Library might fail. The major reasons why this might not work are:

1. The library is not actually enabled for your application

To solve this: To enable the library, follow the instructions in the RTI Monitoring Library Getting Started Guide. If your application is dynamically linked to RTI's libraries, you can quickly add the library in your XML QoS file in the DomainParticipant's properties:

    <property>
        <value>
            <element>
                    <name>rti.monitor.library</name>
                <value>rtimonitoring</value>
            </element>
            <element>
                <name>rti.monitor.create_function</name>
                <value>RTIDefaultMonitor_create</value>
            </element>
        </value>
    </property>
</participant_qos>

2. A firewall is blocking some DDS traffic

Since RTI Monitor is a Java-based tool, a firewall may ask you if you want to allow your application to send and receive data, but may block java.exe from sending and receiving traffic. This commonly results in either no data at all in RTI Monitor, or partial data as described above.

To solve this: Try turning off your firewall and see if RTI Monitor shows all information.

3.  Your properties are too long or you have too many properties.

If your application's DomainParticipant, DataWriter, or DataReader:

  • has more than 32 properties in its Properties QoS policy,
  • has properties longer than 127 characters, or
  • has one or more properties with a value longer than 511 characters,

This will prevent RTI Monitoring Library from sending updates about your entity.

To determine if this is the problem:

Do your DomainParticipants, DataWriters, or DataReaders have non-default properties with more than 127 characters, or a value longer than 511 characters? Do any of your Entities have more than 32 properties?

In addition, if you have logging enabled, you will see the following errors in your application:

[D0000|ENABLE]PRESWriterHistoryDriver_initializeSample:!serialize 
[D0000|ENABLE]WriterHistoryMemoryPlugin_addEntryToSessions:!initialize sample 
[D0000|ENABLE]WriterHistoryMemoryPlugin_getEntry:!add virtual sample to sessions 
[D0000|ENABLE]WriterHistoryMemoryPlugin_addSample:!get entry 
[D0000|ENABLE]PRESWriterHistoryDriver_addWrite:!add_sample 
[D0000|ENABLE]PRESPsWriter_write:!collator addWrite 
[D0000|ENABLE]RTIDefaultMonitorParticipantObject_sampleAndPublishParticipantDesc:!write 
[D0000|ENABLE]RTIDefaultMonitorPublisher_onEventNotify:!publish participant desc 

To solve this:

In the XML configuration you are using for your monitoring library, set skip_participant_properties, skip_reader_properties, or skip_writer_properties to true.

<participant_qos>
    <property>
        <value>
            ...
            <element>
                <name>rti.monitor.config.skip_participant_properties</name>
                <value>true</value>
            </element>
            <element>
                <name>rti.monitor.config.skip_writer_properties</name>
                <value>true</value>
            </element>
            <element>
                <name>rti.monitor.config.skip_reader_properties</name>
                <value>true</value>
            </element>
        </value>
    </property>
</participant_qos>
Product:

Comments

This can also occur if the LBED Plug-in or Connext Micro with DPSE is used.  The LBED Plug-in restricts discovery traffic to DomainParticipant announcements only.  DataReaders and DataWriters do not individually discover each other and no typecode or QoS information is sent on-the-wire.