Combining multiple participants

If a single process creates multiple participants, these are mirrored in DDSI participants, where a single process can resemble an extensive system with many participants. To simulate the existence of only one participant, which owns all endpoints on that node, set: Internal/SquashParticipants to true. This reduces the background messages because far fewer liveliness assertions need to be sent. However, there are some downsides:

  • This option makes it impossible for the tooling to show the system topology.

  • If multiple DCPS domain participants are combined into a single DDSI domain participant, the liveliness monitoring features related to domain participants are affected . For the “automatic” liveliness setting, this is not an issue (see dds_liveliness_kind).

  • The QoS of the sole participant is the first participant created in the process. That is, no matter what other participants specify as their “user data”, it is not visible on remote nodes.

Another option is to set Internal/BuiltinEndpointSet to minimal. Only the first participant has these Writers and publishes data on all entities.

Note

This is not fully compatible with other implementations as it means endpoint discovery data can be received for a participant that has not yet been discovered.