Recording service unable to parse QoS profile which inherits from a built-in profile

3 posts / 0 new
Last post
Offline
Last seen: 3 years 1 month ago
Joined: 03/29/2021
Posts: 12
Recording service unable to parse QoS profile which inherits from a built-in profile

Hi,

I'm using the Recording service API in my application with a custom QoS Profile.

rti::recording::ServiceProperty service_property;
service_property.application_role(rti::recording::ApplicationRoleKind::RECORD_APPLICATION);
service_property.cfg_file("recorder_config.xml");
 
The QoS Profile is configured in recorder_config.xml and it  is inheritted from BuiltinQosLibExp::Generic.StrictReliable.LargeData.FastFlow built-in profile:
 
    <qos_library name="MyQoSLib">
        <qos_profile name="CameraImage_Profile" base_name="BuiltinQosLibExp::Generic.StrictReliable.LargeData.FastFlow" is_default_qos="false">
       ...
        </qos_profile>
    </qos_library>
 
When I start the RecordingService instanse, it fails to start with the following log messages:
[/recording_services/DDSRecordService|CREATE] RTIXMLObject_initialize:Base object 'BuiltinQosLibExp::Generic.StrictReliable.LargeData.FastFlow' not found
[/recording_services/DDSRecordService|CREATE] DDS_XMLQosProfile_initialize:!init XML QosProfile object
[/recording_services/DDSRecordService|CREATE] DDS_XMLQosProfile_new:!init XML QosProfile object
[/recording_services/DDSRecordService|CREATE] RTIXMLParser_onStartTag:Parse error at line 4: Error processing tag 'qos_profile'
[/recording_services/DDSRecordService|CREATE] RTIXMLParser_parseFromString_ex:error parsing XML string
[/recording_services/DDSRecordService|CREATE] ROUTERCfgFileParser_generateNativeExtensionObject:!parse QoS configuration
[/recording_services/DDSRecordService|CREATE] ROUTERCfgFileParser_initializeExtensionsI:!generate QoS
[/recording_services/DDSRecordService|CREATE] ROUTERCfgFileParser_loadString:!init parser extensions
[/recording_services/DDSRecordService|CREATE] ROUTERService_load:!load string
[/recording_services/DDSRecordService|CREATE] ROUTERService_initialize:!load service
[/recording_services/DDSRecordService|CREATE] ROUTERService_newWithDescription:!init service
[/recording_services/DDSRecordService|CREATE] RTI_RoutingService_new_from_description:!init routing service
terminate called after throwing an instance of 'rti::service::ServiceException'
  what():  Service:!create native router

Aborted (core dumped)
 
I don't know what need to do to make it work in this case. Please help me to resolve this issue. Thanks!
Organization:
Howard's picture
Offline
Last seen: 16 hours 38 min ago
Joined: 11/29/2012
Posts: 608

What version of RTI Connext DDS are you using?

I tried this on Windows using both RTI Recording Service directly (started from launcher) as well as an application that starts RTI Recording Service from a library.

    <qos_library name="MyQoSLib">
        <qos_profile name="CameraImage_Profile" base_name="BuiltinQosLibExp::Generic.StrictReliable.LargeData.FastFlow" is_default_qos="false">
        </qos_profile>
    </qos_library>

both worked.  It only gave the error when I misspelled the profile::library name.

You probably should be working with RTI's support team with questions like this...they'll be more able to support you.

Offline
Last seen: 3 years 1 month ago
Joined: 03/29/2021
Posts: 12

Hi Howard,

I found the cause of my failure. It's because this line of code:

service_property.ignore_default_files(true);

Just change it to false and it works.

Thanks for your quick reply.