This article contains some user submitted OpenSplice general communication questions that may prove useful to others.
See the OpenSplice documentation for more information.
Does OpenSplice have the ability to support many to one reliable communication?
Yes, OpenSplice supports the RELIABLE OMG-DDS QoS policy that implies reliable communication between a publisher and related subscriber(s). This includes many-to-one reliable communication in such a case that there are multiple publishers (Data Writers) of a subscribed topic.
When using single process and networking OpenSplice cannot reach more than one specified unique unicast IP Address.
Example configuration:
You cannot reach more than one server on a unique unicast IP-port combination. That’s generically true for all UDP/TCP based services and not a limitation of our product. Changing the address to broad/multicast in the above scenario should allow the example to work the same for both deployments.
How can I ensure DDS messages are only sent to one specific node.
The easiest way to achieve this is to use Network Partitions. These partitions work as logical namespaces on the DDS allowing mapping of partition-topic combinations to a group of unicast/multicast addresses at deployment time. More information is available in the OpenSplice Deployment Guide – see the OpenSplice documentation.
When I hit a debug breakpoint in my application, the application loses the ability to communicate with OpenSplice.
Typically accompanied by all services shutting down and the Splice Daemon dying which will be visible in the ospl-error.log, this indicates OpenSplice was not able to renew its lease on time. Once that happens, applications will no longer be able to create any entities. When the application is run in single-process mode, the algorithm that updates the lease of the OpenSplice Daemon is a thread within your application. In shared memory mode that thread runs as part of the OpenSplice process and is not bound to the life-cycle of your application.
You can configure the expiry-time of the lease under //OpenSplice/Domain/Lease/ExpiryTime. By default, it is set to 20.0 seconds, but you can increase that to a couple of minutes (or even hours) for debugging purposes. Please refer to the OpenSplice Deployment guide for more information – see the OpenSplice documentation.