What does the "can't reach: locator" error message mean?

Note: Applies to RTI Connext 4.x.

In general, a can't reach:locator: error message means that a DataWriter cannot send to the locator of a DataReader, usually due to a transport configuration error.

For example, suppose Participant A has both the UDPv4 and shared-memory built-in transports enabled, while Participant B only has shared-memory enabled. When B discovers A, it will try to reach A over A’s advertised UDPv4 and shared-memory locators. However B will fail to send to A's UDPv4 locators because B does not have its own UDPv4 transport plugin enabled. Consequently, B will log an exception.

To resolve this problem, either disable UDPv4 on A or enable UDPv4 on B.

Another common example is related to the discovery of Participants with multicast locators. Suppose Participant A has multicast enabled, but Participant B does not. By default, A will advertise the default multicast address 239.255.0.1 as a multicast locator to B. When B receives this advertisement, B will try to send meta-traffic back to 239.255.0.1, but it will fail with the following error message:

can't reach:
locator:
transport: 1
address: 0000:0000:0000:0000:0000:0000:EFFF:0001
port: 7400 
transport_priority: 0
aliasList: "" 

Notice that EFFF:0001 translates to 239.255.0.1. 

To resolve this problem, you can either:

Note: Applies to RTI Connext 5.2.0 or later

You may be running into a compatibility issue between RTI Connext 5.2.0 or later and a previous version. Please see this solution.

Keywords:

Comments

I got the same error message. I use the tracking vehicles example code. I run on local machine. When I launch the RTI Connext DDS with Administration Console. I got that message. What should I do now ?