ADLINK-IST/opensplice

Participant number limitation

Closed this issue · 4 comments

Opensplice community 6.9.181127OSS, Python interface, Win10 x64.
The pub_multi.py creates several publisher subprocesses to simulate a multiple publisher scenario. If there are more than 9 subprocesses, sub.py will not receive all publishers‘ data. And there will be some log "rtps_init: failed to find a free participant index for domain 0" in ospl-error.log.
Is that means the participant must be no more than 10 (9 publisher and 1 subscriber) in a domain? Is there any way to increase the limitation?

Hello,
In your publisher application you are not just creating 9 publishers but at the same time 9 domain participants which leads to creating equal number of DDSI instances while in Single Process. The default max number of DDSI instances per single node is 9 and this is clearly being exceeded as you totally have (9 + 1) DDSI instances running at same time. Firstly, I would change the pub application to use single domain participant and several publishers in subprocesses and this should resolve the issue.

Secondly, if you would at some point-of-time planning to run several single process applications on a single node then you could change the default limitation of 9 DDSI instances to an higher value in your configuration (More in link below). But, in this case, it is better to explore shared memory architecture (available in commercial version only) as there would only be 1 DDSI instance per federation and multiple applications can co-locate, this would benefit in reduced discovery overhead and better performance in many technical grounds (More in link below).

http://download.prismtech.com/docs/Vortex/html/ospl/DeploymentGuide/guide.html#id438 (Maximum DDSI participant index)

http://download.prismtech.com/docs/Vortex/html/ospl/DeploymentGuide/overview.html#shared-memory-architecture (Shared Memory Architecture)

Best Regards
Phani

Thank you!
The purpose of the pub_multi is to simulate a multiple publisher scenario. The real application environment is a multiple machine system and publishers will be running on different machines. Considering each individual publisher code needs to do DomainParticipant, I want to confirm if there is same participant index limitation in multiple machine environment. Or how can I make publishers in different machines belong to same one participant?

There is no such limitation in a distributed environment.

Cheers
Phani

Thank you!