Sending lage data periodically with sequence and string

6 posts / 0 new
Last post
Offline
Last seen: 2 weeks 2 days ago
Joined: 09/10/2022
Posts: 30
Sending lage data periodically with sequence and string

Hi, i am using connext v. 6.0.0

I have large data with struct that you can see in sample that attached to this message.

I dont want to change sequences and strings to arrays.

I want to send samples periodically there for I dont want to change its qos to reliable.

It works correctly sometimes, as you can see in admin console if qos settings was compatible with your OS. But regularly it doesnt work currectly.

What is the best way to sending data with that limitations?

AttachmentSize
Package icon sender.zip2.7 KB
Keywords:
Howard's picture
Offline
Last seen: 2 days 4 hours ago
Joined: 11/29/2012
Posts: 608

I'm not sure what you mean by "works correctly sometimes" versus "doesn't work currently".  What do you mean by "doesn't work"? 

DDS must break up data packets > 64 KB into fragments and then reassemble the fragments into the original data sample.  If a fragment is lost, then without using RELIABLE qos settings, the entire sample will be lost.  If that's what you mean by "doesn't work", then there is no solution unless you use RELIABLE QoS settings that will force DDS to repair the lost fragment.

Offline
Last seen: 2 weeks 2 days ago
Joined: 09/10/2022
Posts: 30
Yes, that's what I meant. I thought may there was a solution for the problem without using reliability that cause delay in receiving data, therefore I asked the question. Thank you for your response.
Howard's picture
Offline
Last seen: 2 days 4 hours ago
Joined: 11/29/2012
Posts: 608

Sorry, there is no "magic".  If the network loses fragments of a larger data packet, the entire data packet is lost unless the middleware is allowed to use a reliable protocol to repair the lost fragments.

Offline
Last seen: 2 months 5 days ago
Joined: 09/06/2024
Posts: 3

Hi,

I think you should try to send large data periodically without changing sequences or strings to arrays and without using reliable QoS you may want to adjust the best effort  QoS settings. Try lowering the send and receive buffer sizes to handle larger data more efficiently, and consider increasing the history depth to ensure your data is available for a longer period before being overwritten. Additionally, check your network configuration and the compatibility of your DDS (Data Distribution Service) settings with the operating system to ensure smooth data flow.

Thanks

Howard's picture
Offline
Last seen: 2 days 4 hours ago
Joined: 11/29/2012
Posts: 608

Wow, the above sounds like it was AI generated. 

It sounds like it's giving good advice, but the actual advice that it gives is entirely wrong.  When sending large data that needs to be set in fragments, you absolutely need to use RELIABLE QoS and adjust the reliability protocol settings to accommodate your situation.  There are really no settings for BEST EFFORT that change how DDS sends data...other than setting Reliability to BEST_EFFORT.

"lowering the send and receive buffer sizes to handle large data more efficiently"...what a load of crap.  That's totally the opposite of what you need to do.

Please ignore the post above...and search community.rti.com for "large data" and you'll get a bunch of posts as well as examples of how to do that properly with Connext DDS.