Currenty i managed to get the old code which uses Openslice DDS working on RTI Connext. But when i run it i notice that there is some sort of jiter conffigured.
After that i was searching for an configuration file of DDS itself. To be more exact the DDSI service, DURABILITY service. It seems that there are no seperate services running aside from my application that manages dds and everything surounding it. Opensplice has multiple services running to manage dds and those can be configred through an seperate configuration xml file.
Is there something similair for RTI?
Thanks in advance,
Nick
PS. when i run my application it produces with RTI an consecutive stream of 12Mb/s followed bij 4 or 5 0 Mb/s. while with opensplice it returns a steady 4.5 to 5 Mb/s.
Hi Nick,
You can configure your DDS applications by creating a USER_QOS_PROFILES.xml file (Configuring QoS with XML)
And we do have some useful services that provide advanced features such as Routing Service, Database Integration Service, Recording Service or Persistence Service among others.
In the case you are describing, you are interested in using the Durability QoS, so you have to configure this QoS for each involved DDS application that runs on your system. If you want to configure Durability as TRANSIENT or PERSISTENT, you also have to use Persistence Service. Persistence Service is the tool that stores the historical data in its volatile memory (TRANSIENT) or on the disk (PERSISTENT):
- Mechanisms for Achieving Information Durability and Persistence
- Introduction to Persistence Service
An XML file can be used to configure Persistence Service in the same way we do when configuring DDS applications (Configuring Persistence Service).
Regarding the stream of 12Mb/s, this could happen due to the discovery process that occurs when the system starts (Discovery)
Let me know if that helps,
Irene
Hi Irene,
I find the documentation very difficult to understand. Everything around the c++ api is fine, but when i try to adjust QoS settings and DDS configurations through these QoS settings it becomes very difficult to find anything.
i can't find any clear view of what can be changed through the user-specified QoS.xml file. aside from that sometimes settings can only be changed through something like:
Isn't there something more clear?
preferable something similare like opensplice does it. (http://download.prismtech.com/docs/Vortex/html/ospl/ConfGuide/guide.html#)
Hi Nick,
You can find in the documentation the QoS policies that apply to each DDS entity.
For example, if you want to know the QoS policies applied to the DataWriters, you can take a look at this section:
https://community.rti.com/static/documentation/connext-dds/6.0.0/doc/manuals/connext_dds/html_files/RTI_ConnextDDS_CoreLibraries_UsersManual/index.htm#UsersManual/DataWriter_QosPolicies.htm#sending_2410472787_613308%3FTocPath%3DPart%25202%253A%2520Core%2520Concepts%7C6.%2520Sending%2520Data%7C6.5%2520DataWriter%2520QosPolicies%7C_____0
You can also check this table to see all the sections that contain information regarding the QoS policies that can be applied per entity:
https://community.rti.com/static/documentation/connext-dds/6.0.0/doc/manuals/connext_dds/html_files/RTI_ConnextDDS_CoreLibraries_UsersManual/index.htm#UsersManual/Using_QoS_Profiles_in_Your__Application.htm#xmlconfiguration_1275484337_390626%3FTocPath%3DPart%25203%253A%2520Advanced%2520Concepts%7C18.%2520Configuring%2520QoS%2520with%2520XML%7C18.10%2520Using%2520QoS%2520Profiles%2520in%2520Your%2520Connext%2520DDS%2520Application%7C_____0
Please, take into account that Connext implements a lot of vendor-specific QoS policies (DDS Extensions) to support complex scenarios so you may find some of them that are not compatible with Opensplice. To ensure compatibility, only the QoS policies described in the specification should be used on both sides.
Do these links help you to find the documentation that you need?
Hi Nick,
Coming back to your original question, where are the services that you found in OpenSplice? Since the DDS standard do not mandate daemons, RTI decided to go for a fully peer-to-peer communication with no broker/deamon that would be controlling everything and creating a single point of failure. This way, applications within the same computer are fully indenpendent and their overall behavior doesn't change when they're running in the same machine or in different machines. You configure those applications individually and your DDS system as a whole.
With a great power comes a great responsability, and that's the finer grain control over QoS that you have. As an starting point, I like this document: https://community.rti.com/static/documentation/connext-dds/6.0.0/doc/manuals/connext_dds/RTI_ConnextDDS_CoreLibraries_QoS_Reference_Guide.pdf . It gives you a general view of the QoS settings that you want to modify and which DDS instances are affected.
In general, all DDS standard QoS settings are available as fully defined XML tags for instance:
It is very rarely that you'd need to modify properties (like your last example), which are fine grain tunning, usually RTI-specific. If you get to the point of needing to modify those, you can always reach to your local FAE for help.
We do have pre-defined built-in QoS settings for some scenarios, you can take a look here: https://community.rti.com/kb/configuring-qos-built-profiles
If you give us some details, maybe we can point you quicker to a solution. What size of data are you sending? Are all applications in the same computer? Which requirements do you have?
And if you are looking at performance numbers, have you seen our perftest tool (https://github.com/rticommunity/rtiperftest ) ?
All the best,
Sara
Hi Sara, Irene,
Thanks for your time.
If i understand it corectly all settings go though a reader, writer or topic qos. That clarifies a lot.
In my case i send a union of around 1kb in a strestest where i send as many as the device can handle.
for now it seems to use a jitter or batches by default.
Hi Nick,
Don't forget the DomainParticipant QoS too :)
If you use perftest, by default we do use batching, but the default QoS settings of Connext do not enable batching. Have you run it for your sample size? Which results are you obtaining? Maybe we could setup a call with your regional representative to help you solve this faster. What is it your location?
Thanks,
Sara