3.2.3. RTI Persistence Service

3.2.3.1. Creation of Persistence Service instance using Persistence Service library will change DomainParticipantFactoryQos settings by default

Release 7.5.0 introduced a new parameter in RTI_PersistenceServiceProperty called initialize_dp_factory, which indicates if the DomainParticipantFactory should be initialized or not when creating the Persistence Service instance. Setting the parameter to TRUE may overwrite previous DomainParticipantFactoryQos values that you may have set in your application before creating the Persistence Service instance. By default, it is set to TRUE.

To go back to old behavior, set initialize_dp_factory to FALSE.

3.2.3.2. Errors when using Persistence Service with DataWriters from some previous releases, when Persistence Service synchronization is enabled

Release 7.5.0 introduces an improved sample synchronization protocol for redundant Persistence Service instances. This ensures eventual consistency of DDS instances while minimizing network usage. Enable it with the following setting:

<persistence_service>
<synchronization>
    <data_synchronization>
        <enable>true</enable>
    </data_synchronization>
</synchronization>
</persistence_service>

If you are using Persistence Service with DataWriters from Connext 7.4.0 or earlier (except 7.3.0.10+), you may see errors such as the following:

ERROR [0x010176B9,0x6D4D7FB4,0x4D0F8EA4:0x00000000|ASSERT REMOTE DR|:0x80000003
{Entity=DW,Topic=Example MyType,Type=MyType,Domain=56}|
LINK 0x0101E668,0xA043E4A4,0x5C42C69E:0x80000004{Type=MyType}|
LC:Discovery] DDS_TypeCode_dereference_member_name:
member starting with [sg.v <> &hex(F4BC197CE4E80FC39CF71EE27821DEBF)] not found

Despite these errors:

  • DataWriters continue to communicate with the Persistence Service.

  • However, writer-side filtering is disabled if either:

    • DataReaders use a ContentFilteredTopic, or

    • the Persistence Service configuration specifies a <content_filter>.

The previous synchronization protocol is deprecated but remains available. To enable it:

<persistence_service>
<synchronization>
    <synchronize_data>true</synchronize_data>
</synchronization>
</persistence_service>