Search code examples
data-distribution-service

Creating Configuration File for DDS Recording Service


I'm a beginner looking for some clarity on how to create configuration files for the DDS Recording Service in two areas.

If you are looking to record a set of specific topics from a domain how do you set up the topic group? Can you list the topics as individual <topic_expr> i.e.

<topic_group name="SomeTopics">
    <topics>
        <topic_expr>topic2</topic_expr>
        <topic_expr>topic8</topic_expr>
    </topics>
    <field_expr>*</field_expr>
</topic_group>

When I tried something like this not all the listed topics would be recorded. Is there something I am overlooking?

Secondly, when you use -deserialize to you need to make any changes to the configuration file you used to record the database? As I sometimes get errors about how "rti dds failed to find" followed by something like X::Y::Z. Thanks.


Solution

  • The XSD schema for the configuration file does not expect you to use multiple <topic_expr> tags, but a single tag with a comma-separated list of Topic names. The RTI Recording Service User's Manual explains it as follows:

    <topic_expr>POSIX fn expression</topic_expr>
    
    Required.
    A comma-separated list of POSIX expressions that specify the names of Topics to be included in the TopicGroup.
    The syntax and semantics are the same as for Partition matching.
    Default: Null
    Note: Keep in mind that spaces are valid first characters in topic names, thus they can affect the matching process. For example, this will match both Triangle and Square topics (notice there is no space before Square):
       <topic_expr>Triangle,Square</topic_expr>
    However the following will only match Triangle topics (because there is a space before Square):
       <topic_expr>Triangle, Square</topic_expr>
    

    With regard to the -deserialize option, this is not applicable to the Recording Service but to the Converter tool (rtirecconv). If you want to record deserialized, you will have to indicate that in the Recording Service configuration, via the tag <deserialize_mode>. Again, see the User's Manual for details.