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.