Home
Recording Service User`s manual
Contents
1. Top level Tag Reference Section lt replay_service gt General Properties for Replay Section 7 3 lt replay_database gt Database Input File Properties Section 7 4 lt session gt Session Properties Section 7 5 lt replay_topic gt Replay Topic Properties Section 7 6 lt time_control gt Time Control Properties Section 7 7 lt administration gt Remote Administration Properties Section 7 8 lt type_config gt Type Configuration Section 7 9 The XML configuration file used by Replay has a simple hierarchical format The replay_service is configured to replay data contained in one or more replay_database Each replay_database is associated with a DomainParticipant and must contain one or more session Each session is asso ciated with a Publisher and corresponds to a unique execution thread Each session contains one or more replay_topic each of which is associated with a DataWriter and contains a filter expres sion that specifies what information contained in the data base should be replayed Each of the four major levels replay_service replay_database session and replay_topic may contain a time_control element that allows control over such features as the rate of replay how much of the available data to be replayed and for coordination Much of Replay s configuration has been designed to be compatible with the Record tool so familiarity with the Record tool s concepts and configuration will be
2. lt compact_char_array gt DDS_Boolean lt compact_char_array gt compact_char_ array Store array of char in a single column The default true saves the most space While it is possible to store individual elements in separate columns it is not recommended as the number of columns stored can become very large Default True lt compact_char_sequence gt DDS_Boolean lt compact_char_sequence gt compact_char_ sequence Store sequence of char in a single column The default true saves the most space While it is possible to store individual elements in separate columns it is not recommended as the number of columns stored can become very large Default True 4 26 TopicGroup Properties Table 4 13 TopicGroup Properties Properties under lt topic_group gt Syntax Description compact_ octet_array lt compact_octet_array gt DDS_Boolean lt compact_octet_array gt Store array of octet in a single column The default true saves the most space While it is possible to store individual elements in separate columns it is not recommended as the number of columns stored can become very large Default True compact_ octet_sequence lt compact_octet_sequence gt DDS_Boolean lt compact_octet_sequence gt Store sequence of octet in a single column The default true saves the most space While it is possible to store individual elements in separate columns
3. Table 7 13 XML Type Configuration Properties lt file group gt Properties under Syntax Description lt xml gt lt file_group gt Allows you to specify XML file groups each of lt element gt A a fil a these files contain type definitions to be used by re_group File Group PropartIeg the Replay tool The element tag can be repeated lt element gt See Table 7 14 File Group Properties max_sequence lt max_sequence gt Integer lt max_sequence gt The default sequence size in case there are unbounded sequences in the type definitions specified in the any of the files specified in any of the file groups max_string lt max_string gt Integer lt max_string gt The default string size in case there are unbounded strings in the type definitions speci fied in any of the files specified in any of the file groups 7 13 Type Configuration Table 7 13 Table 7 14 XML Type Configuration Properties Properties under Syntax Description lt xml gt lt path gt A list of the paths relative or absolute to be used path lt element gt Path lt element gt when searching for the XML type definition files lt path gt The lt element gt tag can be repeated register_top_level lt register top level gt Boolean lt register_top level gt Whether or not to register the top level types found in the type definitions with their canonica
4. 1 Read the instructions again to ensure you understand the expected behavior 2 It s possible that the environment or configuration in which Recording Console is running is causing the unexpected behavior Recording Console generates a log file To open the log file click on the info button i in the lower right corner then click on the link at the bot tom of the info panel Each line in the log begins with a severity level Look for lines that start with WARN or ERROR 3 Contact RTI s support team If you cannot resolve the issue based on the information in the log file please contact us so we can help you overcome the issue Before contacting support please increase the logging verbosity and try to reproduce the problem so you can provide more detailed information To do so a Close any running instances of Recording Console otherwise any change you make to the settings file may be overwritten b Open the console settings file in your home directory e On Windows systems My Documents RTI RTI Recording Service lt version gt console settings ini On Linux systems rti RTI_Recording_Service_ lt version gt console settings ini c Find the line with loggingLevel INFO and replace the default value of INFO with TRACE d Save the updated settings file e Run Recording Console again until the issue you encountered before is reproduced 2 11 Troubleshooting f Find the log file The info panel
5. Table 4 3 4 4 1 4 5 Remote Access Properties Properties under lt remote_ access gt Syntax Description Required if enabled is true Specifies which domain the Record tool will use to enable remote access Only one domain can be lt remote_access_domain gt specified remote_access_ String domain 2l remote necese domains Note that this is a String not a Domain ID It is the gt o same String used in the lt domain name String gt lt domain gt line Default False lt subscriber_qos gt Configures the QoS for the Subscriber created by subscriber_qos DDS_QosPolicy the Record tool s Remote Access module lt subscriber_qos gt Default Default Subscriber QoS settings Enabling RTI Distributed Logger in the Record Tool The Record tool provides integrated support for RTI Distributed Logger When you enable Distributed Logger the Record tool will publish its log messages to Connext Then you can use RTI Monitor to visualize the log message data Since the data is provided in a Connext topic you can also use rtiddsspy or even write your own visualization tool To enable Distributed Logger modify the Record tool s XML configuration file In the lt remote_access gt section add the lt distributed_logger gt tag as shown in the example below lt remote_access gt lt enabledstrue lt enabled gt lt remote_access_domain gt adminDomain lt remote_access_ domains lt distributed_l
6. does not require quotes when used in SQLite SQL statements For example to use _ as the path separator lt path_separator gt _ lt path_separator gt Note This property cannot be empty lt rollover gt rollover DDS_Boolean lt rollover gt Specifies whether or not the Record tool should overwrite existing file segments in the fileset once the file size limit max_file_size has been reached for the last file segment e True Overwrite existing file segments as needed starting with the first one e False Stop recording data Default False lt segment_number gt DDS_Long lt segment_number gt segment_ number Specifies the first segment to use in the fileset If the segment number is gt 0 that is the first seg ment number in the fileset Default 1 The next available segment number will be used starting at 0 Note The set number is determined first then the segment number lt set_number gt set_number DDS_Long lt set_number gt Specifies the set number to use in the fileset If set_number is gt 0 that specific fileset number is used In this case the lt overwrite gt property takes effect Default 1 The next available set number will be used starting at 0 4 10 Database Output File Properties Table 4 4 Database Properties Properties under er Zrecorder Syntax Description database gt Specifies a list of SQLite pragma
7. lt type_config gt lt xml gt lt file_ group gt lt element gt lt file name gt 4 37 Recording Service Integration with Extensible Types lt Name of file that defines ShapeType More than one file can be included if needed gt lt element gt ShapeType xml lt element gt lt file name gt lt type gt lt element gt lt type_name gt ShapeTypeExtended lt type_ name gt lt registered_type name gt lt element gt ShapeType lt element gt lt registered_type name gt lt topics gt lt element gt Square lt element gt lt element gt Circle lt element gt lt element gt Triangle lt element gt lt topics gt lt register top _level gt false lt register_top_ level gt lt element gt lt type gt lt element gt lt file_ group gt lt path gt lt Define a sequence of paths in which to look for the above files gt lt element gt lt element gt lt path gt lt xml gt lt type_config gt lt element gt lt domain_group gt lt domain_type_config gt lt Create DomainParticipant in domain 0 with default QoS gt lt domain name domain0 gt lt domain_id gt 0 lt domain_id gt lt Always deserialize so the type fields are shown in columns for verification purposes gt lt deserialize mode gt RTIDDS DESERIALIZEMODE ALWAYS lt deserialize mode gt lt domain gt lt Create a generic TopicGroup gt lt topic_group name A1
8. 4 4 Starting and Stopping the Console c cece ce eeeeeeeececesseeeseesesesssseesessssseeesesesseeeseseseseee 2 1 Using the Information Panel sre terena atin deaniade sails nei eS ide wide dian 2 2 Configuring Recorditig Consoles minassssssi iia a para a a 2 2 2 3 1 Configuring From an External Fil sssrinin insesi 2 3 Recording Datta 4s ronan n ee ae e r a E a ea A Eaa a AERE Se Eie a EEE tees 2 6 2 4 1 Using the Pause Resume Button During Recording ss sssssssssesiessissrssestersesnssnesnenees 2 6 2 4 2 Troubleshooting Recording Problems sssssssssssississesssesiesresessresiesiessesnesnestensesnesnenrennees 2 7 Replaying Datasnis ienien a a aa ai E EE 2 7 25 1 Using the Play Button sisccccsssniecssiettiece iene waniteseentiesmetins destinies e aS 2 8 2 5 2 Using the Fast Forward Button ss iis sissie issii senit seiis le oes tevasini ania iiy 2 8 2 5 3 Using the Pause Resume Buttonin ncnenenii essien ienna ian E 2 8 2 54 Advanced Configuratio inenen paa i aa a a E Eaa SEa 2 8 2 5 5 Restricting the Time Range to be Replayed ssn sssssssssssissesstssssississssntestestessnsneneestesness 2 9 Viewing Recorded Topics aerisire eenen ea asata Taes eaea Ae a Ea aaraa edaba aaaea red eai 2 9 Scheduling Recording and Replay Tasks cccessseseesesssssesesesesesssesesesesssesesesesesseseseseseeseseseees 2 10 Troubleshooting ienna aeaaee a ia pai a A E R S 2 11 Using the Record Tool Starting the Recor loola g
9. For instance we could build an index based on the ID and name of the first runner We may also need an index based on the current time and the reception timestamp The XML configuration to create these indexes is lt topic_group gt lt This is the index for the first runner gt lt index prefix firstRunnerIndex gt lt field gt runnerList 0 id lt field gt lt field gt runnerList 0 name lt field gt lt index gt lt This is the index for the timestamps gt lt index gt lt field gt SampleInfo_ reception timestamp lt field gt lt field gt currentTime lt field gt lt index gt lt topic_group gt The above configuration creates two indexes LI firstRunnerIndex TableName which indexes on the first runner s id and name I index1 TableName which indexes on the SampleInfo_reception_timestamp field and user data currentTime field Indexing and Performance in SQLite Tips and Tricks Online indexing can affect the permanence of the insertions the Record tool makes in the data base because of the extra work to maintain the indexes However in situations where more than one application besides the Record tool will be accessing the database online indexing may make a difference especially for applications retrieving data from the database It is important that indexes and the applications using them are as efficient as possible Here are some tips and tricks about indexing and efficient u
10. SampleInfo_subscription_seq_nr INTEGER SampleInfo_sample_state INTEGER SampleInfo_instance_state INTEGER SampleInfo_instance_handle BLOB A 2 DCPSPublication Table Discovery Table A 2 Fields Available to Store in DCPSParticipant Tables Field Name SQL Type SampleInfo_publication_handle BLOB SampleInfo_disposed_generation_count INTEGER SampleInfo_no_writers_generation_count INTEGER SampleInfo_sample_rank INTEGER SampleInfo_generation_rank INTEGER SampleInfo_absolute_generation_rank INTEGER SampleInfo_original_publication_virtual_guid BLOB SampleInfo_original_publication_virtual_seq_nr INTEGER SampleInfo_related_original_publication_virtual_guid BLOB SampleInfo_related_original_publication_virtual_seq_nr INTEGER Metadata_domain_id INTEGER Metadata_domain_name TEXT A 3 DCPSPublication Table Discovery This table stores the samples of the built in discovery topic DCPSPublication samples that are received by Recorder Samples of this topic are prefixed with PublicationData_ Alongside every sample of the discovery topic the Sample Info object received is also stored and prefixed with SampleInfo_ For more information on this topic see the RTI Connext Core Libraries and Utilities API Reference HTML documentation The Record tool stores two metadata fields with this table the domain ID and the name of the Recorder Domain object as defined in the recorder
11. When you let go of the button replay will go back to being paused If replay is not paused when you press Fast Forward button it will replay at the higher rate as long as the button is pressed When you let go of the button replay will return to the previous rate Using the Pause Resume Button To pause a replay press the Pause Resume button m To resume the replay at the same rate either press Pause Resume again or press Play gt l Advanced Configuration Changing the Replay Rate To increase the rate temporarily keep the Fast Forward Button pressed see Section 2 5 2 The vertical slider on the right controls the replay rate up for faster center for original speed lower for slower 2 8 Viewing Recorded Topics 2 5 4 2 2 5 5 2 6 You can specify a default replay rate in the Playback configuration panel Select a speed from the drop down list or type in your own value If you use the slider to change the playback speed you can easily go back to default playback rate by pressing the Play button again while replay is in progress Configured without a file v x0 01 Very slow x0 1 Slow Half speed Normal speed Fast x60 One recorded minute per second x100 Very fast x360 One recorded hour per second x1000 Super fast x8640 One recorded day per second Auto Repeat To automatically repeat the replay in a continuous loop select the Auto repeat check box Restricting the Time Range to be Replayed
12. You can limit the start and end time for replaying data while replay is stopped by dragging the bars seen below Drag these bars inward to restrict the time range for replaying data Note This time restriction feature cannot be used when using a configuration file Viewing Recorded Topics While recording or when you have loaded a pre recorded file you can use the Recorded Topics panel to see the topics that have been recorded For each topic the table shows the topic name and when the recording is not in progress the first and last recorded samples of that topic 2 9 Scheduling Recording and Replay Tasks 2 7 If playback is configured through Recording Console the topic table enables you to select which topics to replay Click here to open the Recorded gt Topics Panel Searching for Topics First recorded sample 08 52 58 PM EST Thu Feb 28 2013 08 52 58 PM EST Thu Feb 28 2013 08 52 58 PM EST Thu Feb 28 2013 Search for topics by name here Last recorded sample 08 53 02 PM EST Thu Feb 28 2013 08 53 02 PM EST Thu Feb 28 2013 08 53 02 PM EST Thu Feb 28 2013 To assist in selecting multiple topics use the search bar on the bottom of the topics panel You can narrow down the topics that are displayed based on a substring in the topic name Note The search bar does not support regular expressions When the desired group of topics is displayed you can
13. element gt lt domain_group gt lt domain_type_config gt For the moment we have defined the type to use with each Recording Service domain but because the default value for the TypeConsistencyEnforcementQosPolicy is ALLOW_TYPE_COERCION and both types are compatible we would record each sample twice once for each type version We need to set the DataReader QoS settings in the Topic Groups we create so that they will not allow type coercion lt topic_group name Shapes gt 4 40 Recording Service Integration with Extensible Types lt topics gt lt topic_ expr gt Circle Square Triangle lt topic_expr gt lt topics gt lt field_expr gt lt field_expr gt lt datareader_qos gt lt type_consistency gt lt kind gt DISALLOW_TYPE_COERCION lt kind gt lt type_consistency gt lt datareader_qos gt lt topic_group gt We also need to associate the RecordGroup we create with both Recording Service domains lt record group name RecordGroup gt lt domain_ref gt lt element gt domain0Base lt element gt lt element gt domain0Extended lt element gt lt domain_ref gt lt topic_ref gt lt element gt Shapes lt element gt lt topic_ref gt lt record_group gt With all these settings together Recording Service will create a different table for each type ver sion of Shapes it finds when it discovers each of the Shapes Demo topics For example for topic Square it would create table Squ
14. lt domain_name gt Required Specifies the name of the domain_name that was specified in the Record tool s configuration file or a regular or wildcard expression record_group_ name lt record_group name gt String lt record_group_name gt Required Specifies the name of the record_group that was specified in the Record tool s configuration file or a regular or wildcard expression topic_name lt topic_name gt String lt topic_name gt Required Specifies the name of the topic_name that was specified in the Record tool s configuration file or a regular or wildcard expression lt type_name gt Specifies the name of the type_code to be used in writing matching topics This parameter will default to if not type_name p specified Replay will search for a matching type name only lt Lype_name gt within matching topic records Output Properties Properties under Syntax Description lt output gt datawriter_qos lt datawriter_qos gt DDS_DataWriterQos lt datawriter_ qos gt Specifies the QoS settings for all DataWriters created for this Replay_Topic A DataWriter is created for each Topic that matches the topic_expr All the DataWriters for the Replay_Topic will use the same set of QoS policies You can specify all of the QoS policies with this datawriter_qos property See the RTI Connext Core Libraries and Utilities User s Man ual s chapter on Configuring QoS
15. name lt name gt String lt name gt this name when sending commands via Replay Shell see Section 6 4 participant_qos lt participant_qos gt DDS_ParticipantQos lt participant_qos gt Configures the QoS for the Participant created by the Replay tool s Remote Access module Defaults See the RTI Connext Core Libraries and Utilities API Reference HTML documentation on DomainParticipants publisher_qos lt publisher_qos gt DDS_PublisherQos lt publisher_qgos gt Configures the QoS for the Publisher created by the Replay tool s Remote Access module Defaults See the RTI Connext Core Libraries and Utilities API Reference HTML documentation on Publishers status_period lt status_period gt DDS Duration lt status_period gt Specifies in seconds and nanoseconds the period between each status message sent by the Replay Service to the Replay Shell When this value is set to zero the default no sta tus message is sent Applications that want to periodically poll the sta tus of the Replay service they administer should provide a value for this property Default 0 no status is sent subscriber_qos lt subscriber_qos gt DDS_QosPolicy lt subscriber_qos gt Configures the QoS for the Subscriber created by the Replay tool s Remote Access module Defaults See the RTI Connext Core Libraries and Utilities API Reference HTML documentation on Subscribers To enable Di
16. 5 1 4 5 1 1 Choosing Which Samplelnfo and Discovery Fields to Record To reduce database size and increase flexibility the Record tool provides a way to select which Sample Info discovery DCPSPublication DCPSSubscription and DCPSParticipant and meta data fields should be recorded An application may not be interested in recording all the meta data Samplelnfo and discovery information Before this feature was introduced the Record tool would record everything by default Now the Record tool will only record the fields necessary for the Replay tool to work with the database These fields are L In the user table SampleInfo_valid_data and SampleInfo_reception_timestamp I In the DCPSPublication table PublicationData_topic_name PublicationData_type_name PublicationData_typecode and PublicationData_typecode_length The Record tool provides capabilities to add to or to remove from this set of fields It also pro vides a special boolean flag called replay_compatibility see Table 4 2 General Properties When this flag is enabled the default it preserves the above set of fields regardless of which fields the user chooses to exclude This way very general regular expressions can be used with out affecting compatibility with the Replay tool Table 4 4 describes the XML settings for selecting fields in the discovery tables tag lt builtin_topic_metadata_fields gt There are settings for each of the three discovery t
17. Domain object as defined in the recorder configuration that generated the discovery traffic Table A 4 Fields Available to Store in DCPSSubscription Tables Field Name SOL Type SampleInfo_reception_timestamp INTEGER SampleInfo_source_timestamp INTEGER SampleInfo_valid_data INTEGER SubscriptionData_key_0 INTEGER SubscriptionData_key_1 INTEGER SubscriptionData_key_2 INTEGER SubscriptionData_key_3 INTEGER SubscriptionData_participant_key_0 INTEGER SubscriptionData_participant_key_1 INTEGER A 5 DCPSSubscription Table Discovery Table A 4 Fields Available to Store in DCPSSubscription Tables Field Name SOL Type SubscriptionData_participant_key_2 INTEGER SubscriptionData_participant_key_3 INTEGER SubscriptionData_topic_name TEXT SubscriptionData_type_name TEXT SubscriptionData_destination_order_kind INTEGER SubscriptionData_destination_order_scope INTEGER SubscriptionData_destination_order_source_timestamp_tolerance INTEGER SubscriptionData_presentation_access_scope INTEGER SubscriptionData_presentation_coherent_access INTEGER SubscriptionData_presentation_ordered_access INTEGER SubscriptionData_partition TEXT SubscriptionData_group_data BLOB SubscriptionData_topic_data BLOB SubscriptionData_subscriber_key_0 INTEGER SubscriptionData_subscriber_key_
18. However this can affect the performance while replaying the data see Performance and Indexing Section 6 4 3 Index the database tables offline by using any SQLite access tool for an example see Chapter 9 Viewing Recorded Data with SQLite the indexes on the table can be created with the following SQL query all on one line CREATE INDEX IF NOT EXISTS index table name ON table name reception timestamp For additional information on how to provide XML types to the Replay tool see Type Configura tion Section 7 9 1 RTI Issue ID RECORD 318 Chapter 8 Accessing the Replay Tool from a Remote Location The Replay Shell is a Connext application that can remotely control the Replay tool To start the Replay Shell Open a command prompt and change to the lt install dir gt scripts directory Then enter gt lt install dir gt scripts rtireplaysh options Table 8 1 lists the command line options you can use when starting the Replay Shell Once it is started you can use the commands in Table 8 2 Table 8 1 Replay Shell s Command Line Options Command line Option Description cmdFile lt file gt A file that contains commands to be run domainId lt integer gt Specifies the domain ID an integer between 0 and 232 Default 0 help Prints version information and a list of options timeout lt seconds gt Maximum number of seconds to wait for a remote response De
19. See Table 7 8 Time Control Properties Replay Topic Properties Table 7 5 describes the Topics properties All lt replay_topic gt properties are optional except input These properties must be specified within lt replay_topic name String gt and lt replay_topic gt tags where String is the name to be assigned to the replay topic entity when it is created This name will be used during remote administration All input properties Table 7 6 are required except for type_name which is optional All output properties Table 7 7 are optional 7 6 Replay Topic Properties Table 7 5 Table 7 6 Table 7 7 Replay Topic Properties Properties under a Syntax Description lt replay_ topic gt i E f aput lt p HA Properties Required Configures the topics that are to be replayed from P ied p the database See Table 7 6 Input Properties lt input gt tput p ap lt output gt Configures the attributes to be used in writing the replayed output Output Properties m aet topics See Table 7 7 Output Properties lt output gt lt time_control gt ume contol Time Control Specifies time configuration properties to be applied to the E Properties Session See Table 7 8 Time Control Properties lt time_control gt Input Properties Properties under lt input gt Syntax Description domain_name lt domain_name gt String
20. Type Configuration The top level tag lt domain_type_config gt allows you to pass type configuration information to the Record and Converter tools in the form of XML type configuration files Table 4 6 describes the Domain Type Config properties All Domain Type Config properties are optional Table 4 6 Domain Type Configuration Properties Properties under lt domain_type_config gt Syntax Description lt domain_group gt lt element gt Domain Group Properties lt element gt lt domain_group gt domain_group A list of type configuration elements associated with specific Recorder domain definitions see Section 4 7 These type configuration elements can be repeated For more details in the contents of this tag See Table 4 7 Domain Group Configuration Properties 4 21 Domain Type Configuration Table 4 7 Table 4 8 Table 4 9 Domain Group Configuration Properties Properties under lt domain_ group gt Syntax Description domain_filter lt domain_filter gt lt element gt POSIX fn expression lt element gt lt domain_filter gt A list of POSIX expressions that specify the names of the Recorder domain definitions for which the type definitions specified will apply The element tag can be repeated The POSIX expressions have to match the name attribute of any of the domain definitions as defined in Section 4 7 type_config lt
21. Versions of a Type in Different Tables in Same Database Section 4 10 2 it seems inter esting to be able to do the same with the Replay tool and have every type topic correctly replayed with the original type version This can be done by using different Replay database entities con figured to replay each of the recorded versions distinguished by the name of the Recording Ser vice domain that recorded them Consider the following Replay configuration lt replay_ service name bothVersionsShapesReplay gt lt auto_exit gt true lt auto_exit gt lt replay database name bothVersionsShapesReplay Database gt lt filename gt shapes dat_0_0 lt filename gt lt type_config gt lt xml gt lt file_ group gt lt element gt lt register top _level gt false lt register_top_level gt lt file name gt lt element gt ShapeType xml lt element gt lt file_ name gt lt type gt lt element gt lt register_ top level gt true lt register_top_level gt lt type_ name gt ShapeType lt type name gt lt topics gt lt element gt Circle lt element gt lt element gt Square lt element gt lt element gt Triangle lt element gt lt topics gt lt element gt lt type gt lt element gt lt file_group gt lt path gt lt element gt lt element gt lt path gt lt xml gt lt type_config gt lt participant gt lt domain_id gt 0 lt domain_id gt lt participant gt lt session name bothVersionsShapesReplay Sess
22. an index based on the reception timestamp when opening the database if it did not already exist see Performance and Indexing Section 6 4 The process of building the index however may take some time for large tables But if it is important for you to avoid spending this time or if indexing needs to happen during the recording this is an easy way to create customized indexes while still recording data into the database Note While other applications accessing the database may benefit from online indexing the Record tool s performance may drop because of it so you should consider this when using online indexing 4 29 TopicGroup Properties The Record tool s ability to create and store indexes for the User Data Table is controlled by the lt index gt property under lt topic_group gt see Table 4 13 TopicGroup Properties The lt index gt property expects one or more lt field gt tags which create the indexes Syntax The lt topic_group gt can contain as many indexes as needed for some notes about indexes and performance see Indexing and Performance in SQLite Tips and Tricks Section 4 8 2 Each of those indexes can be built using one or more fields The fields listed could be meta data fields such as the reception timestamp used by the Replay tool or user data ones In addition you may optionally add a prefix to the index The general syntax is lt topic_group gt lt index prefix OptionalPrefix gt
23. at which replay is to begin The time is interpreted based on the setting of time_mode start_time DDS Duration T eja beri e HONG Although expressed as lt sec gt and lt nanosec gt the internal reso E lution of Replay is limited to milliseconds Default 0 The time of the recorded data at which replay is to stop The lt stop time gt time is interpreted based on the setting of time_mode stop_time DDS_Duration Although expressed as lt sec gt and lt nanosec gt the internal reso lt stop_time gt lution of Replay is limited to milliseconds Default Infinity i Describes how the start_time and stop_time parameters lt time mode gt x vies should be interpreted See Table 7 10 Time Mode Values time_mode Time Mode lt time_mode gt Default DATABASE_RELATIVE except when applied to a replay_service entity whose default is SERVICE_RELATIVE Start Mode Values Enumeration Description Value P AUTOMATIC Replay of the entity begins automatically For subordinate entities replay begins when parent replay starts Replay of the selected section begins automatically and is restarted immediately after the last data sample of the entity has been replayed For example replay_topics with LOOP start_mode LOOP will each restart as soon as each topic has completing its replay while a session with start_mode LOOP will restart only when all of its topics have completed replay Note Cu
24. data struc ture will have its own column in the table The maximum number of columns is approximately 5 050 Therefore if you have a data type that would require more than 5 050 columns you must set the deserialize_mode property to RTIDDS_DESERIALIZEMODE_NEVER Disregarding this limit will cause recording to fail Note Each primitive type is considered a column For example the following would require 3 000 columns long Array 3000 4 25 TopicGroup Properties 4 8 Table 4 13 As another example the y 0 x a y 0 x b y 1 x a y 1 x b etc struct X long a long b fa struct Y X Xj i struct Z Y y 10 following would require separate columns for TopicGroup Properties A TopicGroup is an optional logical collection of Topics If you are not going to have a RecordGroup in the configuration file you do not need a TopicGroup See Section 4 9 Table 4 13 describes the TopicGroup properties TopicGroup properties must be specified inside lt topic_group name String gt and lt topic_group gt tags The following properties are required I field_expr I shared_table LI topics TopicGroup Properties Properties under lt topic_group gt Syntax Description lt auto_detect_reliability gt DDS_Boolean lt auto_detect_reliability gt auto_detect_ reliability If set to true use the same reliability as the Publisher of the matched Topic Default False
25. database serialized or deserialized The following values are allowed e RTIDDS_DESERIALIZEMODE_AUTOMATIC Deserialize data if possible otherwise store data in serial deserialize lt deserialize mode gt ized format DDS Enum mode een e RTIDDS_DESERIALIZEMODE_NEVER lt deserialize mode gt ee 2 eas 7 Do not deserialize the data store data in serialized format e RTIDDS_DESERIALIZEMODE_ALWAYS Only store data if it can be deserialized first Default RTIDDS_DESERIALIZEMODE_NEVER See Recording Large User Data Types Section 4 7 2 a sdomain 10 gt Sets the domain ID domain_id DDS_Long lt domain_id gt Default 0 Configures the DomainParticipant s QoS policies lt participant_qos gt Default default DomainParticipant QoS settings participant_qos DDS_QosPolicy See the RTI Connext Core Libraries and Utilities User s Man lt participant_qos gt ual for details See the chapter on Configuring QoS with XML You may specify more than one Domain Each one must have a unique name with its own lt domain name String gt and lt domain gt tags 4 24 Domain Properties 4 7 1 4 7 2 Note Transports are configured through the Property QoS under the participant_qos tag For example the following creates a Domain named mydomain using domain ID 68 The data will be recorded in serialized format The DomainParticipant will use default QoS settings except for the Discovery QoS policy s accept_unknown
26. deci mal number The T and F entries represent enabled started pending paused and com pleted The d s are decimal numbers for how many child topics are owned by the entity and how many active child topics are owned by the entity rate Changes the replay rate of an entity The rate is a multiplier from 0 1 to 4 billion It replays at the speed of the multiplier 2 2x 0 5 1 2x etc Default 1 resume Resume replay of an entity start step Starts replay of an entity Replays a single sample from the entity stop Stops replay of an entity 8 2 Chapter9 Viewing Recorded Data with SQLite The Record tool stores data in a SQL database This chapter describes how the data is stored and how to view the data with the provided SQL command line tool sqlite3 For information on how the data is stored see Format of the Recorded Data Section 3 3 Important For information on SQL commands please visit www sqlite org To open a recorded file start sqlite3 For example cd rtirecord 5 x y ndds 5 x y bin lt architecture gt sqlite3 lt recorded file gt Then you can list all the available topics by entering sqlite gt tables This will list the tables one per topic in the database file For example Circle MyGroup MyDomain DCPSParticipant DCPSPublication DCPSSubscription RTILog RTIVersion Square RecordA1l1 MyDomain Square RecordxYSquaresinMyDomain MyDomain Trian
27. explorer window and drop it into the long black rectangle at the top of the Con sole Note If you specify an existing file the file will be overwritten with new data New data is not appended to the end of the existing file contents 3 Press the Record button to start recording File size grows as data is recorded Begin time Stop Pause Resume End time 2 4 1 Using the Pause Resume Button During Recording To pause recording press the Pause Resume button 00 To resume recording either press Pause Resume again or press Record 2 6 Replaying Data 2 4 2 Troubleshooting Recording Problems Problem You pressed the Record button but the recording file size stays at zero Solution Make sure that L The Recording Domain ID matches the domain ID used by the source the application from which you want to record data L Data is coming in from the source by using tools such as rtiddsspy provided with Con next in its scripts directory LJ You have access rights to create files in the directory where the recording file is to be cre ated 2 5 Replaying Data You can use the Console to replay data that was recorded using the Console or the Record tool You may replay data recorded with an older version of Recording Service Note If you recorded the data using the sqlite_ pragmas functionality described in Section 4 5 the resulting database cannot be replayed by Recording Console use the Replay tool in
28. it is not recommended as the number of columns stored can become very large Default True datareader_qos lt datareader_qos gt DDS_DataReaderQos lt datareader_qos gt Specifies the QoS settings for all DataReaders created for this TopicGroup A DataReader is created for each discovered Topic that matches topic_expr All the DataReaders for the TopicGroup will use the same set of QoS policies You can specify all of the QoS policies with the datareader_qos property See the RTI Connext Core Libraries and Utilities User s Manual for more information See the chapter on Configuring QoS with XML See the RTI Connext Core Libraries and Utilities User s Manual for details See the chapter on Configuring QoS with XML exemption lt exemption gt POSIX fn expressions lt exemption gt Specifies a comma separated list of expressions that should not be recorded Default Nothing is exempt field_expr lt field_expr gt POSIX fn expressions lt field_expr gt Required A list of comma separated POSIX expressions that specify which fields in the Topics to record The Topics are specified with lt topics gt see Table 4 14 Topics Properties If set to everything is recorded This parameter is ignored when recording serialized data include_ meta_columns lt include_meta_columns gt DDS_Boolean lt include_meta_columns gt In the database every sample is sto
29. lt Optional DataWriterQos gt lt datawriter gqos gt lt datawriter_qos gt lt output gt lt replay_topic gt lt session gt lt replay_database gt lt replay_service gt lt dds gt General Properties for Replay Table 7 1 describes optional properties that control the Replay tool s main module All lt replay_service gt properties are optional except replay_database These properties must be specified inside lt replay_service name String gt and lt replay_service gt tags where String is the name to be assigned to the service entity when it is created This name will be used during remote administration unless it is overridden by the lt administration gt lt name gt element Replay Service Properties Property Syntax Description Configures the DomainParticipant that can be used to nici f remotely control Replay via the rtireplaysh utility trat s z P Oe See Remote Administration Properties Section 7 8 as Remote Admin i administration Properties The Remote Administration Properties must specify a lt administration gt domain_id You may also specify a name participant_qos publisher_gos subscriber_gos datareader_qos and datawriter_qos Controls whether or not the Replay tool should terminate SAUTOLERT ES when all the available data specified in the initial configu auto_exit DDS_Boolean ration has been replayed lt auto exit gt Defau
30. lt element gt lt domain_filter gt lt type_config gt lt xml gt lt file group gt lt element gt lt file name gt 1 http www omg org spec DDS XTypes 2 lt Connext installation directory gt ndds lt version gt doc pdf RTI_CoreLibrariesAndUtilities_GettingStarted_ExtensibleTypesAddendum pdf Recording Service Integration with Extensible Types 4 10 1 1 lt element gt ShapeType xml lt element gt lt file name gt lt type gt lt element gt lt register_top_level gt false lt register_top_level gt lt type_name gt ShapeTypeExtended lt type_ name gt lt registered type name gt lt element gt ShapeType lt element gt lt registered_ type name gt lt topics gt lt element gt Circle lt element gt lt element gt Square lt element gt lt element gt Triangle lt element gt lt topics gt lt element gt lt type gt lt element gt lt file_group gt lt path gt lt element gt lt element gt lt path gt lt xml gt lt type_config gt lt element gt lt domain_group gt lt domain_type_config gt With the above type configuration Recording Service will register the type ShapeTypeExtended with the DomainParticipant associated with domain0 When any of the topics in the lt topics gt list is matched Circle Square or Triangle Recording Service will use ShapeTypeExtended as the type for recording it The name used for registering the type depe
31. lt field gt One_field lt field gt lt field gt Another field lt field gt lt index gt lt topic_group gt The above configuration will create an index named OptionalPrefix TableName where is the default path separator although it could be replaced using the lt path_separator gt property and TableName is the name of the user data table see Table 4 4 Database Properties for details There are some details to consider when creating an index L An index can only be created based on columns that actually exist in the user data table So if some or all of the columns specified in the index configuration are excluded see Choosing Which SamplelInfo and Discovery Fields to Record Section 4 5 1 they cannot be used to build an index l If the index cannot be created a warning is shown and the Record tool will continue its execution I Two indexes cannot share the same prefix If that happens only the first one is created l If no prefix is provided the string index and a ordinal number are added before the table name For instance if two indexes are created for a given table their names will be index1 TableName and index2 TableName Examples To improve the Replay tool s initialization performance we can create an index using the field SampleInfo_reception_timestamp like this lt index gt lt field gt SampleInfo_ reception timestamp lt field gt lt index gt Note that this is the same index tha
32. record group name sub1 gt lt domain_ ref gt lt element gt mydomain98 lt element gt lt domain_ref gt lt topic_ref gt lt element gt All lt element gt lt topic_ref gt lt record_group gt 11 2 How To Record Data to Multiple Files 11 3 11 4 lt recorder gt lt dds gt Expected Outcome The expected outcome is a single file about 4 GB with all the data in a file called mydomaindata_0_0 By default the Record tool will store deserialized data so the file will have one column per field in the topic How To Record Data to Multiple Files Scenario The Record tool is recording data on a system that supports files up to 4 GB in size However you want to record more than 4 GB of data Configuration File lt dds gt lt recorder name scenario3 gt lt recorder database gt lt database name gt mydomaindata lt database name gt lt max_file size gt 2000 kB lt max_file size gt lt max_file segments gt 1000 lt max_file_segments gt lt rollover gt yes lt rollover gt lt recorder_database gt lt recorder gt lt dds gt Expected Outcome Up to 1 000 files will be created if necessary named mydomaindata_0_0 mydomaindata_0_1 etc up to mydomaindata_0_999 How To Record Serialized Data Scenario Due to space limitations and speed you want to store serialized data Configuration File lt dds gt lt recorder name scenario4 gt lt domain name mydomai
33. spec DDS XTypes 7 15 Recording Service Integration with Extensible Types The type used by the Replay tool to replay a certain topic is obtained as described in Type Selec tion Section 7 6 1 When a unique type name and type code exist for a topic in the DCPSPubli cation table the Replay toolwill be able to use that information to replay it In any other case XML Type Configuration is needed As an example imagine that we have the database recorded in the example shown in Selecting a Type Version For a Topic T In a Recording Domain Sec tion 4 10 1 It is recorded using the extended type version of the Shapes Demo types In order to replay the tables in the database as samples of the base type version we could configure the Replay tool in the following manner lt replay_ service name baseShapeTypeReplay gt lt auto_exit gt true lt auto_exit gt lt replay database name baseShapeTypeReplay Database gt lt filename gt shapes dat_0_0 lt filename gt lt type_config gt lt xml gt lt file group gt lt element gt lt register_ top level gt false lt register_top_level gt lt file name gt lt element gt ShapeType xml lt element gt lt file_name gt lt type gt lt element gt lt register_ top level gt true lt register_top_level gt lt type_name gt ShapeType lt type_ name gt lt topics gt lt element gt Circle lt element gt lt element gt Square lt element gt lt element gt Triangle lt
34. statements to be applied to the database There must be at least one lt pragma gt object in the list there is no upper limit for the number of prag mas that can be specified Pragmas are applied right after database creation lt sqlite_pragmas gt and before any table is created PERIE The pragma name is just the name of the SQLite pragma pame pragma e g page_size as defined by SQLite sqlite_ plus assignment or The PRAGMA SOLite k d should b pragmas parameters e P G QlLite eyword should not be specified as the Record tool will do that automati lt pragma gt cally lt sqlite_pragmas gt Values or parameters can be provided e g page_size 4096 or table_info DCPSPublica tion The output of the pragma statements is shown in standard output Note The order in which you specify the pragmas is the order in which they will be applied Specifies lists of included and excluded Sample Info or metadata fields in the user topic tables lt user topic _metadata_fields gt g cincluded gt A field expression is a Posix fnmatch expression to lt field gt match field Fale described in Appendix A field expression e g SampleInfo_ will match all Sample Info lt field gt specific fields Sas There is no upper limit to the number of lt field gt user_topic_ b ified metadata lt included gt expressions to be specified fields seare Maad The included and excluded fields are optional If ad both a
35. the Record tool shall read from strncpy msg gt msg _u config config from_string filename RTI RECORDER CONFIG MAX STRING Copy the configuration name of the lt recorder gt tag to load strncpy msg gt msg _u config config name cfgname RTI RECORDER CONFIG MAX STRING Send the configuration message to the Record tool dds writer has been created elsewhere retcode RTIRecorderAdminMessageDataWriter_write dds_ writer msg amp DDS HANDLE NIL check for errors here while no response retcode RTIRecorderAdminMessageDataWriter read_next_sample dds_reader msg amp info amp DDS HANDLE NIL if retcode DDS RETCODE_NO DATA response received sleep 1 Updating the Record Tool s Partition QoS Policy For each Record Group in the XML configuration Recording Service creates a DDS Subscriber There is one Subscriber in each of the Record Group s domains Sometimes it may be useful to change the Partition QoS settings for some of these Subscribers For instance suppose the Record tool needs to record data from producers that are organized into different partitions based on their geographical distribution different locations are repre sented by different Partition strings It is possible to specify a Partition QoS policy via XML con figuration when the Record tool starts up But suppose the data producers change location and thus change their Partition QoS The Record
36. type_config gt XML Properties lt type_config gt Specific XML type configuration properties for the domains specified by the list of elements in the domain_filter tag seen above See Table 4 8 Type Config Properties Type Config Properties Properties under Syntax Description lt type_config gt Allows you to specify XML type configuration files an f the path in which to find them and other properties xml AME AYP S Configuration related to the registration of the types with the Properties bcs a DomainParticipants lt Xml gt See Table 4 9 XML Type Configuration Properties XML Type Configuration Properties Properties under lt xml gt Syntax Description file_group lt file_ group gt lt element gt File Group Properties lt element gt lt file_ group gt Allows you to specify XML file groups each of these files contain type definitions to be used by the Record tool The element tag can be repeated See Table 4 10 File Group Properties max_sequence lt max_sequence gt Integer lt max_sequence gt The default sequence size in case there are unbounded sequences in the type definitions specified in the any of the files specified in any of the file groups lt max_string gt The default string size in case there are unbounded max_string Integer strings in the type definitions specified in any of the lt
37. use the select all unselect all buttons on the entire group Only the selected Topics will be replayed To restore and see the list of all topics remove erase the search string from the search box Topic selection in the table is only available when the Console is in Ready mode not recording or replaying data and you have used the Playback Configuration panel not a configuration file Scheduling Recording and Replay Tasks To schedule recording or replay 1 Press the Schedule button 2 Select the type of task record replay or stop current operation 3 Select the starting time and date Troubleshooting 2 8 4 Optionally select an ending time for the activity Activity Schedule g 12 02 PM IPE 12 03 PM 4 December 2013 al December 2013 Sun Mon Tue Wed Thu Fri Sun Mon Tue Wed Thu 24 25 26 27 28 29 30 24 25 26 27 28 1 3 4 6 7 1 3 4 5 8 9 10 1 13 14 8 9 10 11 12 15 16 17 18 20 21 15 16 17 18 19 22 23 24 25 27 28 22 23 24 25 26 29 30 31 i 3 a 29 30 31 1 2 3 Important Notes l Recording Console s window must remain active for the scheduled operation to run You may minimize the window but closing it will cancel the activity J When selecting a file in which to record be aware that any data already in the file will be erased Troubleshooting If Recording Console hangs issues a generic error message or behaves in an unexpected manner here are some steps to resolve the problem
38. with Extensible Types lt register top level gt true lt register top _level gt lt type_ name gt ShapeType lt type name gt lt topics gt lt element gt Circle lt element gt lt element gt Square lt element gt lt element gt Triangle lt element gt lt topics gt lt element gt lt type gt lt element gt lt file_group gt lt path gt lt element gt lt element gt lt path gt lt xml gt lt type_config gt lt element gt The same way we can associate the extended type for shapes with the extended domain lt element gt lt domain filter gt lt element gt domain0OExtended lt element gt lt domain_filter gt lt type_config gt lt xml gt lt file group gt lt element gt lt register top level gt false lt register_top_level gt lt file name gt lt element gt TestTypesLibrary xml lt element gt lt file_ name gt lt type gt lt element gt lt register top level gt false lt register_top_level gt lt type_name gt ShapeTypeExtended lt type name gt lt registered type name gt lt element gt ShapeType lt element gt lt registered_ type name gt lt topics gt lt element gt Circle lt element gt lt element gt Square lt element gt lt element gt Triangle lt element gt lt topics gt lt element gt lt type gt lt element gt lt file_group gt lt path gt lt element gt lt element gt lt path gt lt xml gt lt type_config gt lt
39. 1 gt lt topics gt lt topic_expr gt lt topic_expr gt lt topics gt lt field_expr gt lt field_expr gt lt topic_group gt lt Create RecordGroup to record generic TopicGroup in domain 0 gt lt record group name RecordAl1 gt lt specify from which domains to record gt lt domain_ref gt lt element gt domainO lt element gt lt domain_ref gt lt specify which topics to record gt 4 38 Recording Service Integration with Extensible Types lt topic_ref gt lt element gt All lt element gt lt topic_ref gt lt record_group gt lt recorder gt lt dds gt 4 10 2 Recording Two Versions of a Type in Different Tables in Same Database The following example shows how Recording Service can store samples of different type versions it finds for a topic T for the same DDS domain ID in different tables and without any loss or duplication of information each type version is recorded completely and no samples in one table are present in a different one The type configuration settings in Recording Service allow the specification of name filters regu lar POSIX fn match expressions which allow the specification of a subset of the Recording Ser vice domains they will apply to This allows the specification of different type selection settings as described inSelecting a Type Version For a Topic T In a Recording Domain Section 4 10 1 for different Recording Service do
40. 1 INTEGER SubscriptionData_subscriber_key_2 INTEGER SubscriptionData_subscriber_key_3 INTEGER SubscriptionData_durability_kind INTEGER SubscriptionData_durability_direct_communication INTEGER SubscriptionData_deadline_period INTEGER SubscriptionData_latency_budget_duration INTEGER SubscriptionData_liveliness_kind INTEGER SubscriptionData_liveliness_lease_duration INTEGER SubscriptionData_reliability_kind INTEGER SubscriptionData_reliability_acknowledgment_kind INTEGER SubscriptionData_reliability_max_blocking_time INTEGER SubscriptionData_ownership_kind INTEGER SubscriptionData_user_data BLOB SubscriptionData_property BLOB SubscriptionData_unicast_locators TEXT SubscriptionData_multicast_locators TEXT SubscriptionData_virtual_guid BLOB SubscriptionData_rtps_protocol_version TEXT SubscriptionData_rtps_vendor_id BLOB SubscriptionData_product_version TEXT SubscriptionData_disable_positive_acks INTEGER SubscriptionData_time_based_filter_minimum_separation INTEGER SubscriptionData_content_filter_property TEXT SubscriptionData_subscription_name TEXT SubscriptionData_subscription_role_name TEXT SampleInfo_publication_seq_nr INTEGER A 6 DCPSSubscription Table Discovery Table A 4 Fields Available to Store in DCPSSubscription Tables Field Name SOL Type SampleInfo_subscription_seq_nr INTEGER SampleInfo_sample_state INTEGER SampleInfo_instance_state INTEGER SampleI
41. 15 in the RTI Connext Core Libraries and Utilities User s Manual I NDDSHOME resource qos_profiles_5 x y xml NDDS_QOS_PROFILES xml This file contains the Connext default QoS values it is loaded automatically if it exists First to be loaded File in NDDS_QOS_PROFILES The files or XML strings separated by semicolons referenced in this environment vari able are loaded automatically L lt working directory gt USER_QOS_PROFILES xml This file is loaded automatically if it exists If the USER_QOS_PROFILES file is found and there is a default profile specified in it this default profile is automatically applied to the QoS settings of the Recording Service entities The next locations are specific to Replay LI lt rtiReplay executable location gt resource xml RTI_REPLAY_SERVICE xml This file contains the default configuration for the Replay tool it is loaded if it exists RTI_REPLAY_SERVICE xml defines a configuration that replays all topics on domain 0 Ll lt working directory gt USER_REPLAY_SERVICE xml This file is loaded automatically if it exists I The file specified with the command line option cfgFile see Table 6 1 on page 6 2 You may use a combination of the above approaches 1 x and y represent version numbers of the current release 7 1 General Format 7 2 General Format The Replay configuration file uses XML format The main sections use the following top level tags
42. 7 1 Enabling Monitoring Library in the Record Tool cece cecseeeeeceeenees 4 25 4 7 2 Recording Large User Data Types sseni asi 4 25 TOpie Group Properties iksiri eeni oeae danse cuore aaa aeaa ton Sue aariaa eean a se Ena a aiaa Eaa inaran 4 26 48 1 Greate Index Syhta Xni aiies tipi ii n eS te sata eis aeea S SaS SES A 4 29 4 8 2 Indexing and Performance in SQLite Tips and TrickS ss ss ssssssesississsiseesresiessissesses 4 31 RecordGroup Properties sonen nrir iie naaa E RE EEEE E E AE 4 33 Recording Service Integration with Extensible Types ss sssssrisssssertsssssstssssestessseestessterstsnee 4 35 4 10 1 Selecting a Type Version For a Topic T In a Recording Domain cccceececees 4 35 4 10 2 Recording Two Versions of a Type in Different Tables in Same Database 4 39 Accessing the Record Tool from a Remote Location 5 1 9 2 5 3 5 4 CDV CLV We onea stce Ses E A vob satrssegns fulgs Ges ag cut Suess sub Gude ER ueusausraves AN ceuenesesh 5 1 Establishing a Connection with the Record Tool ccccscssssescesesesssseneeseseseeeeesescenenesesesnenenesees 5 2 Remote Control MessageSss eiserne ekes easa aetna aiaa a ea a a ial beta mtiees 5 4 5 3 1 Updating the Record Tool s Partition QoS Policy cccecccesccseecenetesesesteteeeeceesesesnenenes 5 5 Using the Example Remote Access Application Record Shell c cccccccsssessscesescecesesesneteneseses 5 11 541 Record Shell s Comima
43. A topic T within a recording service domain lt domain gt can be associated with at most one version of a type To record more than one version you will have to use multi ple recording service domains l Users can pre register a set of types in a recording service domain by providing an XML description of the types The XML description supports structure inheritance and muta bility described in the RTI Connext Core Libraries and Utilities Getting Started Guide Adden dum for Extensible Types L The TypeConsistencyEnforcementQosPolicy can be specified on a per topic group lt topic_group gt basis in the same way as other QoS policies Conversions between extensible and mutable types are allowed if the TypeConsistencyEnforcementQosPol icy s kind is set to ALLOW_TYPE_COERCION Selecting a Type Version For a Topic T In a Recording Domain A topic T within a recording service domain lt domain gt can be associated with at most one version of a type By default Recording Service will use the type associated with the first discov ered DataWriter on topic T This makes the selection of the type non deterministic since it depends on the order in which DataWriters are discovered To resolve this problem you can provide the type in the XML configuration using the lt domain_type_config gt For example lt domain type _config gt lt domain_group gt lt element gt lt domain filter gt lt element gt domain0
44. Available to Store in DCPSPublication Tables Field Name SQL Type PublicationData_publication_role_name TEXT SampleInfo_publication_seq_nr INTEGER SampleInfo_subscription_seq_nr INTEGER SampleInfo_sample_state INTEGER SampleInfo_instance_state INTEGER SampleInfo_instance_handle BLOB SampleInfo_publication_handle BLOB SampleInfo_disposed_generation_count INTEGER SampleInfo_no_writers_generation_count INTEGER SampleInfo_sample_rank INTEGER SampleInfo_generation_rank INTEGER SampleInfo_absolute_generation_rank INTEGER SampleInfo_original_publication_virtual_guid BLOB SampleInfo_original_publication_virtual_seq_nr INTEGER SampleInfo_related_original_publication_virtual_guid BLOB SampleInfo_related_original_publication_virtual_seq_nr INTEGER Metadata_domain_id INTEGER Metadata_domain_name TEXT A 4 DCPSSubscription Table Discovery This table stores the samples of the built in discovery topic DCPSSubscription samples that are received by the Record tool Samples of this topic are prefixed with SubscriptionData_ Along side every sample of the discovery topic the Sample Info object received is also stored and pre fixed with SampleInfo_ For more information on this topic see the RTI Connext Core Libraries and Utilities API Reference HTML documentation The Record tool stores two metadata fields with this table the domain ID and the name of the Recorder
45. OB SampleInfo_related_original_publication_virtual_seq_nr INTEGER Metadata_domain_id INTEGER Metadata_table_prefix TEXT DCPSParticipant Table Discovery The DCPSParticipant table stores the samples of the built in discovery topic DCPSParticipant samples received by the Record tool Samples of this topic are prefixed with ParticipantData_ Alongside every sample of the discovery topic the Sample Info object received is also stored and prefixed with SampleInfo_ For more information on this topic see the RTI Connext Core Libraries and Utilities API Reference HTML documentation The Record tool stores two metadata fields with this table the domain ID and the name of the Recorder Domain object as defined in the recorder configuration that generated the discovery traffic Field Name SQL Type SampleInfo_reception_timestamp INTEGER SampleInfo_source_timestamp INTEGER SampleInfo_valid_data INTEGER ParticipantData_key_0 INTEGER ParticipantData_key_1 INTEGER ParticipantData_key_2 INTEGER ParticipantData_key_3 INTEGER ParticipantData_userdata BLOB ParticipantData_participant_name TEXT ParticipantData_property TEXT ParticipantData_rtps_protocol_version TEXT ParticipantData_rtps_vendor_id BLOB ParticipantData_dds_builtin_endpoints INTEGER ParticipantData_default_unicast_locators TEXT ParticipantData_product_version TEXT SampleInfo_publication_seq_nr INTEGER
46. QoS changes If your system uses any DomainParticipant QoS settings that would be incompatible with the default settings you need to write a configuration file that can be used by Recording Console when recording or replaying the data 2 2 Configuring Recording Console 2 3 1 2 3 1 1 There are two ways to configure Recording Console s recording and playback parameters I Specify values in the Configuration panels shown below Ll Specify a file and a configuration within that file This method is described in Section 2 3 1 Click here to open these Configuration Panels Configuring From an External File If you have a use case that is not covered by the default configuration generated by Recording Console you can use an external configuration file as the basis of the settings to record or replay Recording Console can load any configuration file that is supported by the Record or Replay tools These files are described in Chapter 4 Configuring the Record Tool and Chapter 7 Configuring the Replay Tool Note Not all configuration settings are taken from the selected external file see Section 2 3 1 1 and Section 2 3 1 3 Configuring Recording from an External File To use an external configuration file for recording 1 Press oy to open the Recording and Playback Configuration panels 2 In the Recording configuration panel select Configured by file 3 Select a configuration file to use for recording e
47. R PublicationData_publisher_key_1 INTEGER PublicationData_publisher_key_2 INTEGER PublicationData_publisher_key_3 INTEGER PublicationData_durability_kind INTEGER PublicationData_durability_direct_communication INTEGER PublicationData_deadline_period INTEGER PublicationData_latency_budget_duration INTEGER PublicationData_liveliness_kind INTEGER PublicationData_liveliness_lease_duration INTEGER PublicationData_reliability_kind INTEGER PublicationData_reliability_acknowledgment_kind INTEGER PublicationData_reliability_max_blocking_time INTEGER PublicationData_ownership_kind INTEGER PublicationData_ownership_strength INTEGER PublicationData_user_data BLOB PublicationData_property BLOB PublicationData_virtual_guid BLOB PublicationData_rtps_protocol_version TEXT PublicationData_rtps_vendor_id BLOB PublicationData_product_version TEXT PublicationData_disable_positive_acks INTEGER PublicationData_locator_filter TEXT PublicationData_lifespan_duration INTEGER PublicationData_durability_service_service_cleanup_delay INTEGER PublicationData_durability_service_history_kind INTEGER PublicationData_durability_service_history_depth INTEGER PublicationData_durability_service_max_samples INTEGER PublicationData_durability_service_max_instances INTEGER PublicationData_durability_service_max_samples_per_instance INTEGER PublicationData_unicast_locators TEXT PublicationData_publication_name TEXT A 4 DCPSSubscription Table Discovery Table A 3 Fields
48. RESSION MAX LENGTH Set the length of the partition string collection to be zero The Record tool will set the default partition empty in the matching Record Groups if DDS_ StringSeq_ensure_length amp message gt msg u partitions partitions 0 0 Error handling Write the message retcode RTIRemoteCtxMsgDataWriter write RTIRemoteCtxMsg writer message amp DDS HANDLE NIL if retcode DDS RETCODE_OK Error handling The example above uses an empty collection of partition strings This means that the Record tool will apply the default partition empty to the Record Groups that match the regular expression Domain1 specified in the command Using the Example Remote Access Application Record Shell The Record Shell is a Connext application that can remotely control start stop and reconfigure the Record tool The Record Shell is not meant as a complete solution to remotely controlling the Record tool Its purpose is just to give you an idea of what can be done The Record Shell rtirecsh is in lt install directory gt bin lt architecture gt For example to start the Record Shell enter cd lt install directory gt scripts rtirecsh domain lt domain ID gt Table 5 2 lists the command line options you can use when starting the Record Shell Once it is running you can use the commands described in Record Shell s Commands Section 5 4 1 Record Shell s Comma
49. RTI Recording Service User s Manual Version 5 1 0 t Your systems Working as one 2007 2013 Real Time Innovations Inc All rights reserved Printed in U S A First printing December 2013 Trademarks Real Time Innovations RTI and Connext are trademarks or registered trademarks of Real Time Innovations Inc All other trademarks used in this document are the property of their respective owners Copy and Use Restrictions No part of this publication may be reproduced stored in a retrieval system or transmitted in any form including electronic mechanical photocopy and facsimile without the prior written permission of Real Time Innovations Inc The software described in this document is furnished under and subject to the RTI software license agreement The software may be used or copied only under the terms of the license agreement Third Party Copyright Notices Portions of this product include software derived from Fnmatch c 1989 1993 1994 The Regents of the University of California All rights reserved The Regents and contributors provide this software as is without warranty Technical Support Real Time Innovations Inc 232 E Java Drive Sunnyvale CA 94089 Phone 408 990 7444 Email support rti com Website http www rti com support Contents Welcome to RTI Recording Service 2 Using Recording Console 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 3 1 3 2 3 3 4 1 4 2 4 3
50. Tool s Partition QoS Policy Section 53 1 RECORDER RESUME Instructs the Record tool to resume recording of previously paused entities based on the contents of the message pi a RECORDER PING Instructs the Record tool to send the recording model to the Remote Control application To RECORDER INFO When the Record tool publishes statistics it periodically sends Your Connext Remote out this message type Control Application From RECORDER Indicates that this message is a response to a command RESPONSE The Record tool a The recording model is an XML representation of two aspects of the Record tool 1 The configuration model the XML configuration similar to the XML configuration file used to configure the Record tool and 2 The run time model an XML description of the entities that have been created based on the configuration Note that only a a minimal model is returned the QoS are not returned changing its Partition QoS too For details on the Partition QoS Policy see the RTI Connext Core Libraries and Utilities User s Manual You can change the Partition QoS for any or all Record Groups by using the RTI_LRECORDER_ADMIN_PARTITION message type This command needs the following information I A collection of partition strings to be applied As described in the RTI Connext Core Librar ies and Utilities User s Manual the partitions can be POSIX regular expressions If no parti tion string is specified the d
51. TopicGroup called ColorsOfSquares that will only include Topics named Square For the recorded Topics only the color field will be recorded The DataRead ers for the matching Topics will have default QoS settings except that the Reliability QoS s kind will be DDS_RELIABLE_RELIABILITY_QOS lt topic_group name ColorsOfSquares gt lt topics gt lt topic_expr gt Square lt topic_expr gt lt topics gt lt field_expr gt color lt field_expr gt lt datareader_qos gt lt reliability gt lt kind gt DDS RELIABLE RELIABILITY QOS lt kind gt lt reliability gt lt datareader_qos gt lt topic_group gt The following example creates a TopicGroup called AllMinusCircleAndSquare that will include all Topics except Circle and Square For the recorded Topics all fields will be recorded lt topic_group name Al1lMinusCircleAndSquare gt lt topics gt lt topic_expr gt lt topic_expr gt lt exemption gt Circle Square lt exemption gt lt topics gt lt field_expr gt lt field_expr gt lt topic_group gt Notes Topics are never removed from a TopicGroup The resources used to create DataReaders for discovered Topics are not released if when the Topics are deleted L The Record tool will ignore Topics published with a type that conflicts with an already discovered type Create Index Syntax SQLite indexes may improve performance on certain SQL queries The Replay tool creates
52. _peers field lt domain name mydomain gt lt domain_id gt 68 lt domain_id gt lt deserialize mode gt RTIDDS DESERIALZEMODE NEVER lt deserialize mode gt lt participant_qos gt lt discovery gt lt accept_unknown_peers gt false lt accept_unknown_peers gt lt discovery gt lt participant_qos gt lt domain gt Enabling Monitoring Library in the Record Tool RTI Monitoring Library enables Connext applications to provide monitoring data The monitoring data can be visualized with RTI Monitor a separate GUI application that can run on the same host as Monitoring Library or on a different host Recording Service is statically linked to Monitor ing Library you do not have to install it separately To enable monitoring in the Record tool modify the participants QoS in the XML configuration to include the rti monitor library property with a value of rtimonitoring For example lt domain name domain0 gt lt participant_qos gt lt property gt lt value gt lt element gt lt name gt rti monitor library lt name gt lt value gt rtimonitoring lt value gt lt propagate gt false lt propagate gt lt element gt lt value gt lt property gt lt participant_qos gt lt domain_id gt 0 lt domain_id gt lt domain gt See also Enabling Monitoring Library with Replay Section 7 4 1 Recording Large User Data Types When the Record tool records serialized user data each primitive type in the topic s
53. ables A shared table means that Topics with the same name are stored in the same table regardless of where it was recorded from In this case the table has an additional column table_prefix which stores the table prefix in the form RecordGroup Name DomainName Default False exclusive topics lt topics gt lt topic_expr gt POSIX fn expression lt topic_expr gt lt topics gt Required Specifies a topic expression and any exemptions to that expression See Table 4 14 Topics Properties Table 4 14 Topics Properties Properties under lt topics gt Syntax Description topic_expr lt topic_expr gt lt topic_expr gt POSIX fn expression 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 match Default Null 4 28 TopicGroup Properties 4 8 1 For example the following creates a TopicGroup called AllTopics which will include all discov ered Topics From those Topics all fields will be recorded This example does not specify the optional datareader_qos property so it will use default DataReader QoS settings lt topic_group name AllTopics gt lt topics gt lt topic_expr gt lt topic_expr gt lt topics gt lt field_expr gt lt field_expr gt lt topic_group gt This next example creates a
54. ables cre ated by the Record tool tags lt DCPSParticipant_topic gt lt DCPSPublication_topic gt and lt DCPSSubscription_topic gt In any of the tables if you decide to exclude all fields for example lt excluded gt lt field gt lt field gt lt excluded gt the table will not be created that is if a table would end up with no columns the Record tool won t create it The field selection settings also apply to user topic tables The tag used to define those settings is called lt user_topic_metadata_fields gt it can be used inside lt recorder_database gt to define gen eral settings and inside lt record_group gt to define settings that apply only to a specific Record Group Record Group settings take precedence over general database settings These settings are described in Table 4 4 Database Properties and Table 4 15 RecordGroup Properties Field Selection Examples This section shows some examples of how to configure field selection settings for the Record tool The following is a basic recording configuration used as the starting point for the examples It is based on the default configuration shipped with the product see the file RTI_LRECORDING_SERVICE xml in the resource xml directory lt recorder name basic gt lt The replay compatibility flag tells the Record tool that the fields needed by Replay must be preserved regardless of the field selection configuration gt lt replay_compatibili
55. age types listed in Table 5 1 The code fragment in Figure 5 4 shows how to set the message type in the remote access appli cation Depending on the message type the correct union member must also be filled in For example Figure 5 5 shows how to construct a message to the Record tool to read a new configuration from a file In this example the new configuration is to be read from a file on the same file system as the Record tool Figure 5 4 Assigning a Message Type C Language RTIRecorderAdminMessage msg NULL msg RTIRecorderAdminMessagePlugin_ create _sample Handle creation errors if msg NULL msg gt msg d RTI_RECORDER_ADMIN START 5 4 Remote Control Messages Figure 5 5 Sending a Command to the Record Tool to Read a New Configuration File 5 3 1 RTIRecorderAdminMessage msg NULL DDS_ReturnCode_t retcode struct DDS SampleInfo info msg RTIRemoteCtxMsgPlugin create _sample Handle creation errors if msg NULL msg gt msg d RTI_RECORDER_ADMIN CONFIGURE This is the last part of the configuration If the configuration spans multiple samples then only the last one should have this set to TRUE msg gt msg u config final_config DDS BOOLEAN TRUE Tell the Record Tool that the filename to read from follows in the config from_string text string msg gt msg u config config from_file DDS BOOLEAN TRUE Copy the name of file that
56. alue meaning 100 000 DDS_UnsignedLong 0 4294967296 O Oxffffffff A 32 bit unsigned integer You may include the following unit designations KB 2410 kB 1043 MB 106 GB 1049 KiB 2410 MiB 2420 GiB 2430 For example 100 kB is a legal value meaning 100 000 DDS_QosPolicy See the RTI Connext Core Librar ies and Utilities C API Reference HTML documentation for the structure of each QoS policy and the RTI Connext Core Librar ies and Utilities User s Manual s chapter on Configuring QoS with XML Each field in each QoS policy structure has a corre sponding tag The tag is the same as the field name in the RTI Connext Core Libraries and Utilities C API For enumerations the legal constants are those defined for the Connext C API For example lt subscriber qgos gt lt presentation gt lt access_ scope gt DDS_TOPIC PRESENTATION QOS lt access_scope gt lt presentation gt lt partition gt lt name gt lt element gt rti lt element gt lt name gt lt partition gt lt subscriber_qos gt The above configuration will set a the Presentation QoS policy s access_scope field to DDS_TOPIC_PRESENTATION_QOS and b the Partition QoS policy s name field to rti name is a sequence of strings which requires using the lt element gt tag also described in this table General Properties for the Record Tool Table 4 1 Prope
57. ame gt lt topic_name gt lt domain_name gt domain0Extended lt domain_name gt lt record_group_name gt lt record_group_name gt lt type_name gt lt type name gt lt input gt lt replay_topic gt lt session gt lt replay_database gt lt replay_service gt In the above configuration there are two Replay database entities each replaying the base and the extended version of the topics respectively This is done by specifying the adequate domain name in the lt replay_topic gt lt input gt lt domain_name gt tags one database replays domain domain0Base and the other one replays domain0Extended For each of these database enti ties different XML Type Configuration settings are provided Topics Circle Square and Tri angle are mapped to the type ShapeType in the base Database entity and they are mapped to the type ShapeTypeExtended in the extended Database entity Note There is a known issue when accessing the same database file from different Replay data base entities when the indexes haven t been created yet There are three ways to avoid this 7 18 Recording Service Integration with Extensible Types 1 Record with the lt recorder_database gt lt create_index gt flag set to true so that the indexes are created by Recording Service while recording 2 Set the lt replay_database gt lt readonly gt to true This will disable write mode access to the database and thus indexes won t be created
58. ame must match a name from a lt replay_database gt tag in the configura tion file that you specified when starting the Replay tool such as lt replay database name simple_ config gt Similarly if you specify a session name it must match a name from a lt session gt tag within the specified database such as lt session name A_ Session gt If you specify a topic name it must match a name from a lt replay_topic gt tag within the specified session such as lt replay topic name All_ Topic gt If you do not specify an entity the command is applied to the replay service itself L value depends on the command see Table 8 2 Not all commands require a value Table 8 2 Replay Shell s Commands Command Description exit Exits the shell goto Repositions an entity to a specific point in the playback range relative to the entity s start and end times This command takes a timestamp argument which is a string of digits of the form SSSSSSSSSSUUUUUU The first ten digits specify seconds and the last six digits specify microseconds pause Pauses replay of an entity query Returns the status of an entity including e Ifthe entity is enabled started pending paused and completed e The number of child topics owned by the entity e The number of active child topics owned by the entity The format of this status is ccccc dd dd where each c is either T or F and dd is a
59. are RecordGroup domain0Base where it would record only the samples published with the base type version and table Square RecordGroup domain0Extended which would contain only the samples published with the extended type version of Shapes Note Because of a known issue for the Replay tool to work properly with the databases created with the above settings replaying different topics with their recorded version requires concur rent access to the database from different Replay database entitites we need to enable the lt create_index gt flag in Recording Service so the index is created beforehand lt recorder_ database gt lt database name gt shapes dat lt database_name gt lt create index gt true lt create_index gt lt recorder_database gt 1 RTI Issue ID RECORD 318 4 41 Chapter 5 Accessing the Record Tool from a Remote 5 1 Location Perhaps you want to start stop the Record tool from another machine or even reconfigure it to change what is being recorded You can create a Connext application that can remotely control the Record tool This chapter explains how To control the Record tool from a remote location 1 Configure the Record tool to allow remote access see Recording Service Integration with Extensible Types Section 4 10 2 Create a Connext application using the provided rtirecord idl file You will use rtiddsgen to generate the basics and then add code to send your desired remote commands O
60. ation properties used to define how a type found in the files has to be registered by Recorder in the Domain Participants See Table 7 15 Type Registration Prop erties 7 14 Recording Service Integration with Extensible Types Table 7 15 Type Registration Properties 7 10 7 10 1 Properties under ee Syntax Description lt type gt lt element gt Whether or not to register this type s canonical name nici t lt register top level gt as defined in tag type_name with the DomainPar eae i a Boolean ticipant This name is registered alongside any of the lt register top level gt registration type names defined in tag registered_type_name above Default TRUE lt registered_ type name gt 1 t r j p ee When registering the type with the DomainPartici registered _ Registration f f hte ey ee ae pant this setting defines a list of names to register type_ g the type with The element tag can be repeated lt element gt lt registered_type name gt This is a list of regular POSIX fn name expressions every lt element gt entry is equivalent to an lt topics gt i i expression A topic whose name matches any of the lt element gt F 3 i i expressions will be recorded using the type topics Topic name string oaia definition designated by lt type_name gt If a topic lt element gt f R matches more than one expression in different lt topics gt p
61. base name gt rti_recorder_default dat lt database_name gt lt Field selection settings for user topic tables We use the name of the source timestamp field in the included section so it will be recorded with every user data sample gt lt user topic_metadata_fields gt lt included gt lt field gt SampleInfo_ source timestamp lt field gt lt included gt lt user_topic_metadata_fields gt lt recorder_database gt lt domain name domain0 gt lt domain_id gt 0 lt domain_id gt lt deserialize mode gt RTIDDS DESERIALIZEMODE ALWAYS lt deserialize_mode gt lt domain gt lt topic_group name AllTopicsExceptKeyed gt lt topics gt lt topic_expr gt lt topic_expr gt lt IMPORTANT By using an exemption expression we make the 2 available Topic Groups disjoint gt lt exemption gt Keyed lt exemption gt lt topics gt lt field_expr gt lt field_expr gt lt topic_group gt lt topic_group name KeyedTopics gt lt topics gt lt IMPORTANT The match expression for this Topic Group is exactly the exemption expression in the other Topic Group AllTopicsExceptKeyed gt lt topic_expr gt Keyed lt topic_expr gt lt topics gt lt field_expr gt lt field_expr gt lt topic_group gt 4 18 Database Output File Properties lt The following Record Group will inherit the user topic field selection settings in the database configuration meaning tha
62. bles lt user topic metadata_fields gt tg A field expression is a POSIX fnmatch expres lt included gt lt fields sion to match field names as described in field expression Appendix A e g SampleInfo_ will match all lt field gt Sample Info specific fields There is no upper a limit in the number of lt field gt expressions to be user_topic_ lt included gt specified metadata_fields lt excluded gt The included and excluded fields are lt field gt optional If both are defined the included field expression expressions are processed before the excluded lt field gt ones J xcluded gt User topic field settings can also be expressed in the Database settings see Table 4 4 How ever Record Group settings take precedence over general database settings defined there lt user_topic_metadata_fields gt For example the following creates a RecordGroup called RecordAll which will include all members of TopicGroup All that are discovered on Domain MyDomain This example does not specify the optional subscriber_qos property so it will use default Subscriber QoS settings lt record group name RecordAl1 gt lt topic ref gt lt element gt AllTopics lt element gt lt topic_ref gt lt domain_ref gt lt element gt MyDomain lt element gt lt domain_ref gt lt record_group gt Note A RecordGroup can refer to multiple domains and multiple TopicGroups However a Re
63. cal name fully qualified name in the XML file of the type I Second if there is no XML type definition the Replay tool will first try to get a candidate registered type name as follows 1 2 The type name explicitly defined by the user in lt replay_topic gt lt input gt lt type_name gt If there is no explicit type name the Replay tool will try to get the name using the col umn type_name in the DCPSPublication table If the name is not unique the Replay tool will report an error I Third if a valid registered type name was obtained the Replay tool will try to get a type definition TypeCode associated with the given registered type name as follows 1 2 Using the type definitions under lt type_config gt If there is no type definition available in XML the tool will try to get the type defini tion using the typecode column in the CDPSPublication table If there is no available or unique type definition the Replay tool will report an error 7 8 Time Control Properties 7 7 Table 7 8 Time Control Properties The lt time_control gt element can be applied to any of Replay s major entities lt replay_service gt lt replay_database gt lt session gt and lt replay_topic gt L The index time of the lt replay_service gt is the earliest index time of all of its component replay_database entities LI The index time of a lt replay_database gt is the earliest timestamp of the database take
64. configuration that can be used with the tutorial found in the Recording Service Getting Started Guide to learn about how to modify the Record tool while it is running 4 2 1 Configuration File Syntax Recording Service follows the same XML syntax rules as Connext Please see the RTI Connext Core Libraries and Utilities User s Manual for details 4 2 2 Supported Data Types As you will see in the following sections each property that can appear in the configuration file uses a specific data type The Record tool converts between the value string in the XML file and the specified type Table 4 1 lists the supported types and the mappings used by the Record tool Table 4 1 Property Value Data Types Type Format Notes char and octet Compact form sequences and arrays yes 1 true on TRUE These values are not case sensitive no 0 false off FALSE DDS_Boolean Enum values are not case sensitive Legal values are those listed for the property in the C API Reference HTML documentation for the RTI Con next Core Libraries and Utilities DDS_Enum A string General Format Table 4 1 Property Value Data Types Type Format Notes A 32 bit signed integer You may include the following unit designations KB 2410 kB 1043 DDS L 2147483648 2147483647 MB 1046 PESAR 0x80000000 Ox7fffffff GB 10 9 KiB 2410 MiB 2420 GiB 2430 For example 100 kB is a legal v
65. configuration that generated the discovery traffic Table A 3 Fields Available to Store in DCPSPublication Tables Field Name SOL Type SampleInfo_reception_timestamp INTEGER SampleInfo_source_timestamp INTEGER SampleInfo_valid_data INTEGER PublicationData_typecode_length INTEGER PublicationData_topic_name TEXT PublicationData_type_name TEXT PublicationData_typecode BLOB PublicationData_key_0 INTEGER PublicationData_key_1 INTEGER PublicationData_key_2 INTEGER PublicationData_key_3 INTEGER PublicationData_participant_key_0 INTEGER PublicationData_participant_key_1 INTEGER PublicationData_participant_key_2 INTEGER PublicationData_participant_key_3 INTEGER A 3 DCPSPublication Table Discovery Table A 3 Fields Available to Store in DCPSPublication Tables Field Name SQL Type PublicationData_topic_data BLOB PublicationData_destination_order_kind INTEGER PublicationData_destination_order_scope INTEGER PublicationData_destination_order_source_timestamp_tolerance INTEGER PublicationData_presentation_access_scope INTEGER PublicationData_presentation_coherent_access INTEGER PublicationData_presentation_ordered_access INTEGER PublicationData_partition TEXT PublicationData_group_data BLOB PublicationData_publisher_key_0 INTEGE
66. cord tool until the Record tool re establishes remote access If remote access is not enabled in the new configuration Record Shell will not reconnect to the Record tool The configure command has the following format configure lt cfg name gt localfile remotefile lt file gt The configuration name lt cfg_name gt is used to find the matching lt recorder gt tag to load LI localfile lt filename gt Example Assume that you want to the Record tool to use a configuration file called myconfig xml which is local to the Record Shell RTI Record Shell gt stop RTI Record Shell gt configure myrecord localfile myconfig xml The Record Shell will read the contents of myconfig xml and send it to the Record tool which will search for a tag lt record name myrecord gt If auto_start see Table 4 2 General Properties is true the default case it is not necessary to run the start com mand to start the Record tool If auto_start is false in the new configuration then issue the start command in the Record Shell to start recording RTI Record Shell gt start L remotefile lt filename gt To configure the Record tool with the contents of a file that is local to the Record tool use the remotefile lt filename gt option For example assume that you want reconfigure the Record tool with a file called remote myconfig xml which resides on the same file system as the Record tool RTI Record Shells stop RTI Recor
67. cordGroup will only record one of each matching Topic from a Domain If multiple matches occur only the first one will be recorded If you need to record the same Topic from the same domain using different QoS policies you should use different TopicGroups and RecordGroups 4 34 Recording Service Integration with Extensible Types 4 10 4 10 1 Recording Service Integration with Extensible Types Recording Service includes partial support for the Extensible and Dynamic Topic Types for DDS specification from the Object Management Group OMG This section assumes that you are familiar with Extensible Types and you have read the RTI Connext Core Libraries and Utilities Get ting Started Guide Addendum for Extensible Types This support allows systems to define data types in a more flexible way and to evolve data types over time without giving up portability interoperability or the expressiveness of the DDS type system With Extensible Types different type definitions for the same type name may be discovered by the Record tool during execution The tool s default behavior is to register the first type defini tion type code found for a type If you have RTI Connext Core Libraries and Utilities you can learn more in the RTI Connext Core Libraries and Utilities Getting Started Guide Addendum for Extensible Types E Recording Service can subscribe to topics associated with optional final mutable and extensible types L
68. d Note that a TopicGroup is not bound to a particular domain yet In this example the TopicGroup All means all fields in all Topics gt lt topic_group name All1 gt lt topics gt lt topic_expr gt lt topic_expr gt lt topics gt lt field_expr gt lt field_expr gt 4 2 General Format lt topic_group gt lt Create a RecordGroup A RecordGroup controls which TopicGroups are recorded for a set of domains Each recorded Topic is stored in a table with the format record_group domain Topic In this example we want to record data from topics in TopicGroup All from domainO gt lt record group name RecordAl1 gt lt specify which domains to record from gt lt domain_ref gt lt element gt domain0 lt element gt lt domain_ref gt lt specify which topics to record gt lt topic_ref gt lt element gt All lt element gt lt topic ref gt lt record_group gt lt recorder gt lt dds gt Example configuration files are provided in the examples record directory L simple_config xml With this configuration the Record tool will record all fields from all topics in a specified domain domain ID 0 L advanced_config xml With this configuration the Record tool will record e The x and y fields from all Topics named Square in domains 0 and 1 The color field from all Topics in domains 0 and 1 L remote_shell xml This configuration file provides a
69. d mydomaindata_0_0 By default the Record tool will store deserialized data so the file will have one column for each field in the topic How To Record a Subset of Data from Multiple Domains Scenario You have a system with multiple domains including domain IDs 54 and 98 and hundreds of topics whose names contain Sensor such as TemperatureSensor HeatSensor SensorTypes etc in addition to hundreds of other topics You only want to record the topics that start with Sensor and from each of these topics you only want to record the fields whose name includes value such as value_max value_min current_value Configuration File lt dds gt lt recorder name scenario2 gt lt recorder database gt lt database name gt mydomaindata lt database_ name gt lt max_file size gt 1 GB lt max_file_ size gt lt recorder_database gt lt domain name mydomain54 gt lt domain_id gt 54 lt domain_id gt lt domain gt lt domain name mydomain98 gt lt domain_id gt 98 lt domain_id gt lt domain gt lt topic_group name Sensor gt lt topics gt lt topic_expr gt Sensor lt topic_expr gt lt topics gt lt field_expr gt value lt field_expr gt lt topic_group gt lt record group name sub0 gt lt domain_ref gt lt element gt mydomain54 lt element gt lt domain_ref gt lt topic_ref gt lt element gt All lt element gt lt topic_ref gt lt record_group gt lt
70. d Shell gt configure myrecord remotefile remotemyconfig xml The Record tool will read the contents of remotemyconfig xml and reconfigure with the contents of the tag lt record name myrecord gt Depending on the configuration file it may be necessary to start it RTI Record Shell gt start 5 13 Using the Example Remote Access Application Record Shell 5 4 1 3 5 4 1 4 5 4 1 5 5 4 1 6 5 4 1 7 5 4 1 8 5 4 1 9 5 4 1 10 delete This command deletes entities from the Record tool The delete command has the following format delete lt model gt exit This command exits the Record Shell RTI Record Shell gt exit info This command shows you which Record tool session the Record Shell is connected to The output looks similar to this STATE Connected to 0a0a6 4fe 006bbe00 GUID Oa0a64fe 006bbb00 L STATE Which DomainParticipant the Record tool is connected to HOSTID APPID L GUID The GUID of the Record Shell itself model This command prints the current model of the Record tool RTI Record Shell gt model pause This command pauses the recording of entities in the Record tool The pause command has the following format pause lt model gt resume This command resumes the recording of already paused entities in the Record tool The resume command has the following format resume lt model gt shutdown This command causes the Record tool to shut down and terminate T
71. each column SQLite can only access one of the indexes for the SELECT statement and will only benefit from the use of indexes for one of the search terms Avoid Excessive Indexes Each index added to the database has a performance cost L Every additional index takes up some additional space in the database L INSERT and UPDATE statements have to modify both the original table and every index associated with it The performance of INSERT and UPDATE decreases linearly with the number of indexes L Compilation of the SQL statements takes longer when there are more indexes for the compiler to choose from LI More indexes to choose from bigger the chance the optimizer selects a suboptimal index for a query Avoid redundant indexes where possible If for a certain table we have index 1 indexing on col umns x y and index 2 indexing on columns x y z then index 1 is redundant and can be elimi nated Use Indexes to Improve Performance of ORDER BY Clauses To evaluate statements containing ORDER BY classes SQLite first puts all the results of the SELECT statement in a temporary table then sorts the temporary table according to the ORDER BY clause columns This can be time consuming Whenever possible SQLite tries to avoid stor ing and then sorting the result set it does this by using an index that makes the results of the SELECT statement appear in order To force this to happen provide the table with an index that indexes all the column
72. ed see TopicGroup Properties Section 4 8 The fields selected for recording can be modified using the lt user_topic_metadata_fields gt tag in both the Database Output File Properties Section 4 5 and RecordGroup Properties Section 4 9 in the Recorder configuration The name and SQL type for all the fields that can be recorded appear in Appendix 3 3 Chapter 4 Configuring the Record Tool 4 1 When you start the Record tool you may specify a configuration file in XML format it is not required In that file you can set properties that control what to record how to record and where to save the recorded data This chapter describes how to write a configuration file How to Load the XML Configuration The Record tool loads its XML configuration from multiple locations This section presents the various approaches listed in load order The first three locations only contain QoS Profiles and are inherited from Connext see Chapter 15 in the RTI Connext Core Libraries and Utilities User s Manual 1 NDDSHOME resource qos_profiles_5 x y xml NDDS_QOS_PROFILES xml This file contains the Connext default QoS values it is loaded automatically if it exists First to be loaded T File in NDDS_QOS_PROFILES The files or XML strings separated by semicolons referenced in this environment vari able are loaded automatically L lt working directory gt USER_QOS_PROFILES xml This file is loaded automatically if it exi
73. ed with a maximum length of 256 characters PARTITION_MAX_LENGTH In a similar way a maximum of 256 expressions to match Record Group names MAX_RECORD_GROUP_EXPRESSIONS can be specified with a maximum length of 256 characters RECORD_GROUP_EXPRESSION_MAX_LENGTRH The following code snippet in C shows how to prepare and send a partition update command to the Record tool so that all the Record Groups in the configuration join partition A RTIRemoteCtxMsgDataWriter messageWriter NULL RTIRemoteCtxMsg message NULL DDS ReturnCode_t retcode Initialize the DDS entities used for the communication Create the message instance to be written to the tool message RTIRemoteCtxMsgTypeSupport create data if message NULL Error handling Set the destination information for broadcast commands all zeroes Set the destination mask as empty too message gt destination app id 0 message gt destination host_id 0 message gt destination instance_id 0 message gt destination_mask 0 Set the type of the message to be a partition message message gt msg d RTI_REMOTECTX MSG RECORDER PARTITION Set the message ID here we set it to zero for simplicity but this value should be auto incremented with every new command sent to the tool in order to correlate the commands with their responses message gt msg_id 0 To send a partition update command for all Record Gro
74. efault 0 lt domain_id gt Configures the DomainParticipant s QoS policies See the lt participant_qos gt RTI Connext Core Libraries and Utilities User s Manual s chap participant_qos DDS_QosPolicy ter on Configuring QoS with XML lt participant_qos gt Defaults See the RTI Connext Core Libraries and Utilities API Reference HTML documentation on DomainParticipants 7 4 1 Enabling Monitoring Library with Replay This section only applies if you want to use RTI Monitoring Library a separate RTI Connext com ponent that enables Connext applications to provide monitoring data The monitoring data can be visualized with RTI Monitor a separate GUI application that can run on the same host as Monitoring Library or on a different host Recording Service is statically linked to Monitoring Library you do not have to install it separately To enable monitoring in the Replay tool use the same approach described in Enabling Monitor ing Library in the Record Tool Section 4 7 1 In the lt replay_database gt section include the rti monitor library property with the value rtimonitoring For example lt participant gt lt domain_id gt 0 lt domain_id gt lt participant_qos gt lt property gt lt value gt lt element gt lt name gt rti monitor library lt name gt lt value gt rtimonitoring lt value gt lt propagate gt false lt propagate gt lt element gt lt value gt lt property gt lt participant_qos gt lt part
75. efault partition empty is applied Remote Control Messages LI A collection of Record Group names or regular expressions matching Record Group names for which the partitions will be applied The partitions will be applied to all the DDS Subscribers created for the matching Record Groups If no Record Group string is specified the partitions are applied to all the Record Groups in the Record tool s configu ration The partition update command is absolute meaning that current partitions that are active for the matching Record Groups will be discarded and the new ones will be applied instead For example if a Record Group is already joined to partition A in order to have the Record Group join A and B the command will need to specify both A and B in their partition string col lection Partition updates are applied per Record Group If a Record Group is linked with multiple DomainParticipants the Partition QoS policy will be updated for each Subscriber created for each of the Record Group s associated DomainParticipants For example consider the following configuration lt recorder gt lt domain name Domain0o gt lt domain_id gt 0 lt domain_id gt lt domain gt lt domain name Domaini gt lt domain_id gt 1 lt domain_id gt lt domain gt lt record group name RecordGroup gt lt domain_ref gt lt element gt DomainO lt element gt lt element gt Domainl lt element gt lt domain_re
76. elds of the sample data are recorded as Replay is unable to replay partial data Note SQLite is unable to look at the individual fields in the sample data of files recorded in seri alized mode Starting the Replay Tool Open a command prompt and change to the lt install dir gt scripts directory Then enter gt rtireplay cfgFile lt file gt cfgName lt configuration gt Table 6 1 describes the command line options and which ones are required Stopping the Replay Tool To stop the Replay tool use lt Control c gt 1 On Windows systems from the Start menu select Accessories Command Prompt 6 1 Performance and Indexing Table 6 1 6 4 Replay Tool s Command line Options Command line Option Description appName lt name gt Specifies an application name which is used to identify the application for remote administration Default cfg Name cfgFile lt file gt Required Used to identify the XML configuration file cfgName lt name gt Required Identifies the configuration within the XML configuration file The Replay tool will load the lt replay_service gt with the same name as this value domainIdBase lt int gt forceXmlTypes help Adds this value to the domain IDs in the configuration file Default 0 When used with XML Type Configuration this option instructs Replay to always use type code from the XML file even if an alternate is avai
77. element gt lt topics gt lt element gt lt type gt lt element gt lt file_group gt lt path gt lt element gt lt element gt lt path gt lt xml gt lt type_config gt lt participant gt lt domain_id gt 0 lt domain_ids gt lt participant gt lt session name baseShapeTypeReplay Session gt lt replay_ topic gt lt input gt lt topic_name gt lt topic_name gt lt domain_name gt lt domain_name gt lt record group name gt lt record_group_name gt lt type_name gt lt type_name gt lt input gt lt replay_topic gt lt session gt lt replay_database gt lt replay_service gt The example uses the same ShapeType xml file defined in Selecting a Type Version For a Topic T In a Recording Domain Section 4 10 1 and Recording Two Versions of a Type in Different Tables in Same Database Section 4 10 2 By using the lt topics gt tag see Table 7 15 Type Regis tration Properties in the lt type gt settings in the XML Type Configuration we make a direct 7 16 Recording Service Integration with Extensible Types 7 10 2 mapping of the topics to the type to be used for replay The above configuration will result in all Shapes Demo topics being replayed with the base ShapeType type definition Replaying Topics with Different Type Versions Stored in Different Tables If the Record tool was set up to record each type version for a topic in its own table see Record ing Two
78. epen e e E e ae 3 1 Stopping the Record Tool meena sirieni ie ai E E RE EEE EE E A E a EEE E 3 2 Format of the Recorded Dat aonnann ia a a a aa ee he p aaa sit 3 2 Seoul gt DISCOVERY Dalal EAE E A E RTRS 3 2 202 Usera tatanen i N a ae e a a tia tla cio a E a EN 3 3 Configuring the Record Tool How to Load the XML Configuration sssssessessessesssesiseestissessetensisnesnsstensissesntetennisnesneenieneenesneess 4 1 General Format 2 i nis ksie lain id a aa aa ara a a a a airas 4 2 421 Configuration File Sy taX ipsae aeina aiena e a aTa 4 3 42 2 Supported Data Ty POs esi neiise oien aa yeaa EREE a aa ST EE REA A Ei Ei 4 3 General Properties for the Record Tool ss sssssessssssessesiessessessetensisnesnestensessisnsntinniesesnneneeneenreneess 4 5 Remote Access Properties cccecsseessseseseseseeesscseesessesescsseseecsesesessesescsenesesecsesessseessscsseeesseaeseneeeeees 4 6 4 4 1 Enabling RTI Distributed Logger in the Record Tool ccccccsesseeesesssesesesceseneeseeeee 4 7 iii 4 5 4 6 4 7 4 8 4 9 4 10 Database Output File PrOpertieg sssi iniyon enanos bienan aneas ae eaeh Ii Raen OS EEOSE 4 7 4 5 1 Choosing Which SampleInfo and Discovery Fields to Record ccceseeeseseseeeseeeees 4 13 Domain Type Configuration c iccect sscdsctivecoccectietevepsstosareestcbedvevietsbesocbanssbotbeedhshacbees A a 4 21 Domain Properties fesse scien Sse sevens el sae RN O NA A N A A D 4 24 4
79. erties The Replay tool can be controlled remotely by either the rtireplaysh utility or by a Connext appli cation that reads and writes the remote administration topic For security reasons Remote Administration is turned off in the Replay tool by default The Remote Administration section of the configuration file is used to enable Remote Adminis tration and configure its behavior This section is not required in the configuration file The rtireplaysh utility or a remote application can send commands to the Replay tool to L Start stop pause resume step the Replay tool or any of its individual entities L Change the speed of replay of the Replay tool or any of its individual entities L Query the status of the Replay tool or any of its individual entities I Reposition the Replay tool or any of its entities to any point in the replay range specified for playback Performance and Indexing Section 6 4 describes the command format and individual com mands available in rtireplaysh Replay s remote administration utility Table 7 11 describes the Remote Administration properties All remote administration properties are optional All Remote Administration properties must be specified inside lt administration gt and lt admin istration gt tags Enabling RTI Distributed Logger in the Replay Tool The Replay tool provides integrated support for RTI Distributed Logger When you enable Distributed Logger the Replay tool will pub
80. f Data from Multiple Domains Section 11 2 I How To Record Data to Multiple Files Section 11 3 LJ How To Record Serialized Data Section 11 4 I How To Record Using Best Effort Reliability Section 11 5 J How To Enable Remote Access Section 11 6 11 1 How to Record All Topics in a Single Domain Scenario You have a system with several nodes using domain ID 54 You want all the data in this system to be recorded to a single file called mydomaindata When the file is full recording should stop The typecodes are available from the system Configuration File lt dds gt lt recorder name scenariol gt lt recorder database gt lt database name gt mydomaindata lt database_ name gt lt max_file size gt 1 GB lt max_file_ size gt lt recorder_database gt lt domain name mydomain gt lt domain_id gt 54 lt domain_ids gt lt domain gt lt topic_group name All1 gt lt topics gt lt topic_expr gt lt topic_expr gt lt topics gt lt field_expr gt lt field_expr gt lt topic_group gt lt record group name sub0 gt lt domain_ref gt lt element gt mydomain lt element gt lt domain_ref gt lt topic_ref gt lt element gt All lt element gt How To Record a Subset of Data from Multiple Domains 11 2 lt topic_ref gt lt record_group gt lt recorder gt lt dds gt Expected Outcome The expected outcome is a single file about 4 GB with all the data in a file calle
81. f gt lt topic_ref gt lt element gt lt element gt lt topic_ref gt lt record_group gt lt recorder gt With the above configuration there will be two DDS DomainParticipants DomainO and Domain1 Each of these DomainParticipants will contain a Subscriber associated with the Record Group called RecordGroup Sending a partition update command specifying RecordGroup will affect the Subscribers in both DomainParticipants If you have a situation in which different partition changes need to be specified for each Subscriber you should specify separate Record Groups in the Record tool s configuration For the above example this would mean splitting the Record Group in two like this lt recorder gt lt domain name Domain0o gt lt domain_id gt 0 lt domain_id gt lt domain gt lt domain name Domaini gt lt domain_id gt 1 lt domain_id gt lt domain gt 5 7 Remote Control Messages lt record group name RecordGroupDomain0 gt lt domain_ref gt lt element gt Domain0 lt element gt lt domain_ref gt lt topic_ref gt lt element gt lt element gt lt topic_ref gt lt record_group gt lt record group name RecordGroupDomain1 gt lt domain_ref gt lt element gt Domainl lt element gt lt domain_ref gt lt topic ref gt lt element gt lt element gt s lt topic_ref gt lt record_group gt lt recorder gt This way partition update commands can
82. fault 15 seconds verbosity lt value gt Specifies what type of logging information should be printed Silent Exceptions both Connext and the Replay tool Warnings the Replay tool only Information the Replay tool only Warnings both Connext and the Replay tool Tracing the Replay tool only au PON PS Tracing both Connext and the Replay tool Default 1 The Replay Shell commands use this format lt command gt lt replay_service gt entity value where L lt command gt is one of the supported commands see Table 8 2 L lt replay_service gt is the name given to the Replay service by one of the following in descending order of precedence 1 On Windows systems from the Start menu select Accessories Command Prompt 8 1 The value specified with the appName command line option used when starting the Replay tool highest precedence e The value for the lt replay_service gt lt administration gt lt name gt element see page 7 12 e The value for the lt replay_service gt name attribute lowest precedence see Section 7 3 I entity is any one of the service entities expressed in this hierarchical form lt database name gt lt session name gt lt topic name gt Note In this release not all commands are supported for all entity levels Please see the Record ing Service Release Notes for details on which modes are currently supported The database n
83. figuration file with the lt name gt property l set number is an integer identifying the fileset specified in configuration file with the lt set number gt property L segment number is an integer identifying the file segment within the fileset The first seg ment number to use and the maximum number of segments are specified in the configu ration file with the lt segment_number gt and lt max_file_segments gt properties respectively For example mydata_5_3 means this file belongs to fileset 5 and is the 3rd segment in that file set The maximum size of a file segment whether to overwrite existing files and whether to over write the oldest file can all be set in the configuration file Table 4 4 Database Properties Properties under lt recorder_ database gt Syntax Description builtin_topic_ lt builtin_topic_metadata_fields gt lt DCPSParticipant_topic gt ParticipantData fields lt DCPSParticipant_topic gt lt DCPSPublication_topic gt Specifies which fields to include exclude in the discovery tables lt database_ name gt metadata_ PublicationData fields Galas lt DCPSPublication copies There are settings for each of the three recorded lt DCPSSubscription topic gt discovery tables described in Table 4 5 SubscriptionData fields lt DCPSSubscription_topic gt lt builtin_topic_metadata_fields gt Required The name of the fileset used to store recorded data lt da
84. form a clean shutdown You can also start stop and even reconfigure the Record tool remotely see Chapter 5 Access ing the Record Tool from a Remote Location Format of the Recorded Data This section describes the format of the recorded data For information on viewing the data see Chapter 9 Viewing Recorded Data with SQLite Discovery Data The Record tool stores discovery related data in these tables L DCPSParticipant corresponds to the Participant Built in Topic L DCPSPublication corresponds to the Publication Built in Topic L DCPSSubscription corresponds to the Subscription Built in Topic Please refer to the RTI Core Libraries and Utilities C API Reference HTML documentation for the fields in each of the corresponding builtin topics In the HTML documentation for the C API select Modules RTI Connext DDS API Reference Domain Module Built in Topics Note When using self contained database files the locator_filter column of the Publication Built in Topic Data will not be replicated The Subscription Built in Topic Data will also not be 3 2 Format of the Recorded Data 3 3 2 3 3 2 1 3 3 2 2 3 3 2 3 replicated This is done to minimize the overhead of replication when opening a new database file The fields stored for each discovery table are listed in Appendix If no field selection settings enabled the Record tool will just create the DCPSPublication table with enough information f
85. gle SRecordAl11 MyDomain You can query the tables using standard SQL syntax For example assume that the Topic Circle was recorded in RecordGroup MyGroup in domain MyDomain In this case the Record tool creates a table called CirclesMyGroup MyDomain to store all data published on Topic Circle To list all data received on Topic Circle enter sqlite gt select from CircleS MyGroup MyDomain To exit sqlite3 enter sqlite gt exit Note For more example commands please see the Chapter 4 in the Getting Started Guide 9 1 9 2 Chapter 10 Converting and Exporting Recorded Data 10 1 Recording Service includes a Converter tool that enables serialized or deserialized data recorded with the Record tool to be exported to CSV HTML or XML formats It also allows you to convert serialized data tables into deserialized data tables so that the recorded data can be easily explored via SQL SQLite in a human readable way To work with the database files created by the Record tool Converter needs the replay_compatibility flag to be turned on see Table 4 2 otherwise conversion is not guaran teed to work properly Tables that were recorded with field filters field_expr cannot be converted General Usage The executable rtirecconv is located in lt install dir gt bin lt architecture gt The script to launch Converter is lt install dir gt scripts rtirecconv The syntax for starting Converter is rtirecconv options fileset fi
86. gt lt DCPSPublication_topic gt lt DCPSSubscription_topic gt lt included gt lt field gt lt field gt lt included gt lt excluded gt lt field gt Metadata_ lt field gt lt excluded gt lt DCPSSubscription_ topic gt lt builtin_topic_metadata_fields gt lt Field selection settings for user topic tables The field expression in the included settings tells the Record tool to record all fields Sample Info and metadata Then by adding the expression Metadata_ to the excluded fields list we remove the metadata fields gt lt user topic _metadata_fields gt lt included gt lt field gt lt field gt lt includeds gt lt excluded gt lt field gt Metadata_ lt field gt lt excludeds gt lt user_topic_metadata_fields gt lt recorder_database gt 4 20 Domain Type Configuration lt domain name domain0 gt lt domain_id gt 0 lt domain_id gt lt deserialize mode gt RTIDDS DESERIALIZEMODE ALWAYS lt deserialize_mode gt lt domain gt lt topic_group name AllTopics gt lt topics gt lt topic_expr gt lt topic_expr gt lt topics gt lt field_expr gt lt field_expr gt lt topic_group gt lt record group name RecordAll1 gt lt domain_ref gt lt element gt domainO lt element gt lt domain_ref gt lt topic ref gt lt element gt AllTopics lt element gt lt topic_ref gt lt record_group gt lt recorder gt 4 6 Domain
87. gt lt enumerator name TRANSPARENT FILL gt lt enumerator name HORIZONTAL HATCH FILL gt lt enumerator name VERTICAL HATCH FILL gt lt enum gt lt struct name ShapeType gt lt member name color stringMaxLength 128 type string key true gt lt member name x type long gt lt member name y type long gt lt member name Shapesize type long gt lt struct gt lt struct name ShapeTypeExtended baseType ShapeType gt lt member name fillKind type nonBasic nonBasicTypeName ShapeFillKind gt lt member name angle type float gt lt struct gt lt types gt Using the following configuration the Record tool will always record the ShapeTypeExtended by using the XML type definition in ShapeType xml With the configuration below no informa tion from a DataWriter using ShapeTypeExtended will be lost lt dds gt lt Configuration records the extended ShapeType in domain 0 gt lt recorder name extendedShapeTypeRecorder gt lt Specify where to store the recorded data gt lt recorder_ database gt lt database name gt shapes dat lt database_name gt lt recorder_database gt lt Specify XML file that defines type structure for ShapeType gt lt domain_type_config gt lt domain_group gt lt element gt lt domain filter gt lt Specify which domains use this type definition gt lt element gt domain0 lt element gt lt domain_filter gt
88. gt lt included gt lt field gt lt field gt lt includeds gt lt DCPSPublication_topic gt lt DCPSSubscription_ topics lt included gt lt field gt lt field gt lt includeds gt lt DCPSSubscription_ topic gt lt builtin_topic_metadata_fields gt lt Field selection settings for user topic tables The field expression in the included settings tells the Record tool to record all fields Sample Info and metadata gt lt user topic _metadata_fields gt lt included gt lt field gt lt field gt lt included gt lt user_topic_metadata_fields gt lt recorder_database gt lt domain name domain0 gt lt domain_id gt 0 lt domain_id gt lt deserialize mode gt RTIDDS DESERIALIZEMODE ALWAYS lt deserialize_mode gt lt domain gt lt topic_group name AllTopics gt lt topics gt lt topic_expr gt lt topic_expr gt lt topics gt lt field_expr gt lt field_expr gt lt topic_group gt lt record group name RecordAl1 gt lt domain_ref gt lt element gt domainoO lt element gt lt domain_ref gt lt topic_ref gt lt element gt AllTopics lt element gt lt topic_ref gt lt record_group gt lt recorder gt Database Output File Properties 4 5 1 3 Example 2 Record No Extra Fields The following configuration will record only user data fields in user data tables No Sample Info or metadata fields will be recorded Moreover no discovery informat
89. has a link indicating the name of the current log file In general log files are stored here e On Windows systems My Documents RTI RTI Recording Service lt version gt console logs e On Linux systems rti RTI_Recording_Service_ lt version gt console logs Log files are named by date and time Log files are only saved if there is an error If no errors are reported the log file is deleted when Recording Console shuts down g Save a copy of the log file in a safe location and close Recording Console Review the log file and remove any sensitive information that you would prefer not to expose h Repeat the above steps to restore the logging level to the default INFO setting i Contact RTI support Click on the info button i in the lower right corner of Record ing Console to open the info panel which contains links for contacting RTI support Provide a description of the problem how to reproduce it and a copy of the log file If possible please include a screenshot that demonstrates the problem RTI s support team is very responsive you should receive a reply within 24 hours Chapter 3 Using the Record Tool 3 1 Table 3 1 Besides using Recording Console you can also record data by using the Record tool While the Console provides a simple graphical user interface GUI for using the Record tool you can also run it directly without using the Console You may find this method of recording useful when you want to t
90. he user topic tables the domain ID and the table prefix see the shared_table property in Table 4 13 for more information on table prefixes User data fields are stored after column SampleInfo_valid_data When recording in serialized format the column storing the sample is called rti_serialized_sample The sample s endianness and length are stored in columns rti_serialized_endian and rti_serialized_length respectively Fields Available to Store in User Topic Tables Field Name SOL Type SampleInfo_reception_timestamp INTEGER SampleInfo_source_timestamp INTEGER SampleInfo_valid_data INTEGER SampleInfo_publication_seq_nr INTEGER SampleInfo_subscription_seq_nr INTEGER SampleInfo_sample_state INTEGER SampleInfo_instance_state INTEGER SampleInfo_instance_handle BLOB SampleInfo_publication_handle BLOB SampleInfo_disposed_generation_count INTEGER SampleInfo_no_writers_generation_count INTEGER SampleInfo_sample_rank INTEGER SampleInfo_generation_rank INTEGER DCPSParticipant Table Discovery Table A 1 A 2 Table A 2 Fields Available to Store in DCPSParticipant Tables Fields Available to Store in User Topic Tables Field Name SQL Type SampleInfo_absolute_generation_rank INTEGER SampleInfo_original_publication_virtual_guid BLOB SampleInfo_original_publication_virtual_seq_nr INTEGER SampleInfo_related_original_publication_virtual_guid BL
91. helpful See Chapter 4 Con figuring the Record Tool Let s look at a very basic configuration just to get an idea of its contents You will learn the meaning of each line as you read the rest of this chapter lt dds gt lt replay_ service name default gt lt Optional remote administration configuration gt lt administration gt lt domain_id gt 1 lt domain_id gt lt administration gt lt time_control gt lt start_time gt 6 lt start_time gt lt time_control gt lt auto_exit gt yes lt auto_exit gt lt replay database name simple config gt lt filename gt replay database dat_0 0 lt filename gt lt Optional ParticipantQos gt lt participant gt lt domain_id gt 0 lt domain_id gt lt participant gt 7 2 General Properties for Replay 7 3 Table 7 1 lt session name simple_session gt lt time_control gt lt rate gt 2 lt rate gt lt time_control gt lt Optional PublisherQos gt lt publisher_qgos gt lt publisher_qos gt lt replay_ topic name all_topics gt lt time_ controls lt stop _time gt 26 lt stop time gt lt time_control gt lt input gt lt Required Values gt lt topic_ name gt lt topic_name gt lt type name gt lt type name gt lt record group name gt lt record_group_name gt lt domain_name gt lt domain_name gt lt input gt lt Optional Values for writing data gt lt output gt
92. his command can only be issued when the Record tool has been stopped start The start command is used to start the Record tool Note that this command only works after stopping the Record tool first since the tool is started when it is launched When the start command is given the Record tool will shut down completely delete all state and objects and start from scratch By default the Record tool will create a new fileset each time it is started Using the Example Remote Access Application Record Shell 4 1 11 4 1 12 5 4 2 status When the Record tool is configured with remote access enabled it will periodically send its cur rent status The Record Shell stores the most recent status The current status is displayed with the status command RTI Record Shell gt status The output is similar to the following Version 5 0 0 Timestamp Mon Feb 18 20 02 48 2013 States v 00 oa ee wet STOPPED Config file simple _config xml Database file simple config dat_34 3 Received bytes 86653952 Saved bytes 2127872 2 Ll Version The Record tool s version L Timestamp The timestamp of the Record tool when status message was sent M State The Record tool s state The following states are possible e IDLE e RECORDING STOPPED the Record tool has been stopped and is not recording any user data RECONFIGURE SHUTDOWN DOWNLOAD the Record tool is downloading a new configurat
93. icipant gt 7 5 Session Properties 7 5 Session Properties Table 7 4 7 6 Table 7 4 describes the Session s properties All lt session gt properties are optional except replay_topic These properties must be specified inside lt session name String gt and lt session gt tags where String is the name to be assigned to the session entity when it is created This name will be used during remote administration Session Properties Properties under lt session gt Syntax Description publisher_qos lt publisher_ qos gt DDS_QosPolicy lt publisher_qgos gt Configures the Publisher s QoS policies See the RTI Con next Core Libraries and Utilities User s Manual s chapter on Configuring QoS with XML Defaults See the RTI Connext Core Libraries and Utilities API Reference HTML documentation on Publishers replay_topic lt replay_ topic gt Replay Topic Properties lt replay_topic gt Required The configuration properties that describes the topics to be replayed and the associated DataWriter con figuration This element can be repeated See Table 7 5 Replay Topic Properties thread lt thread gt Thread Properties lt thread gt Configures the properties for the execution thread time_control lt time_ controls Time Control Properties lt time_control gt Configures the time control properties to be applied to the Session
94. ie its service into your own infrastructure or software or if you need to use its more advanced features For instance perhaps you want to run them from your own script to record periodically or to process the recorded data automatically See also I Chapter 4 Configuring the Record Tool I Chapter 5 Accessing the Record Tool from a Remote Location Starting the Record Tool Open a command prompt and change to the lt install dir gt scripts directory Then enter gt rtirecord cfgFile lt file gt cfgName lt configuration gt To see a list of available arguments enter rtirecord help To see which configurations are available use the listCfgs option rtirecord listCfgs To use your own configuration file rtirecord cfgFile config file xml cfgName my_record cfg Table 3 1 describes the command line options and which ones are required Chapter 4 Configuring the Record Tool describes the contents of the configuration file Example files are provided in the lt installation directory gt examples directory Record Tool s Command Line Options Command line Option Description a saame tool If not specified the same name used in cfgName will be used Assigns an application name to the DomainParticipants created by the Record Required setarile erties Specifies the XML configuration file path and filename tool can load other XML files see Section 4 1 In addition to the file provided usi
95. igits preceded by the escape character e g 0B If exporting to XML or HTML special reserved characters like gt lt etc are exported as their equivalent amp gt amp lt and so forth e Hex Every character is exported as two hex digits Every exported character is separated by a dash For example 0B FA 18 D3 and so on decodeOctet hex text This flag is used to specify how to export byte values in arrays or sequences e Text If the byte being exported is printable it s printed directly as a character would be printed Otherwise it s printed as two hex digits preceded by the escape character e g OB If exporting to XML or HTML special reserved charac ters like gt lt etc are exported as their equivalent amp gt amp lt and so forth e Hex default every character is exported as two hex digits Every exported character is separated by a dash For example 0B FA 18 D3 represents four bytes 10 2 Deserializing Serialized Tables 10 2 10 3 Flag Values Description Every sample that is exported includes a Timestamp field which with the reception timestamp of the sample This time stamp can be exported in two ways seas aii e epoch The timestamp in nanoseconds since January 1 1970 gmt The timestamp in GMT time format For example Fri Oct 11 17 25 03 2013 Deserializing Serialized Tables Samples stored i
96. ing the command will update the current DDS Subscribers asso ciated with matching Record Groups The same will happen when the Record tool is idle paused LL If the Record tool is stopped the command will update the stored QoS settings for the Record Groups Because the DDS subscriptions haven t been created yet when Recorder is stopped the Partition QoS settings that were updated will take effect when the Record tool is started The newly created DDS Subscribers will use the new Partition QoS set tings as received in the partition update command Note Partition updates are not instantaneous Thus the Record tool may lose samples while the partition changes take effect This behavior is not different than that of any other Connext DDS application 5 8 Remote Control Messages 5 3 1 1 Sending a Partition Update Command to the Record Tool The following is the IDL definition of the type used to specify the information in a Partition Update command const long PARTITION MAX LENGTH 256 const long MAX PARTITIONS 64 const long MAX RECORD GROUP EXPRESSIONS 256 const long RECORD GROUP EXPRESSION MAX LENGTH 256 struct RTIRecorderPartitionMessage sequence lt string lt PARTITION MAX LENGTH gt MAX PARTITIONS gt partitions sequence lt string lt RECORD GROUP_EXPRESSION MAX LENGTH gt MAX RECORD GROUP EXPRESSIONS gt recordGroupExpressions A maximum of 64 MAX_PARTITIONS partition strings can be specifi
97. ing the Record Tool from a commands lt accept broadcast _commands gt Remote Location Default True Enables or disables remote access to the Record tool aad from another application See Chapter 5 Accessing enabled DDS Boolean oa the Record Tool from a Remote Location lt enabled gt Default False remote access disabled datareader_qos lt datareader_qos gt DDS_DataReaderQos lt datareader_qos gt Configures the QoS for the DataReader created by the Record tool s Remote Access module Default default DataReader QoS settings datawriter_qos lt datawriter_qos gt DDS_DataWriterQos lt datawriter_qos gt Configures the QoS for the DataWriter created by the Record tool s Remote Access module Default Default DataWriter QoS settings lt distributed_logger gt Configures RTI Distributed Logger gee a P See Enabling RTI Distributed Logger in the Record lt distributed logger gt Tool Section 4 4 1 publish_ lt publish status _period gt Specifies in seconds the period between each sta status_ DDS_Long tus message sent by the Record tool period lt publish_status_period gt Default 1 Minimum value 1 publisher_qos lt publisher_qos gt DDS_PublisherQos lt publisher_qos gt Configures the QoS for the Publisher created by the Record tool s Remote Access module Default default Publisher QoS settings 4 6 Database Output File Properties
98. ings the Record tool only lt verbosity gt i 3 warnings Core Libraries and the Record tool 4 information the Record tool only 5 tracing the Record tool only 6 tracing Core Libraries and the Record tool 4 5 Remote Access Properties 4 4 Table 4 3 Remote Access Properties As you will see in Chapter 5 Accessing the Record Tool from a Remote Location you can create a Connext application that can remotely control the Record tool By default Remote Access is turned off in the Record tool for security reasons The Remote Access section of the configuration file is used to enable Remote Access and config ure its behavior A Remote Access section is not required in the configuration file The remote application can send commands to the Record tool that will Start stop recording I Shutdown the Record tool L Reconfigure the Record tool Table 4 3 describes the Remote Access properties All Remote Access properties must be speci fied inside lt remote_access gt and lt remote_access gt tags All remote access properties are optional unless otherwise noted Remote Access Properties Properties under dee Syntax Description lt remote_ access gt Specifies if the Record tool will accept commands that have been broadcast to any Record tool or only accept_ lt accept_broadcast_commands gt Accept commands addressed specifically to it See broadcast_ DDS_Boolean i Chapter 5 Access
99. ion M Config file The name of the file from which the Record tool read its configuration If the configuration was received with configure localfile this field is not available L Database file The file segment currently being written to LJ Received bytes Total amount of data that has been written to file L Saved bytes Total number of data that has is currently saved to file Note that if the roll over property is true then Saved bytes may be less than Received bytes stop This command stops the Record tool from recording user data RTI Record Shell gt stop Running Multiple Record Tools in the Same Domain The Record Shell can only keep track of one instance of the Record tool To control multiple copies of the Record tool in the same domain with the Record Shell run each Record tool instance in a separate partition For the first instance of the Record tool change the configuration file as follows lt remote_access gt lt enabled gt true lt enabled gt lt domain gt domainO lt domain gt lt subscriber_gos gt lt partition gt lt name gt lt element gt RecordA lt element gt lt name gt 5 15 Using the Example Remote Access Application Record Shell lt partition gt lt subscriber_ qos gt lt publisher_qos gt lt partition gt lt name gt lt element gt RecordA lt element gt lt name gt lt partition gt lt publisher_qos gt lt remote_access gt For the seco
100. ion gt lt replay_ topic gt lt input gt lt topic_name gt lt topic name gt lt domain_name gt domain0Base lt domain_name gt lt record_group_name gt lt record_group_name gt lt type_name gt lt type name gt lt input gt lt replay_topic gt lt session gt lt replay_database gt 7 17 Recording Service Integration with Extensible Types lt replay database name bothVersionsShapesReplay DatabaseExtended gt lt filename gt shapes dat_0_0 lt filename gt lt type_config gt lt xml gt lt file_ group gt lt element gt lt register_ top _level gt false lt register_top_level gt lt file name gt lt element gt ShapeType xml lt element gt lt file name gt lt type gt lt element gt lt register_ top level gt false lt register_top_level gt lt type_name gt ShapeTypeExtended lt type_ name gt lt registered_type name gt lt element gt ShapeType lt element gt lt registered_type name gt lt topics gt lt element gt Circle lt element gt lt element gt Square lt element gt lt element gt Triangle lt element gt lt topics gt lt element gt lt type gt lt element gt lt file_group gt lt path gt lt element gt lt element gt lt path gt lt xml gt lt type_config gt lt participant gt lt domain_id gt 0 lt domain_id gt lt participant gt lt session name bothVersionsShapesReplay SessionExtended gt lt replay topic gt lt input gt lt topic_n
101. ion is selected to be recorded so no discovery tables will be created The replay_compatibility flag must be disabled for this configuration to work because if enabled it would lock the Replay tool s compatibility fields and they would be recorded lt recorder name basicNoExtraFields gt lt The replay_compatibility flag must be false in this configuration otherwise it would block removal of the Replay tool compatibility set of fields gt lt replay_compatibility gt false lt replay_compatibility gt lt remote_access gt lt enabled gt true lt enabled gt lt remote_access_domain gt domain0 lt remote_access_domain gt lt distributed_logger gt lt enabled gt true lt enabled gt lt filter _level gt WARNING lt filter_level gt lt distributed_logger gt lt remote_access gt lt recorder database gt lt database name gt rti_recorder_default dat lt database_ name gt lt Field selection settings for the discovery tables DCPSParticipant DCPSPublication and DCPSSubscription The regular expression in the excluded sections tells the Record tool that ALL fields are to be skipped gt lt builtin_topic_metadata_fields gt lt DCPSParticipant topic gt lt excluded gt lt field gt lt field gt lt excluded gt lt DCPSParticipant_topic gt lt DCPSPublication_topic gt lt excluded gt lt field gt lt field gt lt excluded gt lt DCPSPublication_topic gt lt DCPSSubscrip
102. ional If you do not create one the Record tool will not record any data This is useful if you want to start the Record tool in stand by mode then you can use remote access see Section 4 10 to switch to a different configuration file one that does have a RecordGroup and start recording Table 4 15 describes the RecordGroup properties Notice that domain_ref and topic_ref are required RecordGroup properties must be specified inside lt record_group name String gt and lt record_group gt tags The name that you assign String will be used in the table name s in the database output file s 4 33 RecordGroup Properties Table 4 15 RecordGroup Properties Properties under ays P Syntax Description lt record_group gt lt domain_ref gt Required domain_tref StringSequence Specifies a sequence of references to domains skaam rei Default Null Configures the Subscriber used by the RecordGroup lt subscriber_qos gt subscriber_qos DDS_SubscriberQos lt subscriber_qos gt Default default Subscriber QoS settings See the RTI Connext Core Libraries and Utilities User s Manual for details See the chapter on Configuring QoS with XML Required lt topic_ref gt topic_ref StringSequence lt topic_ref gt Specifies a sequence of references to Topic Groups Default Null Specifies lists of included and excluded Sample Info or metadata fields in the user topic ta
103. ither by pressing the Open Folder but ton or by dragging and dropping a file from your file explorer window into the Recording configuration panel 2 3 Configuring Recording Console 4 Select one of the configurations in the file by choosing from the drop down listbox 1 Select Configured by file Configured by file 2 Select a file remote_example advanced_example 3 Select a configuration Only parts of the configuration file are used while other settings are taken from Recording Con sole L lt dds gt lt recorder gt The name attribute will be used for the launched service L lt dds gt lt recorder gt lt remote_access gt lt remote_access_domain gt This will be used for the administration domain ID L lt dds gt lt recorder gt Many of the settings from this element are used except as noted below e lt remote_access gt The domain ID is used but all other settings are replaced so that they are compatible with Recording Console s settings lt recorder_database gt This is replaced with the database file specified in Recording Console Note To stop using the configuration file and go back to the previous QoS settings select Configured without a File Return to prior configuration Configured without a file Configure by file 2 3 1 2 Using Domain 99 in External File Configurations By default Recording Console monitors and controls the Record and Replay services on domai
104. ity kind DDS RELIABLE RELIABILITY QOS wqos history kind DDS KEEP ALL HISTORY QOS dds writer RTIRemoteCtxMsgDataWriter DDS Publisher create datawriter dds_publisher dds_topic_cmd amp wgos NULL DDS STATUS MASK NONE 5 3 Remote Control Messages 5 3 Remote Control Messages The Record tool exchanges messages with your remote access application by publishing and subscribing to two special remote access topics Both topics use the same message format shown in Figure 5 3 Figure 5 3 Top Level Structure for Remote Control Messages struct RTIRecorderAdminMessage long destination_mask RTIRemoteAdminAddress destination long msg_id RTIRecorderAdminUnion msg Extensibility MUTABLE EXTENSIBILITY For complete details see the IDL file rtirecord idl in the examples directory destination_mask A field used by other RTI tools can be ignored destination The Record tool application for which the message is intended If accept_broadcast_commands is turned off this structure must match that of the Record tool If accept_broadcast_commands is turned on this structure can be a specific destina tion or all 0 s msg_id A user specified integer that identifies a particular message exchange When the Record tool sends a response to a command it will include the same msg_id that was received in the command msg A union of different message types The discriminator must be set to one of the mess
105. l names Do this with any of the files defined in any of the file groups Default TRUE File Group Properties Properties under lt file_group gt lt element gt Syntax Description file_name lt file name gt lt element gt File Name string lt element gt lt file name gt A list of file name strings specifying files containing the type definitions The element tag can be repeated max_sequence lt max_sequence gt Integer lt max_sequence gt The default sequence size in case there are unbounded sequences in the type definitions speci fied in the any of the files specified in this specific file group max_string lt max_string gt Integer lt max_string gt The default string size in case there are unbounded strings in the type definitions specified in any of the files specified in this specific file group register_top_level lt register_ top level gt Boolean lt register_ top level gt Whether or not to register the top level types found in the type definitions with their canonical names Do this with any of the files found in this specific file group The value of this setting overrides the value of the upper level setting see Table 7 13 XML Type Configuration Properties Default TRUE type lt type gt lt element gt Type Registration Properties lt element gt lt type gt Specific type properties A list of type registr
106. l must be preserved regardless of the field selection configuration In this case it s not really necessary to set it to true because we re going to ADD fields to the configuration not REMOVE them gt lt replay_compatibility gt true lt replay_compatibility gt lt remote_access gt lt enabled gt true lt enabled gt lt remote_access_domain gt domain0 lt remote_access_domain gt lt distributed_logger gt lt enabled gt true lt enabled gt lt filter _level gt WARNING lt filter_level gt lt distributed_logger gt lt remote_access gt 4 19 Database Output File Properties lt recorder database gt lt database name gt rti_recorder_default dat lt database_name gt lt Field selection settings for the discovery tables DCPSParticipant DCPSPublication and DCPSSubscription The regular expression in the included sections indicates that all fields are to be recorded By adding the expression Metadata_ to the excluded fields list we are removing the metadata fields gt lt builtin_topic_metadata_fields gt lt DCPSParticipant _topic gt lt included gt lt field gt lt field gt lt included gt lt excluded gt lt field gt Metadata_ lt field gt lt excludeds gt lt DCPSParticipant_topic gt lt DCPSPublication_topic gt lt included gt lt field gt lt field gt lt includeds gt lt excluded gt lt field gt Metadata_ lt field gt lt excludeds
107. lable from recorded data Displays this information identifyExecution Appends the host name and process ID to the appName to help using unique names noAutoEnable Use this option if you plan to enable the Replay tool remotely remoteAdministrationDomainId lt int gt Enables remote administration and sets the domain ID for the communication Default remote administration is not enabled srvName lt name gt Specifies a name that will be used to identify the service verbosity lt value gt Specifies what type of logging information should be printed 0 Silent Exceptions both Connext and the Replay tool Warnings the Replay tool only Information the Replay tool only Warnings both Connext and the Replay tool Tracing the Replay tool only Tracing both Connext and the Replay tool Default 1 Sore Ye Ne version Prints the Replay tool s version Performance and Indexing The Replay tool replays stored samples in the same order in which they were received using SQLite indexes to retrieve the samples in sorted order SQLite automatically builds indexes when opening an SQLite table for sorted access and for large tables the process of building the index may take some time To improve initialization performance the Replay tool attempts to create and store indexes rather than depend upon automatic indexing for the tables that it will be replaying thi
108. lename The parameters fileset or filename represent the name of a recorded file set such as recorded_db dat_0 or a concrete file segment such as recorded_db dat_0_0 Exporting Data Converter can export data recorded by the Record tool or Recording Console in three different for mats CSV comma separated values XML default export format if not specified and HTML Even if the exported table is serialized the output format of the data is deserialized By default only valid samples data for which the valid_data Sample Info value was true are exported Sample Info columns are not exported Here is an example of how a samples from RTI Shapes Demo is exported by Converter into XML format external XML formatting was applied after the conversion lt rticonverter fileset rti_ recorder _default dat_0 gt lt Square_RecordAll_domaino registered type name ShapeType topic_name Square gt lt sample topic _name Square sample nr 0 gt lt Timestamp gt 1381746283759122998 lt Timestamp gt lt color length 7 max_length 0 gt MAGENTA lt color gt lt x gt 134 lt x gt lt y gt 140 lt y gt lt shapesize gt 30 lt shapesize gt lt fillKinds gt 1 lt f illKind gt 10 1 Exporting Data lt sample gt lt sample lt angle gt 0 000000 lt angle gt topic_name Square sample nr 1 gt lt Square_RecordAll_ domain0 gt lt rticonverter gt There are several options available to select how a
109. lish its log messages to Connext Then you can use RTI Monitor to visualize the log message data Since the data is provided in a Connext topic you can also use rtiddsspy or even write your own visualization tool 1 RTI Monitor is a separate CUI application that can run on the same host as your application or on a different host 7 11 Remote Administration Properties Table 7 11 Remote Administration Properties Properties under lt administration gt Syntax Description datareader_qos lt datareader_qos gt DDS_DataReaderQos lt datareader_qos gt Configures the QoS for the DataReader created by the Replay tool s Remote Access module Defaults See the RTI Connext Core Libraries and Utilities API Reference HTML documentation on DataReaders datawriter_qos lt datawriter_qos gt DDS_DataWriterQos lt datawriter_ qos gt Configures the QoS for the DataWriter created by the Replay tool s Remote Access module Defaults See the RTI Connext Core Libraries and Utilities API Reference HTML documentation on DataWriters distributed_logger lt distributed_logger gt Distributed Logger Properties lt distributed_logger gt lt domain_id gt Configures RTI Distributed Logger See Enabling RTI Distributed Logger in the Replay Tool Section 7 8 1 ae Sets the domain ID domain_id DDS_Long Default 0 lt domain_id gt au Assigns a name to the replay service You can use
110. lt True 7 3 Database Input File Properties Table 7 1 7 4 Table 7 2 Replay Service Properties Property Syntax Description replay_database lt replay database gt Replay Database Properties lt replay_database gt Required Specifies configuration properties that describe how to replay the information from a database This ele ment can be repeated See Database Input File Properties Section 7 4 time_control lt time_control gt Time Control Properties lt time_control gt Specifies time configuration properties to be applied to the Replay tool as a whole See Time Control Properties Section 7 7 Database Input File Properties Table 7 2 describes the source of the data that Replay will replay All lt replay_database gt properties are optional except session These properties must be specified inside lt replay_database name String gt and lt replay_database gt tags where String is the name to be assigned to the database entity when it is created This name will be used during remote administration Replay Database Properties Properties under ae Syntax Description lt replay_ database gt lt filename gt Specifies the name of the fileset that contains the data to be filename String replayed lt filename gt Default Undefined lt participant gt si Participant es Pps mi participant Propertie
111. mains With these tools and using RTI Shapes Demo as an example we could define a domain where to record the base type of Shapes named domain0Base and another one to use for the extended type domain0Extended associated with the same domain ID lt domain name domain0Base gt lt domain_id gt 0 lt domain_id gt lt Always deserialize so the type fields are shown in columns for verification purposes gt lt deserialize mode gt RTIDDS DESERIALIZEMODE ALWAYS lt deserialize mode gt lt domain gt lt domain name domain0Extended gt lt domain_id gt 0 lt domain_id gt lt Always deserialize so the type fields are shown in columns for verification purposes gt lt deserialize mode gt RTIDDS DESERIALIZEMODE ALWAYS lt deserialize_mode gt lt domain gt By applying filters to the Domain Type Configuration settings we can specify that domain domain0Base should record topics Circle Square and Triangle with the base type in the XML definitions like this lt domain_ type _config gt lt domain_group gt lt element gt lt domain_filter gt lt element gt domain0OBase lt element gt lt domain_filter gt lt type_config gt lt xml gt lt file group gt lt element gt lt register_ top level gt false lt register_top_level gt lt file name gt lt element gt TestTypesLibrary xml lt element gt lt file_ name gt lt type gt lt element gt 4 39 Recording Service Integration
112. max_string gt files specified in any of the file groups lt path gt lt element gt A list of the paths relative or absolute to be used path Path when searching for the XML type definition files The lt element gt lt element gt tag can be repeated lt path gt i Whether or not to register the top level types found in lt register top level gt are i register_ Boolean the type definitions with their canonical names Do top_level this with any of the files defined in any of the file lt register_top_level gt groups Default TRUE 4 22 Domain Type Configuration Table 4 10 File Group Properties lt file name gt Properties nder Bis ear Me Syntax Description lt file_group gt lt element gt lt file name gt lt element A list of file name strings specifying files containing the filename File Name ee type definitions The element tag can be repeated lt element gt max_sequence lt max_sequence gt Integer lt max_sequence gt The default sequence size in case there are unbounded sequences in the type definitions specified in the any of the files specified in this specific file group lt max_string gt The default string size in case there are unbounded max_string Integer strings in the type definitions specified in any of the files lt max_string gt specified in this specific file group Whether or not to register the top level t
113. mestamp field in the user topic field selection settings apart from the fields included by default There is an extra Topic Group called KeyedTopics which the user will associate with keyed topics There may be an interest in recording the instance handle field SampleInfo_instance_handle for these topics This may be done by defining a new Record Group with different field selection settings as shown below One important aspect of the configuration is the use of the exemption expression in the AllTop icsExceptKeyed Topic Group By using the exemption expression Keyed we make the two available Topic Groups AllTopicsExceptKeyed and KeyedTopics disjoint because AllTopics ExceptKeyed will never match the same topics as KeyedTopics This is very important to be sure that the right settings apply to the right topics 4 17 Database Output File Properties lt recorder name recordGroupOverriding gt lt The replay_compatibility flag is set to true for this example although we only include fields so it has no real effect gt lt replay_compatibility gt true lt replay_compatibility gt lt remote_access gt lt enabled gt true lt enabled gt lt remote_access_domain gt domainO lt remote_access_domain gt lt distributed_logger gt lt enabled gt true lt enabled gt lt filter _level gt WARNING lt filter_level gt lt distributed_logger gt lt remote_access gt lt recorder database gt lt data
114. modify separate Partition QoS settings for each Record Group The Partition QoS Policy establishes limits on the length of the strings provided in the partition string collection There can be up to 64 strings with a maximum of 256 characters summed across all strings When the Record tool receives a partition update command it checks this limit by checking the length of all the partition strings in the command If the summed length of the strings is larger than the limit the partitions won t be applied and an error response will be sent back to the command issuer Note For DDS Subscribers to match DDS Publishers either of the two can use regular expres sions as their partition strings but not both at the same time A regular expression partition has to be matched against a specific name partition string It is the user s responsibility to ensure that at least one of the sides in the communication Publisher or Subscriber uses a pecific name par tition string as the partition Any failure while processing the command will result in an error response from the Record tool to the command issuer However after validating the partition strings passed in the command the processing is completed for all the Record Groups even if an error happens while processing any of the QoS updates for any of them Depending on the status of the Record tool when the partition update command is issued the following can happen LL If the Record tool is runn
115. n 99 When configuring either the Record or Replay services from a file if you happen to be using domain 99 as your recording or playback domain we recommend that you change the adminis tration domain from 99 to a different domain ID by either specifying it in the configuration file or by editing the file settings ini which should be located in your home directory L On Windows Systems My Documents RTI RTI Recording Service lt version gt console settings ini 2 4 Configuring Recording Console J On Linux systems RTI RTI Recording Service lt version gt console settings ini Again this recommendation only applies if the domain in your file configuration is domain 99 2 3 1 3 Configuring Replay from an External File To use an external configuration file for replay 1 Press oy to open the Recording and Playback Configuration panels In the Playback configuration panel select Configured by file Press the Open Folder button _ to select a configuration file for playback 2 3 4 Select one of the configurations in the file by choosing from the drop down listbox 5 Select a QoS profile from the drop down listbox 1 Select Configured by file Configured by file 2 Select a file 3 Select a configuration Here again only parts of the configuration file are used while other settings are taken from Recording Console These configuration elements from the file are used L lt dds gt lt replay_ser
116. n from its creation log L The index time of a lt replay_topic gt is the earliest timestamp of the topic taken from the first recorded sample of the topic All time control properties are optional The start_time and stop_time values of a child entity are constrained by the start_time and stop_time settings of its parent entities If a start_time or stop_time value is explicitly specified and constrained by one of its parent entities Replay will issue a warning that the value has been truncated The start_mode of a child entity overrides the start_mode setting of its parent entities The time_mode value of a child entity cannot be applied to a parent entity e g TOPIC_RELATIVE cannot be applied to the time_control time_mode element of a lt session gt lt replay_database gt or lt replay_service gt Time Control Properties Properties under Syntax Description lt time_control gt Specifies the replay rate expressed as a multiple of the original rate at which the data was recorded Therefore 1 means the same as the original rate 2 means twice as fast etc Although this rate may be specified as a real decimal number lt rate gt the internal resolution of the rate value is stored as a percent rate Real Number age with two decimal places The rate may also be configured lt rate gt with the special value AS_FAST_AS POSSIBLE which directs Replay to replay the data without any intervening time betwee
117. n gt lt domain_id gt 98 lt domain_id gt lt deserialize mode gt RTIDDS DESERIALIZEMODE NEVER lt deserialize mode gt lt domain gt lt recorder gt lt dds gt 11 3 How To Record Using Best Effort Reliability Expected Outcome All samples will be stored in a single column along with SampleInfo and other meta data 11 5 How To Record Using Best Effort Reliability Scenario You have a system with multiple DataWriters of the same topic Some of these use best effort reliability while others use strict reliability You want to minimize the impact that the Record tool has on the system Configuration File lt dds gt lt recorder name scenario5 gt lt topic_group name Sensor gt lt topics gt lt topic_expr gt Sensor lt topic_expr gt lt topics gt lt field_expr gt value lt field_expr gt lt datareader_qos gt lt reliability gt lt kind gt BEST EFFORT RELIABILITY QOS lt kind gt lt reliability gt lt datareader_qos gt lt topic_group gt ere ee lt dds gt Expected Outcome The Record tool will use DataReaders with best effort Reliability to record all data 11 6 How To Enable Remote Access Scenario The Record tool is part of a larger system that must reach a steady state before it starts recording The Record tool should use domain ID 54 and partition rti for communication with the control ler Configuration File lt dds gt lt recorder name sce
118. n samples The minimum value is 0 01 1 of the original rate Default 1 lt start_mode gt start_mode Start Mode lt start_mode gt Sets the starting mode of the entity as described in Table 7 9 Start Mode Values Default AUTOMATIC 7 9 Time Control Properties Table 7 8 Table 7 9 Time Control Properties Properties under lt time_control gt Syntax Description start_offset lt start_offset gt DDS_Duration lt start_offset gt The time to offset the selected entity s starting time from its parent entity This value is used for synchronizing data that is replayed from different sources When applied to the lt replay_service gt Replay will delay for the number of seconds specified between the creation of the entities and the start of replay To allow for discovery for example When applied to a lt replay_database gt this time is the amount of offset between the index time of the replay_service and the index time of the database When applied to a lt replay_database gt this time allows an additional DDS_Boolean element lt auto_offset gt which if set TRUE directs Replay to automatically calculate the offset between the index time of the lt replay_database gt and the index time of the lt replay_service gt This value should not be applied to lt session gt or lt replay_topic gt Default 0 lt start_time gt The time of the recorded data
119. n serialized format are not human readable Exporting the data automatically deserializes serialized data but it may be the case that we need to keep the data as a SQLite data base for inspection or data handling or because we still want to be able to use the Replay tool Converter provides an option to process a SQLite database and transform all serialized tables into deserialized tables deserialize This option takes precedence over any other format option like HTML or XML When deserialize is included the format specifier is ignored By default the new database file is created in the same location as the original one and the new file is prefixed with deserialized followed by the original file s name The two files original and deserialized are equivalent If the Replay tool was able to work with the original file it will be able to replay the deserialized file Handling Data Types Converter infers the type code that should be used to deserialize and or export the data from the DCPSPublication table and the topic name However the type code may be missing either because it wasn t published not propagated by DomainParticipants during discovery or because it was filtered by using field selection properties It may also be desirable to force types to be loaded using XML configuration e g in cases where different versions of the types were published and we want fine grained control of the type being exported If the type code is no
120. n_topic_metadata_fields and user_topic_metadata_field settings in the recorder_database section to record all possible fields in all tables including the discovery ones lt recorder name basicAllExtraFields gt lt The replay compatibility flag tells the Record tool that the fields needed by the Replay tool must be preserved regardless of the field selection configuration In this case it s not really necessary to set it to true because we re going to ADD fields to the configuration not REMOVE them gt lt replay_compatibility gt true lt replay_compatibility gt lt remote_access gt lt enabled gt true lt enabled gt lt remote_access domain gt domain0 lt remote_access_domain gt lt distributed_logger gt lt enabled gt true lt enabled gt lt filter _level gt WARNING lt filter_level gt lt distributed_logger gt lt remote_access gt lt recorder database gt lt database name gt rti_recorder_default dat lt database_name gt 4 14 Database Output File Properties lt Field selection settings for the discovery tables DCPSParticipant DCPSPublication and DCPSSubscription We use the regular expression in the included sections to indicate that all fields are to be recorded gt lt builtin_topic_metadata_fields gt lt DCPSParticipant_topic gt lt included gt lt field gt lt field gt lt included gt lt DCPSParticipant_ topic gt lt DCPSPublication_topic
121. nario6 gt lt remote_access gt lt enabled gt yes lt enabled gt lt publish_status_period gt 10 lt publish_status_period gt lt remote_access domain gt domain54 lt remote_access_domain gt 11 4 How To Enable Remote Access lt subscriber_qos gt lt partition gt lt name gt lt element gt rti lt element gt lt name gt lt partition gt lt subscriber_qgos gt lt remote_access gt lt domain name domain54 gt lt domain_id gt 54 lt domain_id gt lt domain gt lt recorder gt lt dds gt Expected Outcome The Record tool will communicate with a remote controller on domain ID 54 using partition rti Status information will be published every 10 seconds 11 5 Appendix A Fields Available for Recording A 1 Table A 1 This appendix lists the fields that are available for the Record tool to store in both user topic tables and discovery tables See Section 4 5 1 to learn how to include or exclude fields from the recorded tables User Topic Tables The fields in Table A 1 are available for storing with the user data samples being recorded in user topic tables Fields coming from the SampleInfo objects are prefixed with SamplelInfo_ More information on the meaning of the fields can be found in the RTI Connext Core Libraries and Utilities API Reference HTML documentation The units of the timestamp fields are nanosec onds The Record tool stores two metadata fields with t
122. nd Line Options Command line Option Description Required d j d in ID a eee Specifies the domain ID an integer between 0 and 99 Specifies an optional comma separated list of partition names This option is partition lt names gt necessary if the Record tool is configured to enable remote access in a particu lar partition noUdpv4 Disables the UPDv4 transport updv6 Enables the UDPv6 transport noShmem Disables the shared memory transport noMulticast Disables multicast 5 11 Using the Example Remote Access Application Record Shell Table 5 2 Record Shell s Command Line Options 0 No messages verbosity lt mask gt 1 Exceptions default Command line Option Description The verbosity is a bit map that specifies what type of logging information should be printed The verbosity may be 2 Warnings 4 Information 7 All types help Prints version information and a list of options 5 4 1 Record Shell s Commands Ld add ection 5 4 1 1 LI configure Section 5 4 1 2 J delete Section 5 4 1 3 LI exit Section 5 4 1 4 LJ info Section 5 4 1 5 LJ model Section 5 4 1 6 LI pause Section 5 4 1 7 LJ resume Section 5 4 1 8 LJ shutdown Section 5 4 1 9 LI start Section 5 4 1 10 LJ status Section 5 4 1 11 LI stop Section 5 4 1 12 Several of the commands accept a lt model gt argument A model is an XML representa
123. nd instance of the Record tool change the configuration file as follows lt remote_access gt lt enabled gt true lt enabled gt lt domain gt domainO lt domain gt lt subscriber_gos gt lt partition gt lt name gt lt element gt RecordB lt element gt lt name gt lt partition gt lt subscriber_qos gt lt publisher_qos gt lt partition gt lt name gt lt element gt RecordB lt element gt lt name gt lt partition gt lt publisher_qos gt lt remote_access gt Then you can run the Record Shell for each partition rtirecsh partition RecordA rtirecsh partition RecordB 5 16 Chapter 6 Using the Replay Tool 6 1 6 2 6 3 Besides replaying data with Recording Console you can use the Replay tool directly You may find this method useful when you want to tie its service into your own infrastructure or software or if you need to use its more advanced features The Replay tool replays recorded data by publishing it just like the original Connext application did You can use the original domain ID QoS settings and data rate or make changes to test dif ferent scenarios See also E Chapter 7 Configuring the Replay Tool E Chapter 8 Accessing the Replay Tool from a Remote Location Recording Data for Replay The Replay tool can replay information that has been stored in either serialized or deserialized form If Replay is to be used to replay deserialized data ensure that all of the fi
124. nd what should be exported Flag Values Description format xml csv html Specifies what format to use to export the data If this flag is not specified XML format is used includeInfo If present in the call to Converter the Sample Info fields will be exported with each sample includeNonData If present in the call to Converter samples will be exported even if the associated Sample Info valid_data property is false compact auto yes no The Record tool may store arrays and sequences of single byte primitive types characters and octets in compact mode This means that the array or sequence is stored in one only blob col umn in the recorded database Converter can detect how data is stored in this regard and follow the same pattern when exporting the data The auto mode default will detect the compactness of single byte collections and use it for exporting the data There are ways to force the converted data to be compact or non compact By specifying yes the single byte collections will be exported in compact form By specifying no the data will be exported in non compact form decodeChar hex text This flag is used to specify how to export values of character type in arrays or sequences The default format is text Explanation of the two formats e Text If the character being exported is printable it s printed directly Otherwise it s printed as two hex d
125. nds on the lt register_top_level gt flag If this flag is set to true the type name used for the registration will be the canonical type name in the example above it would be ShapeTypeExtended However if this flag is set to false at least one name has to be provided for registration of the type using the lt registered_type_name gt XML setting The first name in this list will be the one used by Record ing Service When Recording Service discovers the first DataWriter on topic T it will first try to match the topic name against the lt topics gt expressions in all the lt type gt settings If it finds a match it will use the associated type settings Otherwise Recording Service will try to create the topic using the DataWriter s registered type name If the type name has not been registered with Recording Ser vice s DomainParticipant yet the new topic will be associated with the discovered type If the type name is already registered the new topic will use the registered type Example Let s consider an example based on RTI Shapes Demo described in the Recording Service Getting Started Guide You can use Shapes Demo to publish and or subscribe to either the ShapeType data type or the ShapeExtended data type ShapeExtended includes the same data as Sha peType plus two more fields FillKind and Angle Suppose Shapes Demo is publishing the base ShapeType in a domain and the Record tool is sub scribing to ShapeTy
126. nfo_instance_handle BLOB SampleInfo_publication_handle BLOB SampleInfo_disposed_generation_count INTEGER SampleInfo_no_writers_generation_count INTEGER SampleInfo_sample_rank INTEGER SampleInfo_generation_rank INTEGER SampleInfo_absolute_generation_rank INTEGER SampleInfo_original_publication_virtual_guid BLOB SampleInfo_original_publication_virtual_seq_nr INTEGER SampleInfo_related_original_publication_virtual_guid BLOB SampleInfo_related_original_publication_virtual_seq_nr INTEGER Metadata_domain_id INTEGER Metadata_domain_name TEXT A 7
127. ng this command line option the Record 1 On Windows systems from the Start menu select Accessories Command Prompt 3 1 Stopping the Record Tool Table 3 1 3 2 3 3 3 3 1 Record Tool s Command Line Options Command line Option Description Required cfgName lt name gt This name is used to find the matching lt recorder gt tag in the configuration file help Prints version information and list of command line options Specifies the license file path and filename Only applicable to licensed ver li Fil fil sions of the Record tool license e ile l 7 If not specified the Record tool looks for the license as described in Section 2 3 in the Getting Started Guide listCfgs Lists the available configuration profiles Specifies what type of logging information should be printed silent Core Libraries and the Record tool errors Core Libraries and the Record tool default warnings the Record tool only warnings Core Libraries and the Record tool verbosity PoON FO information the Record tool only 5 tracing the Record tool only 6 tracing Core Libraries and the Record tool This property can also be set in the configuration file However this com mand line option overrides the value specified in the configuration file Stopping the Record Tool To stop the Record tool Press Ctrl C The Record tool will close all files and per
128. nseissdessovesesdeassiossiicdedlessiie 7 9 Remote Administration Properties s ccsciicec ccsseiscesecsesesietssdien tscsssteesbotutacgesbsbocutterctsensutstebsssnsttiees 7 11 7 8 1 Enabling RTI Distributed Logger in the Replay Tool 0 0 ceeceeeseeseeensnseeeeneeeneneeeees 7 11 Type Configuration iiisice n ne enia E E E th eae eine caleaiieta 7 13 Recording Service Integration with Extensible Types ccccccccsssseeeseteeseeseneteseeceesesesnsnenenens 7 15 7 10 1 Selecting the Type Version to use when Replaying a Topic ccccccsesessesesesesseeeees 7 15 7 10 2 Replaying Topics with Different Type Versions Stored in Different Tables 7 17 11 Accessing the Replay Tool from a Remote Location Viewing Recorded Data with SQLite Converting and Exporting Recorded Data 10 4 Exporting Datamssats riire niniin i e aea DE en aaae settee a aie E Ea 10 2 Des rializing Serialized Tables sisisihan a a a aaa e a E e 103 Handling Data Ty pes czeeieseccscsesstacdccves E E E E E R EE ER E E E ERA 10 4 Selectirig Output Piles sz e aesa ea en enese ate Ea eas Eeee saa aas getir aa S ENESES EEE 10 5 Exporting Discovery Tables isinen eest ea A AAE Aaaa AIEEE aR E aia 10 6 Filtering User Topic Tablesisnsnetirenes eniin io eina i p A hase Example Configuration Files 11 1 How to Record All Topics in a Single Domain sss sesessessessssiesessesstestestestessentestestesensnnsnenteeness 11 2 How To Record a Subset of Data fr
129. o convert a single segment with Converter If there is more than one recorded file in a fileset Converter will automatically detect it and convert all of them The output file is created by appending the appropriate file extension depending on the conver sion format For example if we are converting the fileset mentioned above into XML format the output file would be called rti_record_default dat_0 xml located in the same directory as the original fileset You can however change the output file The command line options to alter the output file are as follows Flag Parameters Description If this option is present and has a valid file name parameter the conversion outputFile lt filename gt results will be placed in the file passed as a parameter instead of the default filename derived from the converted fileset s name This option has a string parameter used as a prefix for each of the output files created This option cannot be used at the same time as outputFile filePrefix lt prefix gt When this option is present an output file is created for each table in the file set prefixed with the prefix provided by the user For example if a recording contains tables Tablel and Table2 and the filePrefix option is used with prefix toXML two output files will be cre ated toXML_Table1 xml and toXML_Table2 xml Exporting Discovery Tables Converter s default behavior is to export just the u
130. ogger gt lt enabledstrue lt enableds lt distributed_logger gt lt remote_access gt There are more configuration tags that you can use to control Distributed Logger s behavior For example you can specify a filter so that only certain types of log messages are published For details see the RTI Distributed Logger Getting Started Guide Database Output File Properties Table 4 4 describes the Database properties All database properties are optional except database_name All database properties must be specified within lt recorder_database gt and lt recorder_database gt tags The Record tool stores data in a set of SQL database files Note however that you do not need to install any database software to use the Record tool Note Replaying data from a set of files is not supported This holds true for both Recording Con sole and the Replay tool They can only replay data from one file at a time 1 RTI Monitor is a separate GUI application that can run on the same host as your application or on a different host 4 7 Database Output File Properties A fileset is a named collection of file segments which belong to the same recording session Each of these file segments contains discovery and user data and the format is determined by SQLite The Record tool uses a fixed file naming scheme name_set number_segment number Where L name is the base filename for the fileset specified in the con
131. ollection of Record Group expressions For example to apply a parti tion update only to Record Groups ending with the suffix Domain1 we could use the regular expression Domain1 and use the following code in C language RTIRemoteCtxMsgDataWriter messageWriter NULL RTIRemoteCtxMsg message NULL DDS ReturnCode_t retcode Initialize the DDS entities used for the communication Create the message instance to be written to the tool message RTIRemoteCtxMsgTypeSupport create data if message NULL Error handling To send a partition update command to Record Groups suffixed with Domainl use the regular expression Domainl we need to ensure enough space in the record group expressions collection to hold one entry if DDS StringSeq_ensure_length smessage gt msg _u partitions recordGroupExpressions 1 1 Error handling en and Copy the string Domainl into the first string in the record group expression string collection We used strncpy in conjunction with the maximum length of a record group expression string for correctness even though we know the length of string Domainl fits the maximum length of a record group expression 5 10 Using the Example Remote Access Application Record Shell 5 4 Table 5 2 string strncpy DDS StringSeq_get amp message gt msg u partitions recordGroupExpressions 0 xDomainl RECORD GROUP EXP
132. om Multiple Domains s sessssssss1sssssesttsttesstsrtststesnteestesneene 11 3 How To Record Data to Multiple FileS siiiusiniii niiina ist inatia saii 11 4 How To Record Serialized Data ccccccccccccssessecssessecsscesscecsseesesceseceeceseeseecseesaecssesascaecasenesersensens 11 5 How To Record Using Best Effort Reliability ss ss sssssssssstsssissessssnsnsissessesnsnsinsesnesnnnsennennessenne 11 6 How To Enable Remote Access innirare narenn e i aaea e i a a E aes Fields Available for Recording A T User Topic TaD eS en neee cen E E e E E A 2 DCPSParticipant Table Discovery ss sssessssessesssssiesissessesstesisstesenstesiestesensneniesrenensnentenrensesnesnes A3 DCPSPublication Table Discovery issssmisenn osuna aain A4 DCPSSubscripti n Table Disc very simiad aidian redigieren i Chapter 1 Welcome to RTI Recording Service RT Recording Service includes I Recording Console a simple graphical user interface GUI for using the Record and Replay tools This interface significantly reduces Recording Service configuration time and complexity and does not require any programming The Recording Console makes it easy to use Recording Service for testing algorithms and other processing logic against pre recorded test data conducting regression testing from golden data inputs or recording live data from the field for post mission analysis See Chapter 2 Using Recording Con sole I Record an RTI Connext f
133. or the Replay tool to work Fields can be added to the tables see Choosing Which SampleInfo and Discovery Fields to Record Section 4 5 1 If fields are added to the DCPSParticipant and DCPS Subscription tables they will be created User Data Deserialized Data When the Record tool stores data in deserialized form it creates a mapping from a Topic s type to a table Each individual scalar is stored in a column named with the fully qualified name For example the following will create a column bar x struct Bar long x i struct Foo Bar bar k Serialized Data If the topic data is saved in serialized form the user data table will contain the following col umns I rti_serialized_sample Raw binary data for the sample I rti_serialized_length Length of the raw data blob l rti_serialized_endian 1 little endian 0 big endian Sample Info and Metadata Fields The Record tool creates a table called TopicName RecordGroupName Domain Name for each recorded topic unless the shared_table property is true The Record tool stores topic data as specified in the subscription properties For each topic the Record tool also stores the following extra columns by default L The Sample Info s reception timestamp in nanoseconds since Jan 1st 1970 L The Sample Info s valid data boolean indicator I Table_prefix A string representing RecordGroupName DomainName only if lt shared_table gt is specifi
134. or example suppose if we have a table with columns x y z a an index in columns x y z and the following SQL statement SELECT a FROM table WHERE x value x AND y lt value y AND z value z wom mom The index does not help optimize term z because y is constrained by an inequality SQLite allows up to two inequality expressions for the same column as long as they provide upper and lower bounds for the column So this statement will effectively use the index as the mom inequality expressions for y provide an upper and lower bound for the term SELECT a FROM table WHERE x value x AND y lt value yl AND y gt value y2 Use Indexed Column Names in WHERE Clauses not Expressions SQLite uses indexes for a column when the column name appears isolated in statements not in more complex expressions For example if we have a table with column x and an index in x the index will be used if the SQL statement includes x but not expressions based on x such as these WHERE x value 0 WHERE x 1 WHERE x value All the WHERE clauses above will cause a full table scan and SQLite will not use the index to optimize the query RecordGroup Properties A RecordGroup is a binding between a TopicGroup and a Domain It controls which Topic Group members are recorded for each Domain Any Topic that is part of a TopicGroup in the RecordGroup is recorded from the specified Domains RecordGroups are opt
135. ormation a Domain ID see Section 2 6 see Section 2 7 see Table 2 1 see Section 2 2 2 1 Using the Information Panel Table 2 1 2 2 Figure 2 2 2 3 Console s Controls Single Step Record Stop Pause Resume Play Fast Forward Press Pause first Using the Information Panel To open the Information panel click on the amp in the Console s lower right corner From this panel seen in Figure 2 2 you can access documentation contact RTI Support or view the most recent log file Note Log files are automatically deleted when the Console shuts down unless errors were reported Information Panel The information panel provides links to documentation RTI Support and the Console s log file Configuring Recording Console Before you can use Recording Console to record or replay data you must specify a domain ID in the Configuration panels The default domain ID is 0 LI To record data specify the domain in which the data you want to record is being pub lished To replay data specify the domain that you want to publish the previously recorded data into By default Recording Console records and replays data using the default DomainParticipant QoS settings described in the Connext documentation If your Connext applications use default DomainParticipant QoS settings including transport settings you can record and replay data out of the box with no
136. ormerly RTI Data Distribution Service application that records both RTI Connext discovery and topic data All recorded data is stored in one or more SQL database files See Chapter 3 Using the Record Tool LI Replay a tool that can play back the recorded data You even have the option of replay ing the data with different data rates or QoS settings See Chapter 6 Using the Replay Tool L Convert a utility that enables serialized or deserialized data recorded with Record to be exported to CSV HTML SQL or XML formats See Chapter 10 Converting and Export ing Recorded Data LJ A SQL command line tool sqlite3 which provides another way to view the data files See Chapter 9 Viewing Recorded Data with SQLite Recording Features I Records data from applications in multiple domains I Records entire Topics or specific Topic fields based on POSIX file name matching expressions I Records all data types except bit fields Records to multiple files with configurable file size limits Optionally overwrites the old est file when the maximum number of files has been reached I Records the DDS SampleInfo structure and a timestamp for both discovery data and user data I Records using either Best Effort or Reliable communications L Optionally can be configured to record from all partitions or from only specified parti tions m Supports remote operation 1 1 Replay Features l Publishes data samples that were
137. p lt type gt entries the first one that was matched will be used t type name i mee e strin A string representing the canonical type name as ype Yp g defined in the XML type definition for the type lt type_name gt Recording Service Integration with Extensible Types The Replay tool includes partial support for the Extensible and Dynamic Topic Types for DDS specification from the Object Management Group OMG This section assumes that you are familiar with Extensible Types and you have read the RTI Connext Core Libraries and Utilities Get ting Started Guide Addendum for Extensible Types L The Replay tool can publish topics associated with optional final mutable and extensible types I Users can provide an XML definition of the type that must be used by the Replay tool to publish a topic The XML description supports structure inheritance and type mutability described in the RTI Connext Core Libraries and Utilities Getting Started Guide Addendum for Extensible Types Selecting the Type Version to use when Replaying a Topic With Extensible Types it is possible to have multiple versions of a type associated with a topic T Recording Service allows you to select the type version that will be used to record the data see Section 4 10 However Recording Service persists the type description TypeCode corre sponding to each one of the discovered versions in the DCPSPublication table 1 http www omg org
138. pe in the same domain The Record tool will register and record data of type ShapeType If a different instance of Shapes Demo one that uses the ShapeExtended type starts publishing in the same domain the Record tool will record new data from this second instance of Shapes Demo Both types are compatible because one extends the other However the Record tool will only record the fields corresponding to the base ShapeType because that is 4 36 Recording Service Integration with Extensible Types the registered type The Record tool will ignore the extra fields in the ShapeExtendedType Fill Kind and Angle As described in Selecting a Type Version For a Topic T In a Recording Domain Section 4 10 1 this default behavior is non deterministic regarding the types being recorded That is you have no control over what type version will be recorded To change this behavior you can change the Record tool s configuration and provide the XML description of the desired type version via XML We illustrate this with the following example whose objective is to make sure that the Record tool records the type ShapeTypeExtended no matter which types are being published To do so the Record tool needs a file that defines the type to be recorded such as the following file named ShapeType xml lt xml version 1 0 encoding UTF 8 gt lt types gt lt enum name ShapeFillKind bitBound 32 gt lt enumerator name SOLID FILL
139. pe with The element tag can be repeated 4 23 Domain Properties Table 4 11 Type Registration Properties Properties under Syntax Description lt type gt lt element gt y P This is a list of regular POSIX fn name expressions every lt element gt entry is equivalent lt topics gt i j to an expression A topic whose name matches lt element gt ji K any of the expressions will be recorded using the topics Topic name string Pia type definition designated by lt type_name gt If a lt element gt j topic matches more than one expression in lt topics gt different lt type gt entries the first one that was matched will be used type_name lt type name gt lt type name gt Type Name string A string representing the canonical type name as defined in the XML type definition for the type 4 7 Domain Properties Table 4 12 describes the Domain properties All Domain properties are optional Domain properties must be specified inside lt domain name String gt and lt domain gt tags If you want to use a RecordGroup Section 4 9 you must assign a domain name with these tags even if you do not specify any domain properties because the domain name is needed in the RecordGroup s domain_ref property Table 4 12 Domain Properties Properties under Syntax Description lt domain gt Determines how topic data is stored in a
140. r L 1 DataWriter When creating the DataReader and DataWriter use the following QoS settings I history kind DDS_KEEP_ALL_HISTORY_QOS LJ reliability kind DDS_RELIABLE_RELIABILITY_QOS 5 2 Establishing a Connection with the Record Tool Figure 5 2 shows how to create the Entities in your remote control application using the C API A general knowledge of Connext is assumed Figure 5 2 Creating the Required Entities struct DDS TopicQos tqos DDS TopicQos_INITIALIZER DDS Topic dds_topic_cmd NULL DDS_ Topic dds_topic_ status NULL struct DDS DataWriterQos wqos DDS DataWriterQos INITIALIZER RTIRecorderAdminMessageDataWriter dds_writer NULL struct DDS DataReaderQos rqos DDS DataReaderQos INITIALIZER RTIRecorderAdminMessageDataReader dds_reader NULL dds_topic_cmd DDS DomainParticipant create topic dds participant RTI_RECORDER_COMMAND REQUEST TOPIC RTI RECORDER COMMAND TYPE amp tqos NULL DDS STATUS MASK NONE dds_topic_status DDS DomainParticipant create topic dds participant RTI_RECORDER_COMMAND RESPONSE TOPIC RTI RECORDER COMMAND TYPE amp tqos NULL DDS STATUS MASK NONE rqgos reliability kind DDS RELIABLE RELIABILITY QOS rqos history kind DDS KEEP ALL HISTORY QOS dds _ reader RTIRemoteCtxMsgDataReader DDS Subscriber create datareader dds_subscriber DDS Topic_as_topicdescription dds_topic_status amp rqgos NONE DDS STATUS MASK NONE wqos reliabil
141. re defined the included expressions are Siete Exons 1o8 processed before the excluded ones lt fietds User topic field settings can also be expressed in cTexciudeds the Record Group settings see Table 4 15 lt user_topic_metadata_fields gt RecordGroup Properties If defined Record Group settings take precedence over general data base settings defined here 4 11 Database Output File Properties Table 4 5 Builtin Topic Discovery Field Selection Properties Properties under lt builtin_topic_ Syntax Description metadata_fields gt lt DCPSParticipant_topic gt i luded DERA Specifies lists of included and excluded fields in j Ba z i the DCPSParticipant table field expression lt field gt A field expression is a POSIX fnmatch expression to match field names as described in Appendix A E e g ParticipantData_ will match all DCPSPar DCPSParticipant_ lt included gt i 8 p A icipant specific fields topic lt excluded gt ee lt field gt There is no upper limit to the number of lt field gt i expressions to be specified field expression lt field gt The included and excluded fields are optional If both are defined the included expressions are oa processed before the excluded ones lt excluded gt lt DCPSParticipant_topic gt lt DCPSPublication_topic gt i luded Ses i gt 3 p 7 Specifies lists of incl
142. recorded in serialized format LI Highly configurable you can Choose which serialized topics to replay Set the replay rate faster or slower or use the original rate Change the QoS of the publications Configure the QoS for the tool itself Dynamically control the replay start stop pause and single step through the data samples This document assumes you have a basic understanding of DDS terms such as DomainPartici pants Publishers DataWriters Topics and Quality of Service QoS policies For an overview of DDS terms please see the RTI Core Libraries and Utilities User s Manual 1 2 Chapter 2 Using Recording Console This chapter describes how to use Recording Console which provides an easy way to record and replay data 2 1 Starting and Stopping the Console Recording Console s executable is in lt install directory gt console A script to run the executable is in lt install directory gt scripts On Linux systems 1 Open a command prompt and change to the lt install directory gt scripts directory 2 Start the Console by entering gt rtirecordingconsole 3 Set a Domain ID as described in Section 2 3 On Windows systems 1 From the Start menu navigate to RTI Recording Service lt version gt and select Record ing Console 2 Set a Domain ID as described in Section 2 3 Figure 2 1 Console at Startup File Management Display area Configure Start here toset Topics Schedule Controls Inf
143. red alongside all its sample information If this property is set to FALSE the sample is stored in a serialized way with no sample information attached to it Setting this to FALSE not the default saves storage space When set to FALSE less columns are created in the SQLite database The columns in this database are often filled with repetitive data So this option can save space and execution time when these requirements are critical Default value True 4 27 TopicGroup Properties Table 4 13 TopicGroup Properties Properties under lt topic_group gt Syntax Description index lt index gt User Data Table fields lt index gt Allows you to create an index for the recorded database based on the fields provided as parameters See Create Index Syntax Section 4 8 1 for details shared_table lt shared_table gt DDS_Boolean lt shared_table gt Required Specifies whether the tables of recorded data are shared or exclusive The Record tool stores Topic data in tables those tables can be Shared or Exclusive An Exclusive table means that each Topic recorded in a RecordGroup is stored in its own table The name of the table follows the convention TopicName RecordGroupName DomainName You can change the separator with the path_separator database property described in Table 4 4 Thus two topics with the same name but from two different TopicGroups are stored in separate t
144. rids siginn e serie e ai e pa EEE ase e a 5 12 5 4 2 Running Multiple Record Tools in the Same Domain ss sssssssssessessesrisessssirresessee 5 15 Using the Replay Tool 6 1 6 2 6 3 6 4 Recording Data for Replay ssisemnosasa a a aaia 6 1 Startno the Replay Tool renessans ee iE seara aa e N AEE eR i te bake 6 1 Stopping the Replay Tool seiirt neei a ia Andel bin E ENE aie 6 1 Performance and Indexing oie ois Sc osis re n e n e aA eE Ea RA S en 6 2 Configuring the Replay Tool 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 7 10 How to Load Replay s XML Configuration File cccccssecesescsssesesesceneeeseseseeseseseseseeseseee 7 1 General Formata o c eet ees fee ie eae er eee ee te ein ee ees 7 2 General Properties for Replay cccccccceeeecsesessesesssssseesesssssseesesesssssseesesessssseeseessesssessseseseee 7 3 Database Input Fil Properties ss i Sdeleesscatectsbscsedtseedssscctisehscencvassdselesbcebscvertesicletesatecsonnevene 7 4 7 4 1 Enabling Monitoring Library with Replay cccccccsssesesescsesssesesescseesesesesesesesescsens 7 5 SESSION Properties a nrerin eiii sven uvesedespasebsedvasestosesessesuhsveseseet ee eieudusuestinshves sees iguseesese 7 6 Replay Topic Properties iscicss cesses eein i ev eedatabe seed E E NEP E trea EE ERE 7 6 mOl LY PO SELECTOR eeir e aSas Bele Se e Coie Mer BNO Acs wa tcils Manet tis otal A ENE 7 8 Time Control Properties riisist sbisscvdsssniesevtsnsdvasevdsps
145. rrently this mode is operational only for session and replay_topic entities Replay of the entity begins when explicitly directed by remote administration When an MANUAL entity is manually started all of its child entities with AUTOMATIC start_mode will also be started at the same time and so forth continuing to the lowest child RRENTLY NOT SUPPORTED MATCHED cu i OH SH Replay begins after each child DataWriter has detected at least one matched reader 7 10 Remote Administration Properties Table 7 10 Time Mode Values 7 8 7 8 1 Enumeration er Value Description ABSOLUTE The start_time and stop_time values are in absolute timestamps and will be used with out modification The start_time and stop_time values are relative to the replay_database s index time i e DATABASE_ i the index time of the replay_database will be added to the start_time and stop_time val RELATIVE o ues if specified The start_time and stop_time values are relative to the replay_service s index time i e SERVICE_ i the index time of the replay_service will be added to the start_time and stop_time values RELATIVE me if specified CURRENTLY NOT SUPPORTED TOPIC_ The start_time and stop_time values are relative to the earliest timestamp of the topic RELATIVE i e the index time of the topic will be added to the start_time and stop_time values if specified Remote Administration Prop
146. rty Value Data Types Type Format Notes You may include the following unit designations kB 1043 MB 1046 GB 1049 KB 2410 FileSize 64 bit integer TB 1012 KiB 2410 MiB 2420 GiB 2430 TiB 2440 For example 100 kB is a legal value meaning 100 000 String UTF 8 character string a a and trailing spaces are ignored between 4 3 General Properties for the Record Tool Table 4 2 describes optional properties that control the Record tool s main module Table 4 2 General Properties Property Syntax Description Whether or not the Record tool should start recording data sauto Start when it is started This option is mostly useful if the Record auto_start DDS_Boolean tool is usually controlled remotely srauto statt Default True If set to true the Record tool will always preserve the fields replay compatibility needed by the Replay tool to work with the recorded data replay_ ene Baud a base regardless of the field selection settings see Table 4 4 compatibility eee Database Properties and Table 4 15 RecordGroup lt replay_compatibility gt Properties specified by the user Default True The verbosity is a bit map that specifies what type of log ging information should be printed The verbosity may be 0 silent Core Libraries and the Record tool i lt verDos ity 1 errors Core Libraries and the Record tool default verbosity DD Peng 2 warn
147. s See Table 7 3 Participant Properties lt participant gt Specifies if Replay should open the data file in read only mode lt readonly gt true or read write mode false Setting this option to false is readonly DDS Boolean useful to enable indexing of older database files lt readonly gt Default False See Performance and Indexing Section 6 4 lt session gt Required The configuration properties that describe how to Session replay the information in a session This element can be SESSION Properties repeated lt session gt See Table 7 4 Session Properties 7 4 Database Input File Properties Table 7 2 Replay Database Properties Properties under Syntax Description lt replay_ database gt shame control The time configuration properties to be applied to the replay Time Control time_control database Properties See Table 7 8 Time Control Properties lt time_control gt Optional XML type configuration for this replay_database This lt type_config gt option is useful when type codes have not been recorded in the type_config XML Properties database or when specifying types that are too large to be lt type_config gt recorded in the database See Table 7 13 XML Type Configuration Properties Table 7 3 Participant Properties Properties under Syntax Description lt participant gt lt domain_id gt domain_id DDS_Long Sets the domain ID D
148. s in the ORDER BY clause For example suppose we have a table with columns x y z a and we want to execute the follow ing query SELECT a FROM table ORDER BY x y z Then providing an index in columns x y z will make SQLite avoid using a temporary table and sorting all the result set The index can also be used to satisfy a WHERE clause and an ORDER BY clause in the same statement In the example above suppose we want to execute this statement SELECT a FROM table WHERE x value ORDER BY y z The above index on columns x y z will still be used by SQLite both to speed up the WHERE clause and to avoid sorting the whole result set in the ORDER BY statement RecordGroup Properties 4 8 2 5 4 8 2 6 4 9 Nevertheless care must be taken so that the columns in the index are all used in the SQL state ment For example consider the following statement SELECT a FROM table WHERE x value ORDER BY z WoW It does not use y which creates a gap in the index terms of our index This will make the index be used to speed up the WHERE clause but won t avoid storing and sorting the whole result set afterwards Terms Used in Inequality Expressions should be Placed Last in Index Column Lists SQLite allows at most one index column to be used in statements containing inequality expres sions such as lt gt lt or gt Columns that are constrained by inequalities should be placed as the right most term of the index F
149. s saves initial ization time on subsequent replays 6 2 Performance and Indexing The Replay tool s ability to store indexes is controlled by the lt readonly gt parameter under lt replay_database gt see Database Input File Properties Section 7 4 The default value for lt readonly gt is false this allows the Replay tool to write the table indices to the database If you change lt readonly gt to true the Replay tool will display a message during initialization for each table opened stating that it was unable to store the table index In summary the replay performance of the Replay tool is not affected by the lt readonly gt parame ter The Replay tool will use the fastest means of retrieving samples in either case But setting the lt readonly gt option to false the default may help improve initialization performance 6 3 Chapter 7 Configuring the Replay Tool When you start the Replay tool you must specify a configuration file in XML format In that file you can set properties that control the data source which topics to replay and attributes such as the replay speed This chapter describes how to write a configuration file 7 1 How to Load Replay s XML Configuration File The Replay tool loads its XML configuration from multiple locations This section presents the various approaches listed in load order The first three locations only contain QoS Profiles and are inherited from Connext see Chapter
150. sage of indexes in SQLite Small Size Data Fields Work Best as Index Columns The fewer bytes used in every index entry the better for performance SQLite stores indexes as B Trees Every tree node uses a page of the database file If the index does not fit in one page overflow pages are created Keeping the index in one page may make a difference in terms of performance Therefore large BLOBS compact octet or char arrays etc should be avoided as 4 31 TopicGroup Properties 4 8 2 2 4 8 2 3 4 8 2 4 index columns If you need to index on one of these types consider building a hash key or simi lar compact representation and use that for indexing instead The space overhead may be worth the performance improvement Use Multi Column Indexes where Possible SQLite can use indexes that are created by indexing more than one column However SQLite only allows a single index per table within a simple SQL statement For UPDATE and DELETE statements this translates into only allowing a single index since these statements can only work with one table at a time Suppose we have a table with columns C 1 C 2 C n and we want to access the table with a SELECT statement with columns C 1 C 2 Ci i lt n in the WHERE clause such as WHERE C1 value 1 AND C 2 value 2 AND Ci value i SQLite will be able to use the index pro vided for each of the terms in the WHERE clause However if we have individual indexes for
151. ser topic tables except when deserializing where the discovery tables are copied automatically to the deserialized SQLite database It is possible to tell Converter to export the discovery tables when converting If the includeDiscov ery option is present Converter will export the discovery tables present in the recorded file alongside the user data tables Filtering User Topic Tables Converter provides the ability to filter the tables to be exported If the tableExpr lt expression gt command line option is used Converter will export or convert tables that follow the patterns described by this option The expression parameter for this option is a POSIX fnmatch expres sion The tableExpr option can be repeated If the name of a table matches any of the expressions provided with tableExpr it is converted exported otherwise it isn t 10 4 Filtering User Topic Tables Discovery tables are not affected by the tableExpr option If includeDiscovery is included the discovery tables will be exported normally The deserialize option will automatically include the discovery tables in the output database file no matter what table expression is used How ever user topic tables will be filtered according to the table expression Chapter 11 Example Configuration Files This chapter shows how to configure the Record tool for a variety of situations I How to Record All Topics in a Single Domain Section 11 1 I How To Record a Subset o
152. stead see Chapter 6 To replay data 1 Make sure you have set the domain ID in the Playback Configuration panel see Section 2 3 2 Press the Open Folder button q in the upper right corner locate the file whose data is to be replayed then click Open e Another way to open a recorded data file is simply to drag the file from your file explorer window and drop it into the long black rectangle at the top of the Console When the file is loaded you will see the time of the original recording Original recording time and date 3 Press Play Dl to begin replaying the data 2 7 Replaying Data 2 5 1 2 5 2 2 5 3 2 5 4 2 5 4 1 The display will show you the elapsed time since the start of the replay f Slider controls Elapsed time replay speed Replay rate For example xl original rate x2 twice the original rate Using the Play Button To begin replaying data press Play gt i Using the Fast Forward Button The Fast Forward button will replay at a higher rate as long as the button is pressed Higher rate means the next highest option from the list of playback speed choices in the drop down menu For example if you were replaying at normal speed fast forward will replay at x2 double speed If you were replaying at double speed fast forward will replay at x10 speed If replay is paused when you press Fast Forward button it will replay at the higher rate as long as the button is pressed
153. stributed Logger modify the Replay tool s XML configuration file In the lt administra tion gt section add the lt distributed_logger gt tag as shown in the example below 7 12 Type Configuration lt administration gt lt name gt Replay Service using Distributed Logger lt name gt lt domain_id gt 99 lt domain_id gt lt distributed_logger gt lt enabledstrue lt enableds lt distributed_logger gt lt administration gt There are more configuration tags that you can use to control Distributed Logger s behavior For example you can specify a filter so that only certain types of log messages are published For details see the RTI Distributed Logger Getting Started Guide 7 9 Type Configuration The lt type_config gt element allows you to pass type configuration information to the Replay tool in the form of XML type configuration files Table 7 12 describes the Type Configuration properties All Type Config properties are optional Table 7 12 Type Configuration Properties Properties under Syntax Description lt type_config gt Allows you to specify XML type configuration 1 files the path in which to find them and other a Fi properties related to the registration of the types xml XML TYP Configuration With the DomainParticipants Properties F The XML type configuration for this domain lt xml gt group See Table 7 13 XML Type Configuration Properties
154. sts If the USER_QOS_PROFILES file is found and there is a default profile specified in it this default profile is automatically applied to the QoS settings of the Recording Service entities The next locations are specific to Recording Service d lt rtirecord executable location gt resource xml RTL_ RECORDING_SERVICE xml This file contains the default configuration for the Record tool it is loaded if it exists RTI_LRECORDING_SERVICE xml defines a configuration that records all topics on domain 0 I lt working directory gt USER_RECORDING_SERVICE xml This file is loaded automatically if it exists 1 x and y represent the version numbers of the current release 4 1 General Format 4 2 m m File specified with the command line option cfgFile see Table 3 1 on page 3 1 File specified using the remote command configure The configure command see Table 3 1 on page 3 1 allows loading of an XML file remotely The file loaded using this command replaces the file loaded using the cfgFile command line option Last to be loaded You may use a combination of the above approaches General Format The configuration file uses XML format The XSD definitions followed by the configuration are in the document resource schema rti_record xsd All the following main sections are optional if specified they must be in this order m m m m m m General Properties for the Record Tool Section 4 3 Remo
155. t directly accessible from the DCPSPublication table Converter can provide XML representation of the types via the Recorder XML configuration file and name The follow ing command line parameters can be used to provide Converter with XML type information Flag Parameters Description When this option is present and a correct Recorder XML configuration file and configuration name are provided lt XML configuration file gt the XML type configuration settings in the configuration lt configuration name gt see Recording Service Integration with Extensible Types Section 4 10 will be used to match the topics and types in the database and provide type codes for them typeConfig This option forces Converter to obtain the type codes from forceXMLTypes the XML configuration provided via the typeConfig option whenever possible 10 3 Selecting Output Files 10 4 10 5 10 6 Selecting Output Files Converter extracts the file set from the input file or set provided by the user and detects all available segments for conversion Conversion is performed on every segment and there is only one output file which aggregates all the conversion results So for example if we have file seg ments rti_record_default dat_0_0 and rti_record_default dat_0_1 running Converter on any of the files or the file set rti_record_default dat_0 will convert both segments into the same file Note It is not possible t
156. t it will record only the Replay compatibility fields plus the SampleInfo_ source timestamp fields gt lt record group name RecordAllExceptKeyed gt lt domain_ref gt lt element gt domainO lt element gt lt domain_ref gt lt topic_ref gt lt element gt AllTopicsExceptKeyed lt element gt lt topic_ref gt lt record_group gt lt record group name RecordKeyed gt lt domain_ref gt lt element gt domainO lt element gt lt domain_ref gt lt topic_ref gt lt element gt KeyedTopics lt element gt lt topic_ref gt lt Specific field selection settings for this Record Group These settings will override the general settings in the database section So SampleInfo_instance_handle will be recorded but SampleInfo_source_timestamp won t gt lt user topic _metadata_fields gt lt included gt lt field gt SampleInfo_ instance handle lt field gt lt included gt lt user_topic_metadata_fields gt lt record_group gt lt recorder gt 4 5 1 5 Example 4 Recording Everything Except the Metadata Fields The following example configuration shows how to record all fields except the metadata fields prefixed with Metadata_ The key for this is to first include everything with the regular expression and then exclude fields matching Metadata_ lt recorder name basicAl1ButMetadata gt lt The replay compatibility flag tells the Record tool that the fields needed by the Replay too
157. t would be created by the Replay tool This index corre sponds to the one created by the old database property lt create_index gt which is no longer sup ported User data fields can also be used to create indexes To add a user data field to an index configu ration you must use the fully qualified name of the field This notation is similar to the notation used to access data fields in filter expressions for content filtered topics see RTI Connext Core Libraries and Utilities User s Manual for more details Fields inside container types are accessed using a period character e g field1 nestedField2 nestedField3 Fields in collections arrays and sequences can be accessed using square brackets notation e g collection TopicGroup Properties 4 8 2 4 8 2 1 Field 1 nestedField matrixField 0 0 field1 Only primitive fields can be used for indexing because the Record tool does not store non primitive fields For example consider a race scenario We have a collection of ten runners and their order in the race is recorded with the Record tool The data types are defined using IDL as follows struct Runner int id key char name key struct Race struct Runner runnerList 10 TimeStamp currentTime If other applications are trying to access the recorded data in order to analyze it we may want to speed up data retrieval for these applications by indexing the above data in many ways
158. tabase name gt The Record tool appends a set number and a seg database_ String ment number to the filename name Default undefined Example lt database_name gt myfile lt database_ name gt flush_period lt flush_period gt DDs_Long lt flush_period gt Specifies how often in seconds to flush data to disk Note increasing this value causes the Record tool to use additional memory Default 1 second Minimum 1 second 4 8 Database Output File Properties Table 4 4 Database Properties Properties under bes Syntax Description lt recorder_ y P database gt Specifies how many file segments may be created Each time the max_file_size limit is reached for a file segment a new file is created if this number of lt max file segments gt segments has not been exceeded max_file_ DDS Long Default 1 segments TE lt max_file_segments gt Example lt max_file_segments gt 100 lt max_file_segments gt max_file_size lt max_file size gt FileSize lt max_file size gt Specifies the maximum size for a file segment The Record tool records data to one or more files This property specifies the maximum file size This is not an absolute value but a threshold value As soon as the threshold is exceeded no more data is written to file Default 2 GB Maximum imposed by the operating system Example lt max_file size gt 1 GB lt max_file_size gt overwri
159. te lt overwrite gt DDS_Boolean lt overwrite gt Specifies whether or not the Record tool should delete all existing file segments in the fileset before it starts recording This is useful if you want to reuse a data file name between recording sessions but do not want to keep any old data True If the file segments already exist they are deleted otherwise the file segments are created as needed e False If the file segments already exist the Record tool exits otherwise the file segments are created as needed Example lt name gt test lt name gt lt max_file segments gt 4 lt max_file segments gt lt overwrite gt yes lt overwrite gt In this case the Record tool will delete test_0_0 test_0_1 and test_0_2 before starting to record to test_0_0 Default False 4 9 Database Output File Properties Table 4 4 Database Properties Properties under lt recorder_ database gt Syntax Description lt path_separator gt DDS_Char lt path_separator gt path_ separator Specifies the path separator character that the Record tool will use when creating table and col umn names For instance table names follow the Topic Name RecordGroupName DomainName con vention and fields in Topics use to navigate hierarchical types such as a b c The dollar sign is used as the default path sep arator instead of the more conventional comma because
160. te Access Properties Section 4 4 contained in the top level tag lt remote_access gt Database Output File Properties Section 4 5 contained in the top level tag lt recorder_database gt Domain Type Configuration Section 4 6 contained in the top level tag lt domain_type_config gt Domain Properties Section 4 7 contained in the top level tag lt domain name String gt TopicGroup Properties Section 4 8 contained in the top level tag lt topic_group gt RecordGroup Properties Section 4 9 contained in the top level tag lt record_group gt Let s look at a very basic configuration just to get an idea of its contents You will learn the meaning of each line as you read the rest of this chapter lt dds gt lt This simple configuration records all topics from domain ID 0 gt lt recorder name example gt lt Specify where to store the recorded data gt lt recorder_database gt lt database_ name gt simple _config dat lt database_name gt lt recorder_database gt lt Create a DomainParticipant in domain 0 with default QoS gt lt domain name domain0 gt lt domain_id gt 0 lt domain_id gt lt deserialize mode gt RTIDDS DESERIALIZEMODE ALWAYS lt deserialize mode gt lt domain gt lt Create a TopicGroup A TopicGroup is a collection of Topics whose names match the topic_expr The field_expr specifies which fields in the Topics to recor
161. tion of two aspects of the Record tool L The configuration model the XML configuration similar to the XML configuration file used to configure the Record tool I The run time model an XML description of the entities that have been created based on the configuration The format of this XML is the same as the configuration format for the Record tool see Chapter 4 Configuring the Record Tool The top level tag must be lt dds gt followed by lt recorder gt Some examples for lt model gt are lt dds gt lt recorder gt lt record group name RecordAll gt lt record_group gt lt recorder gt lt dds gt lt dds gt lt recorder gt lt topic_group gt name RTI Shapes Demo gt lt topics gt Using the Example Remote Access Application Record Shell 5 4 1 1 5 4 1 2 lt topic_expr gt Square lt topic_expr gt lt topics gt lt field_expr gt color lt field_expr gt lt topic_group gt lt recorder gt lt dds gt add This command adds entities to the Record tool The add command has the following format add lt model gt configure The Record tool can be reconfigured remotely with the configure command There are two ways to reconfigure the Record tool using a local file or a remote file Note that the Record tool must be stopped before it can be reconfigured When the Record tool is reconfigured it will shut down completely The Record Shell will lose its connection with the Re
162. tion topics lt excluded gt lt field gt lt field gt lt excluded gt lt DCPSSubscription_ topic gt lt builtin_topic_metadata_fields gt 4 16 Database Output File Properties 4 5 1 4 lt Field selection settings for user topic tables Using the field expression in the excluded settings tells the Record tool that none of the extra fields Sample Info and metadata should be recorded User data fields will always be recorded gt lt user_ topic_metadata_fields gt lt excluded gt lt field gt lt field gt lt excluded gt lt user_topic_metadata_fields gt lt recorder_database gt lt domain name domain0 gt lt domain_id gt 0 lt domain_id gt lt deserialize mode gt RTIDDS DESERIALIZEMODE ALWAYS lt deserialize mode gt lt domain gt lt topic_group name AllTopics gt lt topics gt lt topic_expr gt lt topic_expr gt lt topics gt lt field_expr gt lt field_expr gt lt topic_group gt lt record group name RecordAll gt lt domain_ref gt lt element gt domain0 lt element gt lt domain_ref gt lt topic_ref gt lt element gt AllTopics lt element gt lt topic_ref gt lt record_group gt lt recorder gt Example 3 Overriding Database Settings with Record Group Settings In the following configuration two sets of settings are defined for user topic tables The settings in the general database section include the SampleInfo_source_ti
163. tool won t be able to keep track of the data without 5 5 Remote Control Messages Table 5 1 Messages Types Exchanged Between Record Tool and Remote Access Application Message Type add prefix RTI_RECORDER_ Direction ADMIN Description RECORDER_START Instructs the Record tool to start recording RECORDER_STOP Instructs the Record tool to stop recording Instructs the Record tool to reconfigure according to the con tents of the message Stop the Record tool before sending this message RECORDER If the Record tool has already been stopped it will read the CONFIGURE new configuration and restart It will not automatically start recording unless auto_start see Table 4 2 General Proper ties is true the default case If the Record tool has not already been stopped an error is returned From RECORDER_ In structs the Record tool to shutdown and exit Your Connext Remote SHUTDOWN trol Applicati iti Control Application RECORDER ADD Instructs the Record tool to add entities based on the contents To of the message The Record tool RECORDER DELETE Instructs the Record tool to delete entities based on the con tents of the message RECORDER PAUSE Instructs the Record tool to pause entities based on the con tents of the message Updates the Partition QoS in all or some of the Record tool s RECORDER_ Record Groups in their associated DDS Subscribers See PARTITION Updating the Record
164. ty gt true lt replay_compatibility gt lt remote_access gt lt enabled gt true lt enableds gt lt remote_access_domain gt domain0 lt remote_access_domain gt lt distributed_logger gt lt enabled gt true lt enabled gt lt filter _level gt WARNING lt filter_level gt lt distributed_logger gt lt remote_access gt lt recorder database gt Database Output File Properties lt database name gt rti_recorder_default dat lt database_ name gt lt recorder_database gt lt domain name domain0 gt lt domain_id gt 0 lt domain_id gt lt deserialize mode gt RTIDDS DESERIALIZEMODE ALWAYS lt deserialize_mode gt lt domain gt lt topic_ group name AllTopics gt lt topics gt lt topic_expr gt lt topic_expr gt lt topics gt lt field_expr gt lt field_expr gt lt topic_group gt lt record_ group name RecordAll gt lt domain_ref gt lt element gt domainoO lt element gt lt domain_ref gt lt topic_ref gt lt element gt AllTopics lt element gt lt topic_ref gt lt record_group gt lt recorder gt By default the Record tool will record only the fields that the Replay tool will need to work with the recorded database Furthermore because the replay_compatibility flag is set to true these fields will be protected by the Record tool and will always be present when recording 4 5 1 2 Example 1 Record Everything The following configuration uses the builti
165. uded and excluded fields in E ai j f the DCPSPublication table field expression r 7 3 lt field gt A field expression is a POSIX fnmatch expression to match field names as described in Appendix A o a e g PublicationData_ will match all DCPSPub eee SEAN lication specific fields opic p aij A ani There is no upper limit to the number of lt field gt lt field gt 5 say expressions to be specified field expression i y 2 Pietas The included and excluded fields are optional If both are defined the included expressions are on processed before the excluded ones lt excluded gt lt DCPSPublication_topic gt lt DCPSSubscription_ topics lt included gt Specifies lists of included and excluded fields in lt f ea the DCPSSubscription table ra cape eee A field expression is a POSIX fnmatch expression lt field gt to match field names as described in Appendix A DCPSSubscription Poin e g SubscriptionData_ will match all DCPS lt included gt Subscription specific fields k lt excluded gt on opic lt field gt There is no upper limit to the number of lt field gt field expression xPressions to be specified lt field gt The included and excluded fields are optional a If both are defined the included expressions are lt excluded gt processed before the excluded ones lt DCPSSubscription_topic gt 4 12 Database Output File Properties 4
166. ups in a Recording configuration set the collection of Record Group names expressions to be empty if DDS StringSeq_ensure_length amp message gt msg _u partitions recordGroupExpressions 0 0 Error handling 5 9 Remote Control Messages Ensure enough space to add the A partition string to the collection of partitions if DDS StringSeq_ensure_length amp message gt msg u partitions partitions 1 1 Error handling Copy the string A into the first string in the partition string collection We ve used strncpy in conjunction with the maximum length of a partition string for correctness even though we know the length of string A fits the maximum length of a partition string strncpy DDS StringSeq get amp message gt msg u partitions partitions 0 A PARTITION MAX LENGTH Write the message recall that the accept_broadcast_commands must be enabled in the Record tool to be able to read this command if we know the destination information for the Record tool app id host id and instance id we can use this information and don t have to enable accept_broadcast_commands x retcode RTIRemoteCtxMsgDataWriter write RTIRemoteCtxMsg writer message amp DDS HANDLE NIL if retcode DDS RETCODE_OK Error handling If we wanted to include a Record Group filter in our command the filtering expression would have to be included in the c
167. verview If the Record tool is configured to allow remote access it creates a DataReader for a command request Topic named RTI_LRECORDER_COMMAND_REQUEST_TOPIC and a DataWriter for command response and status Topic named RTILRECORDER_COMMAND_RESPONSE_TOPIC So the Record tool will write status updates and comman responses These topics types and names are specified in the IDL file resource idl rtirecord idl When the Record tool detects a remote DataReader and DataWriter of these special topics from the same participant the Record tool will be in a connected state which means it will accept remote commands Your remote access application will use the following constants _ RTI RECORDER_COMMAND_TYPE Register a type of this name as seen in Figure 5 1 _J RTILRECORDER_COMMAND_REQUEST_TOPIC Create a DataWriter with this Topic name as seen in Figure 5 2 L RTI RECORDER_COMMAND _RESPONSE_TOPIC Create a DataReader with this Topic name as seen in Figure 5 2 See Remote Control Messages Section 5 3 for more information 5 1 Establishing a Connection with the Record Tool Figure 5 1 Registering the Message Type RTIRemoteCtxMsgTypeSupport register type self gt dds_participant 5 2 Establishing a Connection with the Record Tool To establish a connection with the Record tool your remote access application needs L 2 Topics one for commands one for status and command responses L 1 DataReade
168. vice gt The name attribute will be used for the launched service LI lt dds gt lt replay_service gt lt administration gt lt domain_id gt This will be used for the admin istration domain ID The rest of the lt administration gt element is replaced to ensure run time compatibility with Recording Console Ll lt dds gt lt replay_service gt Many of the settings will be used from this element except for e Only the first lt session gt from the first lt replay_database gt will be used e The lt filename gt will be replaced with the file specified in Recording Console Note To stop using the configuration file and go back to the previous QoS settings select Con figure without a File Return to prior configuration Configured without a file Configure by file Auto 4 al 2 5 Recording Data 2 4 Recording Data To record data 1 Make sure you have set the domain ID in the Record Configuration panel see Section 2 3 2 Choose where to save the recorded data You can create a new file or choose an existing one e To create a new file Press the New Recording button in the upper right corner and specify a file name and location for the new recording Then click on Create File e To record over an existing file e Press the Open Folder button Q in the upper right corner and locate the file that you want to record into e Another way to open a recording file is simply to drag the file from your file
169. with XML topic_name lt topic_name gt String lt topic_name gt Specifies the name to be assigned to the topic when creat ing a DataWriter to write the data to be replayed 7 7 Replay Topic Properties Table 7 7 Output Properties Properties under Syntax Description lt output gt topic gos ee Specifies the QoS settings to be applied to the topic when Pic 4 OP creating a DataWriter to write the data to be replayed lt topic_qos gt ivo name p n Specifies the name to be assigned to the type when creating ype Ka a DataWriter to write the data to be replayed lt topic_name gt 7 6 1 Type Selection This sections explains how the Replay tool obtains the type version TypeCode and the regis tered type name that will be used to replay a topic T I First if there are XML type configuration settings lt type_config gt for the replay data base see Section 7 9 and the name of the topic to be replayed matches any of the topic name expressions provided using the lt topics gt tag within lt type gt the Replay tool will use the XML definition of the type The registered type name will be determined as follows 1 3 The type name explicitly defined by the user in lt rep lay_topic gt lt input gt lt type_name gt If lt type gt lt register_top_level gt is false the name provided in lt type gt lt registered_type_name gt The canoni
170. ypes found in the type definitions with their canonical names Do this with F lt register top level gt p spe spe register_ any of the files found in this specific file group The value Boolean j A top_level of this setting overrides the value of the upper level set lt register top level gt i oan oir ting see Table 4 9 XML Type Configuration Proper ties Default TRUE lt type gt lt element gt Specific type properties A list of type registration proper t Type Registration ties used to define how a type found in the files has to be ype Properties registered by the Record tool in the DomainParticipants lt element gt See Table 4 11 Type Registration Properties lt type gt Table 4 11 Type Registration Properties Properties under lt type gt lt element gt Syntax Description registered_ type_name register_top_level lt register_top_level gt Boolean lt element gt name string lt element gt lt register_top_level gt lt registered_type name gt Registration lt registered_type name gt Whether or not to register this type s canonical name as defined in tag type_name with the DomainParticipant This name is registered alongside any of the registration type names defined in tag registered_type_name above Default TRUE When registering the type with the DomainParticipant this setting defines a list of names to register the ty
Download Pdf Manuals
Related Search
Related Contents
Manuale utente (IT) Acer Series 520 Network Card User Manual Vulcan-Hart 948RE ML-135223-00G48 User's Manual Manual Copyright © All rights reserved.
Failed to retrieve file