What is the maximum number of participants per domain?

Applies to RTI Connext 4.x and above

With default settings, the maximum number of domains and participants in the same machine is limited as follows:

  • Versions 4.1e and lower: 100 domains (0 .. 99) and 58 participants (0 .. 57) per domain on the same machine when the domain ID is 0.
  • Version 4.2e and higher: 233 domains (0 .. 232) and 120 participants (0 .. 119) per domain on the same machine. If you set the domain ID to a value higher than 232, you will get the following error:
    "[D0233|ENABLE]NDDS_Transport_UDPv4_Socket_bind:OS bind() failure, error 0 DDSDomainParticipant_impl::createI:ERROR: Failed to auto-enable 
    entityDomainParticipantFactory_impl::create_participant():!create failure creating participant create_participant error"
    

The higher the domain ID, the smaller the number of participants that can be created in that domain (this is true for all versions).

RTI Connext uses standard RTPS port numbers calculated from a formula in the RTPS specification (described in this solution; Chapter 14, section 5 (Ports Used for Discovery), of the Core Libraries and Utilities User's Manual; and in the online documentation for DDS_RtpsWellKnownPorts_t). The formula uses the domain ID, participant ID, and other values from the WireProtocolQosPolicy's well_known_ports field (such as domain_id_gain, user_unicast_port_offset, among others).

  • RTI Data Distribution Service 4.1e and lower: Using this formula, port conflicts occur when the participant ID is 58.
  • RTI Data Distribution Service 4.2e and higher: Using this formula, port conflicts occur when the participant ID is 120.

For example, when using the default formula, these domain and participant IDs cause conflicting port numbers:

  • Domain ID 0, participant ID 120: 7400, 7401, 7650, 7651
  • Domain ID 1, participant ID 0 : 7650, 7651, 7660, 7661

A second example:

  • Domain ID 0, participant ID 125: 7400, 7401, 7660, 7661
  • Domain ID 1, participant ID 1 : 7650, 7651, 7660, 7661

RTI Data Distribution Service 4.3 and higher prevents erroneous configuration settings by verifying that

participant_id < (domain_id_gain / participant_id_gain). 

Contact RTI Support if your system design requires exceeding the listed maximums within one domain in the same machine.

Comments

"233 domains (0 .. 232) and 120 participants (0 .. 119) per domain."

That probably means 120 participants per domain on the same machine, correct?

That's correct, 120 participants per domain on each operating system instance (e.g., if you are using virtual machines).

I have many subsystems operating on one domain.  Each subsystem has one DomainParticipant.  What is the maximum number of subsystems I can support with the default gain settings?  If I know that I will only use 1 domain, are conflicting port numbers even a concern?