Why do I get the message “DDS COMMENDSrWriterService_onSubmessage:!ACK ignored: number of active RR is > 1, but sum of RR at is 0”

The following message is an internal debugging message that is printed at REMOTE verbosity level:

COMMENDSrWriterService_onSubmessage:!ACK ignored: number of active RR is > 1, but sum of RR at is 0 

 

Seeing this message is expected during normal operation and it does not indicate that something is wrong with the reliability protocol. An explanation of the events that trigger this message follows:

A DataWriter keeps track of the lowest SN (sequence number) on its queue below which all sequence numbers have been acknowledged by all the existing matching DataReaders. Let’s call this sequence number lowestUnackedSnByAll. There are a few scenarios in which a NACK message maybe ignored if it is for a sequence number smaller than lowestUnackedSnByAll. For example, if a new VOLATILE DataReader joins the system and NACKs a sequence number below lowestUnackedSnByAll, the NACK will be ignored because TRANSIENT_LOCAL DataWriters do not send historical data to VOLATILE DataReaders.

The above explanation requires some understanding of the DDS Reliability protocol. Please refer to the section in the RTI Connext Core Libraries User Manual on Reliable Communication for a complete description of the Reliability protocol.

For more information, please email support@rti.com.