4. What’s New in 7.3.1

This section describes what’s new in the Core Libraries in 7.3.1 compared to release 7.3.0.

Connext 7.3.1 is a maintenance release in the 7.3 long-term support (LTS) series. See Previous Releases for all other new features in 7.3 LTS.

See the Connext Versions and Lifecycle page for more information on RTI’s software release model.

For what’s new and fixed in other products in the Connext suite, see those products’ release notes on https://community.rti.com/documentation or in your installation. Or start with the RTI Connext What’s New for a launchpad to all products.

Note

For backward compatibility information between 7.3.1 and previous releases, see the Migration Guide on the RTI Community Portal (https://community.rti.com/documentation).

4.1. Eliminated requirement to manually clean up thread resources on platforms that support automatic thread-specific storage (TSS) cleanup

This release introduces the ability to automatically clean up thread-specific storage resources used by Connext. This feature is disabled by default. In order to enable it, you must call an API at the beginning of your application before any other Connext API has been called.

This feature is available on all platforms except VxWorks and in all languages except Java.

To ensure that all the resources allocated in a thread are correctly released, you have two options:

  • Enable automatic thread-specific storage (TSS) cleanup by calling the enable_automatic_tss_cleanup API before any other Connext APIs have been called.

  • Call unregister_thread() right before exiting the thread.

For more information, see Unregistering Threads in the RTI Connext Core Libraries User’s Manual.

4.2. Extensible Types compliance mask added to all APIs

The Extensible Types compliance mask and its corresponding APIs have been added to the Java, C#, and Python APIs, having previously been only in the C, Traditional C++, and Modern C++ APIs. See Extensible Types Compliance Mask in the Connext Core Libraries Extensible Types Guide for more information.

4.3. New DynamicData APIs to get and set union’s discriminator value

Two new DynamicData APIs have been added that allow getting and setting a union’s discriminator value: DynamicData::get_discriminator() and DynamicData::set_discriminator().

Previously, passing index 0 to the DynamicData::get_member_info_by_index() API returned the discriminator value for a union in the DynamicDataMemberInfo::member_id field. This behavior has been deprecated and the DynamicData::get_discriminator() API should be used instead.

The DynamicData::set_<type>() APIs used to be the only way to set the discriminator value, by providing the desired discriminator value as the member_id. Now, the discriminator value can also be set using the DynamicData::set_discriminator() API.

See Accessing the Discriminator Value in a Union in the Core Libraries User’s Manual and the API documentation for more information about these APIs and examples of how to use them.

4.4. Improved write execution time when dds.data_writer.history.purge_samples_after_acknowledgment set to 1

This release improves the DataWriter write() execution time and CPU usage under the following scenario:

The performance improvement is in the writing of live data and is more noticeable when there are many historical samples in the DataWriter queue that are being delivered and acknowledged while the DataWriter is writing live data.

[RTI Issue ID CORE-16039]

4.5. Improved throughput when disable_positive_acks field in DataReaderProtocol QoS policy set to TRUE

This release improves application throughput when there are DataReaders configured with the disable_positive_acks field in the DataReaderProtocol QoS policy set to TRUE.

The performance improvement is more noticeable with transient local configurations when there are a large number of samples in the DataWriter queue.

4.6. RTI DDS Spy enhanced source locator display with IPv6 and shared memory support

RTI DDS Spy now supports displaying IPv6 and shared memory source locators (the writer’s locators for each received sample), in addition to the previously supported IPv4.

By default, only IPv4 locators are shown. You can customize which locators are displayed using the new -srcLocators option.

For example, specifying -srcLocators "shmem|udpv4" will show output like:

... from shmem(55161), 192.168.43.223: ...

See the RTI DDS Spy User’s Manual for more information.

4.7. TCP Transport now uses POLL socket monitoring by default on Linux systems, offering significantly better responsiveness

This release changes the default socket monitoring mechanism for the TCP Transport on Linux architectures from SELECT to POLL . The new POLL-based socket monitoring (currently only supported for Linux architectures) offers significantly better responsiveness when handling socket events and raises the maximum number of sockets supported by TCP Transport on Linux architectures from 1024 to 32768 (see related fix [COREPLG-756] in the Transports section of “What’s Fixed in 7.3.1”).

See socket_monitoring_kind in TCP/TLS Transport Properties, in the RTI Connext Core Libraries User’s Manual, for more information.

4.8. Disallow unrealistic values of polling_period, to avoid errors collecting data for Observability Framework

Monitoring Library 2.0 uses the DDS_MonitoringPeriodicDistributionSettings::polling_period to periodically poll for new telemetry data to send to RTI Observability Framework. To avoid internal integer overflows, the polling_period must now be no more than 4294967 seconds (50 days). Enabling Monitoring Library 2.0 will no longer succeed if the polling_period exceeds this value.

4.9. Support for new metadata fields in content filter expressions

This release introduces support for the following new metadata fields in content filter expressions in the SQL filter:

  • sample_identity.writer_guid.value

  • sample_identity.sequence_number.low

  • sample_identity.sequence_number.high

  • source_guid.value

For example:

@sample_identity.writer_guid.value = &hex(0708090A0B0C0D0E0F10111213141516)

See SQL Filter Expression Notation in the RTI Connext Core Libraries User’s Manual.

4.10. Third-Party Software Changes

The following third-party software used by Connext has been upgraded:

Table 4.1 Third-Party Software Upgrades

Third-Party Software

Old Version

New Version

Expat

2.6.3

2.7.1

For information on third-party software used by Connext products, see the “3rdPartySoftware” documents in your installation: <NDDSHOME>/doc/manuals/connext_dds_professional/release_notes_3rdparty.