To use any of these features, you need a relational database, which is not included with RTI Connext. Supported databases are listed in the Release Notes.
These three features can be used separately or in combination.
Several com.rti.dds.publication.DataWriter entities can be configured with the same virtual GUID. If each of these com.rti.dds.publication.DataWriter entities publishes a sample with sequence number '0', the sample will only be received once by the com.rti.dds.subscription.DataReader entities subscribing to the content published by the com.rti.dds.publication.DataWriter entities.
Global Dataspace Changes
For example, the history of a com.rti.dds.publication.DataWriter will be persisted in a database table with a name generated from the virtual GUID of the com.rti.dds.publication.DataWriter. If the com.rti.dds.publication.DataWriter is restarted, it must have associated the same virtual GUID to restore its previous history.
Likewise, the state of a com.rti.dds.subscription.DataReader will be persisted in a database table whose name is generated from the com.rti.dds.subscription.DataReader virtual GUID
History/State Persistence Based on the Virtual GUID
The builtin.PublicationBuiltinTopicData and builtin.SubscriptionBuiltinTopicData structures include the virtual GUID associated with the discovered publication or subscription.
Refer to the User's Manual for additional use cases.
Properties defined for the com.rti.dds.domain.DomainParticipant will be applied to all the com.rti.dds.publication.DataWriter objects belonging to the com.rti.dds.domain.DomainParticipant, unless the property is overwritten by the com.rti.dds.publication.DataWriter.
The following table lists the supported durable writer history properties.
Property | Description |
---|---|
dds.data_writer.history.plugin_name | Must be set to "dds.data_writer.history.odbc_plugin.builtin" to enable durable writer history in the DataWriter. This property is required. |
dds.data_writer.history.odbc_plugin.dsn | The ODBC DSN (Data Source Name) associated with the database where the writer history must be persisted. This property is required. |
dds.data_writer.history.odbc_plugin.driver | This property tells RTI Connext which ODBC driver to load. If the property is not specified, RTI Connext will try to use the standard ODBC driver manager library: UnixOdbc (odbc32.dll) on UNIX/Linux systems; the Windows ODBC driver manager (libodbc.so) on Windows systems). |
dds.data_writer.history.odbc_plugin.username | Configures the username used to connect to the database. This property is not used if it is unspecified. There is no default value. |
dds.data_writer.history.odbc_plugin.password | Configures the password used to connect to the database. This property is not used if it is unspecified. There is no default value. |
dds.data_writer.history.odbc_plugin.shared | If set to 1, RTI Connext creates a single connection per DSN that will be shared across DataWriters within the same Publisher. If set to 0 (the default), a com.rti.dds.publication.DataWriter will create its own database connection. Default: 0 (false) |
dds.data_writer.history.odbc_plugin.instance_cache_max_size | These properties configure the resource limits associated with the ODBC writer history caches. To minimize the number of accesses to the database, RTI Connext uses two caches, one for samples and one for instances. The initial and maximum sizes of these caches are configured using these properties. The resource limits initial_instances, max_instances, initial_samples, max_samples and max_samples_per_instance in the com.rti.dds.infrastructure.ResourceLimitsQosPolicy are used to configure the maximum number of samples and instances that can be stored in the relational database. Default: com.rti.dds.infrastructure.ResourceLimitsQosPolicy.max_instances |
dds.data_writer.history.odbc_plugin.instance_cache_init_size | See description above. Default: com.rti.dds.infrastructure.ResourceLimitsQosPolicy.initial_instances |
dds.data_writer.history.odbc_plugin.sample_cache_max_size | See description above. Default: 32 (the minimum) |
dds.data_writer.history.odbc_plugin.sample_cache_init_size | See description above. Default: 32 |
dds.data_writer.history.odbc_plugin.restore | This property indicates whether or not the persisted writer history must be restored once the com.rti.dds.publication.DataWriter is restarted. If the value is 0, the content of the database associated with the com.rti.dds.publication.DataWriter being restarted will be deleted. If the value is 1, the com.rti.dds.publication.DataWriter will restore its previous state from the database content. Default: 1 |
dds.data_writer.history.odbc_plugin.in_memory_state | This property determines how much state will be kept in memory by the ODBC writer history in order to avoid accessing the database. When in_memory_state is equal to 1, instance_cache_max_size is always equal to com.rti.dds.infrastructure.ResourceLimitsQosPolicy.max_instances (it cannot be changed). In addition, the ODBC writer history will keep in memory a fixed state overhead of 24 bytes per sample. In this operating mode, the ODBC writer history provides the best performance. However, the restore operation will be slower and the maximum number of samples that the writer history can manage will be limited by the available physical memory. If in_memory_state is equal to 0, all the state will be kept in the underlying database. In this operating mode, the maximum number of samples in the writer history will not be limited by the physical memory available unless the underlying database is an in-memory database (TimesTen). Default: 1 |
A property defined in the com.rti.dds.domain.DomainParticipant will be applicable to all the com.rti.dds.subscription.DataReader belonging to the com.rti.dds.domain.DomainParticipant unless it is overwritten by the com.rti.dds.subscription.DataReader.
The following table lists the supported durable reader state properties.
Property | Description |
---|---|
dds.data_reader.state.odbc.dsn | The ODBC DSN (Data Source Name) associated with the database where the com.rti.dds.subscription.DataReader state must be persisted. This property is required. |
dds.data_reader.state.filter_redundant_samples | To enable durable reader state, this property must be set to 1. Otherwise, the reader state will not be kept and/or persisted. When the reader state is not maintained, RTI Connext does not filter duplicate samples that may be coming from the same virtual writer. By default, this property is set to 1. |
dds.data_reader.state.odbc.driver | This property is used to indicate which ODBC driver to load. If the property is not specified, RTI Connext will try to use the standard ODBC driver manager library: UnixOdbc (odbc32.dll) on UNIX/Linux systems; the Windows ODBC driver manager (libodbc.so) on Windows systems). |
dds.data_reader.state.odbc.username | This property configures the username used to connect to the database. This property is not used if it is unspecified. There is no default value. |
dds.data_reader.state.odbc.password | This property configures the password used to connect to the database. This property is not used if it is unspecified. There is no default value. |
dds.data_reader.state.restore | This property indicates if the persisted com.rti.dds.subscription.DataReader state must be restored or not once the com.rti.dds.subscription.DataReader is restarted. If this property is 0, the previous state will be deleted from the database. If it is 1, the com.rti.dds.subscription.DataReader will restore its previous state from the database content. Default: 1 |
dds.data_reader.state.checkpoint_frequency | This property controls how often the reader state is stored in the database. A value of N means to store the state once every N samples. A high frequency will provide better performance. However, if the reader is restarted it may receive some duplicate samples. These samples will be filtered by the middleware and they will not be propagated to the application. Default: 1 |
dds.data_reader.state.persistence_service.request_depth | This property indicates the number of most recent historical samples that the persisted com.rti.dds.subscription.DataReader wants to receive when it starts up. Default: 0 |
For more information on RTI Persistence Service, refer to the User's Manual, or the RTI Persistence Service online documentation.