6.2.9. RTI Recording Service
Recording Service in Connext 6 has been redesigned from the ground up to support:
Simpler configuration, aligned more closely with other products
Pluggable storage APIs
Pluggable data transformations
Better performance
This redesign significantly changes the way that you will configure Recording Service in Connext 6. Some features available in the previous versions of Recording Service are not currently available in Connext 6.
See Section 6.2.9.4 if you need to continue using the existing Recording Service.
Recording Service does not support the following 5.3.1 features:
Encrypting and decrypting the database files
Filtering which user data and metadata fields are recorded
Configuration of the table name-separator
Replay Service does not support the following 5.3.1 features:
Replaying data in the partition it was originally recorded in
Single-stepping the replay
The Recording Console GUI tool is no longer supported with the new version of Recording Service. The RTI Administration Console tool provides a subset of the functionality of the Recording Console, allowing you to administer a running Recording or Replay service; however, it does not allow you to configure and start up a Recording or Replay service using a GUI.
6.2.9.1. APIs
Recording Service now offers APIs to plug in custom storage. These APIs can be used for recording data, replaying data, or converting data from one format to another. See the API Reference HTML documentation.
6.2.9.2. Configuration
Recording Service’s configuration has changed in Connext 6 to be more consistent with other Infrastructure Services, such as Routing Service. We have provided a utility to convert your current XML to the new format wherever possible.
To run this utility for Recording Service:
$NDDSHOME/bin/rtixmlconverter record -cfgFile record_531.xml -cfgFileOut record_600.xml
To run this utility for Replay Service:
$NDDSHOME/bin/rtixmlconverter replay -cfgFile replay_531.xml -cfgFileOut replay_600.xml
If you are using features that are not available in Recording Service, you will see warnings such as:
Warning: Recording Service does not currently support 'verbosity' in
XML. However, you can specify -verbosity at the command-line.
See Starting Converter in the Recording Service User’s Manual for more information.
6.2.9.3. Database Format
The database format for Recording Service continues to write data to a SQLite database file; however:
Recording Service now records discovery data, user data, and metadata in separate files.
Recording Service records user data to CDR (binary) or JSON formats within SQLite tables, but it does not record user data fields into individual columns.
6.2.9.3.1. How to Convert a Legacy Database
To convert a legacy 5.0.0 (or older) database format into the newer format, use the following configuration:
<converter name="Converter_Serialized500">
<!-- Input storage settings -->
<input_storage>
<legacy>
<file_path>rti_serialized.dat_0_0</file_path>
</legacy>
</input_storage>
<!-- Output storage settings -->
<output_storage>
<sqlite>
<storage_format>XCDR_AUTO</storage_format>
<fileset>
<workspace_dir>output_dir</workspace_dir>
<filename_expression>converted.dat</filename_expression>
</fileset>
</sqlite>
...
</output_storage>
See information about the legacy tag in the Recording Service User’s Manual. Converting database files recorded with versions 5.1.0 or later may also require the definition of domain mappings, since, by default, not all the domain information was stored in the database after field filters were introduced. An example configuration:
<converter name="Converter_Serialized510">
<!-- Input storage settings -->
<input_storage>
<legacy>
<file_path>rti_serialized_default.dat_0_0</file_path>
<domain_mapping>
<domain_map
legacy_domain_name="domain0"
domain_id="0" />
</domain_mapping>
</legacy>
</input_storage>
<!-- Output storage settings -->
<output_storage>
<sqlite>
<storage_format>XCDR_AUTO</storage_format>
<fileset>
<workspace_dir>510_serialised_dir</workspace_dir>
<filename_expression>converted.dat</filename_expression>
</fileset>
</sqlite>
</output_storage>
<domain_participant name="Domain0">
<domain_id>0</domain_id>
</domain_participant>
</converter>
In the example above, the <domain_mapping>
tag is used to provide Converter
with the domain ID information for every recorded domain (represented by
the name). This information is—by default—not recorded.
6.2.9.3.2. How to Replay a Legacy Database
As with Converter, to replay a legacy database format using the new Replay Service, use the following tags in your configuration:
<replay_service name="ReplayOldDatabase">
<storage>
<legacy>
<file_path>rti_serialized.dat_0_0</file_path>
</legacy>
</storage>
…
</replay_service>
6.2.9.4. Running Recording Service 5.3.1
We recognize that you may need to continue to run Recording Service 5.3.1, if you rely on features that are not yet supported by Recording Service in Connext 6. Out-of-the-box, Connext 6 DataWriters will use CDR encoding version 1 (XCDR), which is the only encoding version Recording Service 5.3.1 recognizes; however, if you change a DataWriter in Connext 6 to use encoding version 2 (XCDR2), then you will not be able to record that data using the 5.3.1 Recording Service. See Section 6.1.3.1.
6.2.9.5. Documentation
In 6.0.0, the Recording Service Release Notes, Getting Started Guide, and User’s Manual have been consolidated into a single document, which is available in HTML and PDF formats. You can find them in your Connext installation in the following locations:
HTML main page:
[NDDSHOME]/doc/manuals/recording_service/index.html
PDF:
[NDDSHOME]/doc/manuals/routing_service/RTI_RecordingService_UsersManual.pdf