Best Practice and Possible Errors

OpenSplice Visual Studio Pre-Processer

OpenSplice for Windows is built with this specific Pre-Processor Definition which must also be used for the application during the OpenSplice build process _WIN32_WINNT=0x0502 OpenSplice may have memory corruption if the application is compiled with a different _WIN32_WINNT value than OpenSplice. If the definition is set after everything from OpenSplice is included then a newer value […]

Creating and deleting a writer quickly causes sample loss

If you are creating and deleting a writer quickly it may cause sample loss. This explanation shows why creating and deleting a writer in short period of time may cause a loss of samples.   What happens when an application creates an entity When an application creates an entity, e.g. a DataWriter, it publishes samples […]

Communication stops after 10 seconds

Description of the issue When running any combination of Vortex DDS products using DDSI protocol on UDP multicast, communication sets up as expected at applications startup, but stops 10 seconds after startup. In Vortex Café logs, the following message appears at INFO level : Duration lease expired for remote Participant XXXXXXXX.XXXXXXXX.XXXXXXXX – remove it   […]

Memory Claim Denied Error

Memory claim denied errors may appear in the Vortex OpenSplice log file. This is a symptom of running out of shared memory. These are the steps to follow to troubleshoot this problem. Memory Claim Denied Error in ospl.error log Vortex OpenSplice DDS can runs in two modes, federated or shared memory mode and single process […]

Error: was missing in Ubuntu 14.

error while loading shared libraries: cannot open shared object file: No such file or directory This error occurs when enabling DDS2ie as a transport for it’s encryption. This is a common problem with the default SSL libraries in Ubuntu and is unrelated to OpenSplice.  Luckily, it is an easy patch to make. First, SSL […]

Handling ‘invalid data’

A feature was introduced in the OMG DDS rev1.2  specification revision which is about the assurance to receive state-changes (e.g. when data gets disposed and/or unregistered) even in absence of actual data updates. It is related to the read/take semantics where a ‘take’ basically removes the data from a reader-cache. In the previous spec-revision,  in […]

Receiving warning level due to number of samples

If you receive the following warning message in the ospl-info.log file: Description : The number of samples ‘5000’ has surpassed the warning level of ‘5000’ samples. its just a warning.  Many times people don’t cleanup ‘their mess’ resulting in ever growing caches .. so we’d thought to give people a ‘hint’ that there might be […]

Large amount of data transmission problem

Problem I’m using Vortex OpenSplice to transmit huge packages (about 150Kb per package), and the receiver never receives them.  Debugging, it turns out that packages don’t seem to be sent out by the system. Solution Many times, people find the difference between ‘history’ and ‘reliability’ somewhat confusing so maybe that’s the case here too. When […]

Out of memory: unable to create message for Topic

I am trying to run OpenSplice DDS with the shared memory configuration and am creating a large topic. When I do this I am getting an error “Out of memory: unable to create message for Topic”. What could be causing this? Out of memory: unable to create message for Topic You are trying to create […]

How can I get a notification when my DataReader receives a ‘dispose’ sample?

Scenario I am trying to read samples (new, updated or disposed) using the interface on_data_available. The publisher is writing dispose and after that unregistering the instance. The subscriber is reading new or updated samples of an instance by read-method. How can I get a notification when my DataReader receives a ‘dispose’ sample? Solution When a […]

How does shared memory usage increase with subscribers/publishers?

When a new subscriber or publisher application process is added to the node there is inevitably going to be an increase in shared memory usage as each DDS entity that is created must be added to the shared DDS administration. Therefore increasing the amount of subscribers or publishers will increase memory usage. When using shared […]