21.3.2 How To Configure Durable Writer History
Connext allows a DataWriter's history to be stored in a SQLite database file.
For each DataWriter history that is configured to be durable, Connext will create a maximum of two tables:
- The first table is used to store the samples associated with the writer history. The name of that table is WS<32 uuencoding of the writer virtual GUID>.
- The second table is only created for keyed-topic and it is used to store the instances associated with the writer history. The name of the second table is WI<32 uuencoding of the writer virtual GUID>.
To configure durable writer history, use the storage_settings (DDS Extension) field in the 47.9 DURABILITY QosPolicy associated with the DataWriter.
Note: The properties in Table 21.1 Durable Writer History Properties (DEPRECATED) are deprecated. Although they are still available for use, you should use the fields in the 47.9 DURABILITY QosPolicy instead to configure the durable writer history. The properties below may be removed in a future release.
A ‘durable writer history’ property defined in the DomainParticipant will be applicable to all the DataWriters belonging to the DomainParticipant unless it is overwritten by the DataWriter. Table 21.1 Durable Writer History Properties (DEPRECATED) lists the supported (now deprecated) ‘durable writer history’ properties.
Property |
Description |
dds.data_writer.history.plugin_name |
Required. Must be set to "dds.data_writer.history.odbc_plugin.builtin" to enable durable writer history in the DataWriter. |
dds.data_writer.history.odbc_plugin.builtin. |
Required. The ODBC DSN (Data Source Name) associated with the database where the writer history must be persisted. |
dds.data_writer.history.odbc_plugin.builtin. |
Tells Connext which ODBC driver to load. If the property is not specified, Connext will try to use the standard ODBC driver manager library (UnixOdbc on Linux systems, the Windows ODBC driver manager on Windows systems). |
dds.data_writer.history.odbc_plugin.builtin. |
Configures the username/password used to connect to the database. Default: No password or username |
dds.data_writer.history.odbc_plugin.builtin. |
|
dds.data_writer.history.odbc_plugin.builtin. |
See the writer_instance_cache_allocation field in the 47.9 DURABILITY QosPolicy instead. |
dds.data_writer.history.odbc_plugin.builtin. |
|
dds.data_writer.history.odbc_plugin.builtin. |
See the writer_sample_cache_allocation field in the 47.9 DURABILITY QosPolicy instead. |
dds.data_writer.history.odbc_plugin.builtin. |
|
dds.data_writer.history.odbc_plugin.builtin. |
See the restore field in the 47.9 DURABILITY QosPolicy instead. |
dds.data_writer.history.odbc_plugin.builtin. |
See the writer_memory_state field in the 47.9 DURABILITY QosPolicy instead. |
Durable Writer History is not supported for Multi-channel DataWriters (see Chapter 36 Multi-Channel DataWriters for High-Performance Filtering) or when Batching is enabled (see 47.2 BATCH QosPolicy (DDS Extension)); an error is reported if this type of DataWriter tries to configure Durable Writer History.
See also: 21.4 Durable Reader State.
/* Get default QoS */
... retcode = DDSPropertyQosPolicyHelper::add_property (writerQos.property, "dds.data_writer.history.plugin_name", "dds.data_writer.history.odbc_plugin.builtin", DDS_BOOLEAN_FALSE); if (retcode != DDS_RETCODE_OK) { /* Report error */ } retcode = DDSPropertyQosPolicyHelper::add_property (writerQos.property, "dds.data_writer.history.odbc_plugin.builtin.dsn", "<user DSN>", DDS_BOOLEAN_FALSE); if (retcode != DDS_RETCODE_OK) { /* Report error */ } retcode = DDSPropertyQosPolicyHelper::add_property (writerQos.property, "dds.data_writer.history.odbc_plugin.builtin.driver", "<ODBC library>", DDS_BOOLEAN_FALSE); if (retcode != DDS_RETCODE_OK) { /* Report error */ } /* Create Data Writer */ ...