Hello. I use connext dds version 6.0.0. I run persistence service with this configurations:
<dds>
<qos_library name="UserPersistenceQosLib">
<qos_profile name="QosProfile">
<datawriter_qos name="WriterQos">
<reliability>
<kind>RELIABLE_RELIABILITY_QOS</kind>
</reliability>
<history>
<kind>KEEP_LAST_HISTORY_QOS</kind>
<depth>1</depth>
</history>
<destination_order>
<kind>BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS</kind>
</destination_order>
<property>
<value>
<element>
<name>dds.builtin_type.*.max_size</name>
<value>16777216</value>
</element>
<element>
<name>dds.builtin_type.*.alloc_size</name>
<value>16777216</value>
</element>
<element>
<name>dds.data_writer.history.memory_manager.fast_pool.pool_buffer_max_size</name>
<value>3000000</value>
</element>
</value>
</property>
<protocol>
<rtps_reliable_writer>
<min_send_window_size>LENGTH_UNLIMITED</min_send_window_size>
<max_send_window_size>LENGTH_UNLIMITED</max_send_window_size>
</rtps_reliable_writer>
</protocol>
<publish_mode>
<kind>ASYNCHRONOUS_PUBLISH_MODE_QOS</kind>
</publish_mode>
<writer_data_lifecycle>
<autopurge_disposed_instances_delay>
<sec>0</sec>
<nanosec>0</nanosec>
</autopurge_disposed_instances_delay>
</writer_data_lifecycle>
</datawriter_qos>
<datareader_qos name="ReaderQos">
<destination_order>
<kind>BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS</kind>
</destination_order>
<reliability>
<kind>RELIABLE_RELIABILITY_QOS</kind>
</reliability>
<history>
<kind>KEEP_LAST_HISTORY_QOS</kind>
<depth>1</depth>
</history>
<property>
<value>
<element>
<name>dds.data_reader.history.memory_manager.fast_pool.pool_buffer_max_size</name>
<value>3000000</value>
</element>
<element>
<name>reader_resource_limits.dynamically_allocate_fragmented_samples</name>
<value>true</value>
</element>
</value>
</property>
</datareader_qos>
<publisher_qos name="PublisherQos">
<partition>
<name>
<element>*</element>
</name>
</partition>
</publisher_qos>
<subscriber_qos name="SubscriberQos">
<partition>
<name>
<element>*</element>
</name>
</partition>
</subscriber_qos>
</qos_profile>
</qos_library>
<persistence_service name="SaveDisk">
<annotation>
<documentation>
Persists in the file system all topics published with PERSISTENT durability.
</documentation>
</annotation>
<persistent_storage>
<filesystem>
<directory>/Home</directory>
<file_prefix>SavedFile_</file_prefix>
<journal_mode>DELETE</journal_mode>
<synchronization>FULL</synchronization>
<vacuum>FULL</vacuum>
</filesystem>
<restore>true</restore>
<type_object_max_serialized_length>20000</type_object_max_serialized_length>
</persistent_storage>
<participant name="defaultParticipant">
<participant_qos>
<resource_limits>
<type_code_max_serialized_length>0</type_code_max_serialized_length>
<type_object_max_serialized_length>20000</type_object_max_serialized_length>
<reader_user_data_max_length>65536</reader_user_data_max_length>
<writer_user_data_max_length>65536</writer_user_data_max_length>
</resource_limits>
<property>
<value>
<element>
<name>dds.transport.UDPv4.builtin.recv_socket_buffer_size</name>
<value>16777216</value>
</element>
<element>
<name>dds.transport.UDPv4.builtin.parent.message_size_max</name>
<value>100000</value>
</element>
<element>
<name>dds.transport.UDPv4.builtin.send_socket_buffer_size</name>
<value>16777216</value>
</element>
<element>
<name>dds.transport.shmem.builtin.receive_buffer_size</name>
<value>2048576</value>
</element>
</value>
</property>
</participant_qos>
<persistence_group name="persistAll">
<filter>*</filter>
<use_durability_service>false</use_durability_service>
<single_publisher>true</single_publisher>
<single_subscriber>true</single_subscriber>
<datawriter_qos base_name="UserPersistenceQosLib::QosProfile"/>
<datareader_qos base_name="UserPersistenceQosLib::QosProfile"/>
<publisher_qos base_name="UserPersistenceQosLib::QosProfile"/>
<subscriber_qos base_name="UserPersistenceQosLib::QosProfile"/>
<!-- <topic_qos> </topic_qos> -->
<memory_management>
<persistent_sample_buffer_max_size>LENGTH_UNLIMITED</persistent_sample_buffer_max_size>
<pool_sample_buffer_max_size>LENGTH_UNLIMITED</pool_sample_buffer_max_size>
</memory_management>
<reader_checkpoint_frequency>1000</reader_checkpoint_frequency>
<writer_checkpoint_period>1000</writer_checkpoint_period>
</persistence_group>
</participant>
</persistence_service>
</dds>
The problem is that for some topics that I set durability with pesistence service value, I receive two sample for topics that are none keyed.
First time that persistence service detects a topic, it just saves and sends one sample per none-keyed topic. After I restart persistence service I receive one sample until a new sample of the topic be published. Then I receive two sample for none-keyed topic until I restart persistence service again. Every time that I restart persistence service, I recieve one sample, but when new sample published, persistence service sends two sample...
Questions like these are best directed to RTI's support group, support@rti.com. I don't know if the behavior that you're seeing is expected or not.
Okay, thank you.