Hello, I am trying to create 20 topics on the same domain. I create a DataWriter and a DataReader for each topic. But when I create everything, I find that 15 out of 20 of the DataReaders do not receieve any messages from the DataWriters on the topic, even though the DataReaders have matched DataWriters on the domain.
Does anyone know what might be going on?
If you're creating 20 domain participants I would try increasing the participant ID limit in your initial peers. By default Connext discovers 5 domain participants per host (not counting multicast), but this can easily be increased.
Here are some relevant resources:
https://community.rti.com/kb/why-cant-more-5-domainparticipants-communicate-within-same-machine
Section 9.5.2.2: https://community.rti.com/static/documentation/connext-dds/6.1.0/doc/manuals/connext_dds_professional/users_manual/index.htm#users_manual/DISCOVERY_Qos.htm#9.5.2.2_Setting_the_%E2%80%98Initial_Peers%E2%80%99_List%3FTocPath%3DPart%25202%253A%2520Core%2520Concepts%7C9.%2520Working%2520with%2520DDS%2520Domains%7C9.5%2520DomainParticipant%2520QosPolicies%7C9.5.2%2520DISCOVERY%2520QosPolicy%2520(DDS%2520Extension)%7C_____2
Section 15.2.1: https://community.rti.com/static/documentation/connext-dds/6.1.0/doc/manuals/connext_dds_professional/users_manual/index.htm#users_manual/Peer_Descriptor_Format.htm
And if you don't want to set your initial peers via XML, you can also control it programmatically, via an environmental variable, or flat file, see section 15.2: https://community.rti.com/static/documentation/connext-dds/6.1.0/doc/manuals/connext_dds_professional/users_manual/index.htm#users_manual/ConfigPeersListUsed_inDiscov.htm
Here is the XML I would recommend testing on each of your domain participants:
<participant_qos>
<discovery>
<initial_peers>
<element>19@builtin.udpv4://127.0.0.1</element>
<element>19@builtin.shmem://</element>
</initial_peers>
</discovery>
</participant_qos>