.. include:: vars.rst
.. _section-release-notes:
Release Notes
=============
Supported Platforms
--------------------
|RTI_RS| is supported on the platforms in :numref:`TableSupportedPlatforms`.
It can also be deployed as a C library linked into your application.
This is true for all platforms in :numref:`TableSupportedPlatforms` except
INTEGRITY®.
.. list-table:: Supported Platforms
:name: TableSupportedPlatforms
:widths: 20 80
:header-rows: 1
* - Platform
- Operating System
* - INTEGRITY
- INTEGRITY 10.0.2 and 11.0.4 on x86 CPU.
Does not include TCP/IPv4 transport plugin.
Implemented as a static C library.
* - Linux®
- All Linux platforms in the *RTI Connext DDS Core Libraries Release
Notes* for the same version number.
* - macOS®
- All macOS platforms in the *RTI Connext DDS Core Libraries Release
Notes* for the same version number.
* - QNX®
- All QNX Neutrino® 7.0.4 platforms in the *RTI Connext DDS Core
Libraries Release Notes* for the same version number.
* - Windows®
- All Windows platforms in the *RTI Connext DDS Core Libraries Release
Notes* for the same version number.
Note: POSIX-compliant architectures that end with "FACE_GP" are not
supported.
|RS| is also supported on the platforms in :numref:`TableCustomPlatforms`;
these are target platforms for which RTI offers custom support. If you are
interested in these platforms, please contact your local RTI
representative or email sales@rti.com.
.. list-table:: Custom Platforms
:name: TableCustomPlatforms
:widths: 20 80
:header-rows: 1
* - Platform
- Operating System
* - Linux
- Wind River Linux 8 on Arm® v7.
* -
- Yocto Project 2.5 on Arm v8.
* - QNX
- QNX Neutrino 6.5 on PPC e500v2.
Does not include TCP/IPv4 transport plugin.
* -
- QNX Neutrino 7.0.4 on Arm v7 (armv7QNX7.0.0qcc_cxx5.4.0).
Compatibility
-------------
For backward compatibility information between |RS| 6.1.0 and
previous releases, please see the *Migration Guide* on the
`RTI Community portal `_.
|RS| can be used to forward and transform data between applications built with
|CONNEXT|, as well as *RTI Data Distribution Service* 4.5[b-e], 4.4d,
4.3e, and 4.2e except as noted below.
- |RS| is not compatible with applications built with *RTI Data Distribution
Service* 4.5e and earlier releases when communicating over shared memory.
For more information, please see the Transport Compatibility section in the
*Migration Guide* on the `RTI Community portal
`_.
- Starting in |CONNEXT| 5.1.0, the default ``message_size_max`` for the
UDPv4, UDPv6, TCP, Secure WAN, and shared-memory transports changed to provide
better out-of-the-box performance. |RS| also uses the new value for
``message_size_max``. Consequently, |RS| is not out-of-the-box compatible
with applications running older versions of |CONNEXT|. Please see the
*RTI Connext DDS Core Libraries Release Notes* for instructions on how to
resolve this compatibility issue with older |CONNEXT| applications.
- The types of the remote administration and monitoring topics in 5.1.0 are not
compatible with 5.0.0. Therefore:
- The 5.0.0 *RTI Routing Service* shell, *RTI Admin Console* 5.0.0, and *RTI
Connext DDS* 5.0.0 user applications performing monitoring/administration
are not compatible with *RTI Routing Service* 5.1.0.
- The 5.1.0 *RTI Routing Service* shell, *RTI Admin Console* 5.1.0, and *RTI
Connext DDS* 5.1.0 user applications performing monitoring/administration
are not compatible with *RTI Routing Service* 5.0.0.
What's New in 6.1.0
-------------------
New platforms
^^^^^^^^^^^^^
- macOS 10.15 (x64)
- QNX Neutrino 7.0.4 (Arm v7) (custom-supported target platform)
- Red Hat® Enterprise Linux 7.6 (x64)
- Ubuntu® 18.04 LTS (Arm v7 and v8)
- Ubuntu 20.04 LTS (x64)
- Yocto Project 2.5 (Arm v8) (custom-supported target platform)
For more information on these platforms, see the
*RTI Connext DDS Core Libraries Platform Notes* for this release.
Removed platforms
^^^^^^^^^^^^^^^^^
These platforms are no longer supported:
- macOS 10.12
- SUSE Linux Enterprise Server 11
- Ubuntu 12.04 LTS
Improved behavior if –verbosity set above the allowed maximum
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. ROUTING-303
Setting the command-line option ``-verbosity`` higher than the
maximum, which is 6, will now be treated as if set to the maximum.
Previously, using a higher value resulted in a lower verbosity
than expected.
Service monitoring now reports CPU usage for individual Session threads
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. ROUTING-563
Service monitoring now includes CPU usage for each thread in a
Session’s thread pool. A new optional member has been added to
the SessionPeriodic type that includes a sequence of CPU usage
for each thread in a Session's thread pool.
Extended command-line parameter -verbosity to specify service and DDS verbosity independently
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. ROUTING-592
|RS|'s ``-verbosity`` command-line parameter now allows you to specify separate
verbosity levels for service and DDS logs.
For example, you can specify the verbosity as ``-verbosity WARN:EXCEPTION``.
This will set the verbosity to warning level for service logs and
exception level for DDS logs.
For more information about ``-verbosity``, see
:ref:`section-routing-service-command-line-parameters`
or run the executable with the ``-help`` option (``rtiroutingservice -help``).
New command-line option to save log in a file
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. ROUTING-599
|RS| has a new command-line option, ``-logFile ``,
that will save its log in a file.
New message logging API, integrated with service logging system
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. ROUTING-612
The |RS| SDK has a new message logging API that is integrated with
the service's logging system. Messages logged with this API will be
interpreted as if they were generated by the service itself. This means
these messages can be sent with Distributed Logger and the logging
settings will apply to them as well.
The new API is available in C and C++.
In C:
.. code-block:: C
void RTI_RoutingServiceLogger_log(
NDDS_Config_LogLevel log_level,
const char *format,
...);
In C++, the ``rti::routing:::Logger`` class has been extended with
operations to log a message for each log level:
.. code-block:: C++
void :error(const std::string& msg);
void warn(const std::string& msg);
...
You can use the new API to log messages from custom Adapters, Processors,
Transformations, and applications embedding a service with the Service API.
Using this API requires linking against the service library.
New APIs to get/set DynamicType from/in StreamInfo object
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. ROUTING-631
The |RS| C++ SDK has new APIs to get/set a DynamicType
from/in a TypeInfo. The APIs have the following signature:
.. code-block:: C++
const dds::core::xtypes::DynamicType& TypeInfo::dynamic_type() const;
void dynamic_type(const dds::core::xtypes::DynamicType *dynamic_type);
You can use these APIs to develop Adapters, Processors, and Transformations.
Ability to define default values for variables in XML configuration
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. ROUTING-654
In previous versions, XML variables expressed in the
form ``$(MY_VAR)`` were expanded by obtaining values from the
process environment of the ``ServiceProperty::user_environment``.
Loading the configuration failed if a variable was not defined by
any of these means.
To allow you to assign default values to the XML variables, a
new ```` element is allowed within the
```` root tag, as follows:
.. code-block:: XML
MY_VARmy default value
The specification of ```` must appear
before a variable is used. The default value will be used if no
other value is found from the aforementioned means.
Additionally, for convenience you can specify
```` in a separate file (that appears
first in the file loading order).
Removed duplicate symbols in rtirsinfrastructure and rtiroutingservice libraries
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. ROUTING-676
The libraries ``rtirsinfrastructure`` and ``rtiroutingservice`` included
multiple duplicate symbols. This caused a warning in applications
that linked against both of them. This problem has been resolved.
Enhanced logging information for each written sample
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. ROUTING-678
|RS| will include additional logging information for each sample that
is written to a DDS output. The information includes the Writer GUID
and Sequence Number. For example:
.. code-block:: console
[/routing_services/MyRouter/domain_routes/DomainRoute/sessions/MySessions/routes/MyRoute] write: {GUID: {1020304 5060708 1020304 5060708}, SN : {0, 1}}
The additional information can only be obtained when using CONTENT verbosity.
Register type and content filter tags now consistent with DDS-XML specification
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. ROUTING-685
The tags ```` and ```` have been modified to
match the specification of the DDS-XML standard:
* ```` has been renamed to ```` and there
are changes to its possible attributes and elements.
* The possible attributes and elements for ```` have changed.
The previous values are still allowed, but a warning will be displayed.
Future versions will fail if the old tags are still present.
Periodic event is now configurable individually per Route
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. ROUTING-700
A periodic event can be individually enabled and configured for each Route as follows:
.. code-block:: xml
0400000000
This setting overrides the one specified in the ````.
The ```` is still supported and allows you to define
a default value for all contained routes.
The new functionality has also been applied to the Processor API, so
the ``Route::period()`` operation only affects the Route object and not
the parent Session. Make sure your application is updated accordingly
if these changes affect it.
Added LoanedSamples::has_infos()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. ROUTING-733
A new operation has been added to the LoanedSamples in the Processor API
with the following signature:
.. code-block:: C++
bool LoanedSamples::has_infos()
The new operation returns whether the underlying Input can read Samples
that contain SampleInfo objects. This information can help Processor
implementations to be robust to any underlying Adapter implementation.
New API to get a Route's name, Route::full_name
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. ROUTING-734
There is a new operation in the Route class that returns its
fully qualified name, derived from the configuration. The operation
has the following signature (in C++):
.. code-block:: C++
const std::string& std::string Route::full_name() const;
Increased verbosity for log message "ROUTERDdsConnection_assertType:two different type definitions..."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. ROUTING-740
|RS| logged the following message with a WARNING verbosity:
.. code-block:: console
ROUTERDdsConnection_assertType:two different type definitions with the
same name () were found
But this problem could occur if different extended versions of a type were
received. Therefore, the verbosity has changed to the highest possible
value (DEBUG).
Support for Input Transformation
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. ROUTING-743
An Input can now include a pluggable Transformation. The configuration is
similar to an Output. For example:
.. code-block:: xml
...
...
Several improvements in monitoring and administration infrastructure
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. ROUTING-744
*Routing Service's* monitoring and administration infrastructure
has been improved with the following additions:
* Monitoring and Administration types are available in XML
format too. You can find them under ``/resource/xml``.
* Monitoring and Administration can share a participant.
The new tag ```` under
```` configures this behavior.
* Monitoring and Administration data can be routed from the same
|RS| instance.
New XML element to wait for acknowledgment
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. ROUTING-757
When routing large samples, |RS| may have shut down before
a subscribing app received all the samples. You can avoid this
by using the new ```` tag.
Ability to disable data on inputs event within routes/auto routes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. ROUTING-761
(Topic)Routes and Auto(Topic)Routes can now be configured
to disable notification of data on inputs events.
For example, the following XML disables this event:
.. code-block:: xml
false
This configures the route so that the processor will not
receive notifications of new data. Therefore another mechanism to
process data is required, such as enabling a periodic event.
What's Fixed in 6.1.0
---------------------
Operations expecting a string URL failed in Java Service-related APIs
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The Java Service-related API operations that could receive a string
URL in the form ``str://``, such as ``createEntity()`` and
``updateEntity()`` failed, even if the provided URL was correct.
An example of the logged error is shown below:
.. code-block:: console
line 1: Entity: line 1: line 1: parser line 1: error : line 1: Document is empty
line 1: str://"``
* ````
* ````
* ````
For example:
.. code-block:: xml
A Topic, B Topic,
Other Topic
This problem has been resolved. Now allow/deny filters can include
whitespaces and new-line characters.
[RTI Issue ID ROUTING-617]
|RS_HEADING| crashed if monitoring participant creation failed
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|RS| may have crashed during initialization if the monitoring
participant creation failed. This problem has been resolved.
[RTI Issue ID ROUTING-666]
Possible segmentation fault after failure to create Adapter Session, StreamReader, or StreamWriter
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If there was a failure creating an Adapter Session, StreamReader,
or StreamWriter, this may have resulted in a segmentation fault. This behavior
was timing dependent and only occurred if multiple Sessions were defined
within a DomainRoute. This problem has been resolved.
[RTI Issue ID ROUTING-679]
Assertion failed while reading data from an Input on Windows platform
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
A Processor running in debug mode caused an assertion failure when reading
data from an input on Windows platforms. This problem has been resolved.
[RTI Issue ID ROUTING-687]
-convertLegacyXml option failed on Windows systems if no output path specified
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The ``-convertLegacyXml`` option failed on Windows systems if an output
path was not specified. This problem has been resolved.
[RTI Issue ID ROUTING-710]
Report of aggregated monitoring statistics contained invalid data
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The monitoring metrics that |RS| computes and reports may have contained
invalid and incoherent values for statistics that were represented as
aggregations of other variables (e.g., throughput for a Session). This
report of invalid values was caused by a very rare race condition.
This problem has been resolved.
[RTI Issue ID ROUTING-716]
Error re-enabling a route that was updated while disabled
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
A Route that contained at least one input or output with no
QoS tag could not be disabled and re-enabled with remote
administration. This problem has been resolved.
[RTI Issue ID ROUTING-725]
rtirssh crashed if load command was sent
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The |RS| remote shell, ``rtirssh`` crashed if a load command
was sent. This problem has been resolved.
[RTI Issue ID ROUTING-773]
Unexpected "DDS_SqlTypeSupport_deserialize_Union:!deserializing union type" exception
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|RS| may have generated the following exception when sending or receiving samples:
.. code-block:: console
DDS_SqlTypeSupport_deserialize_Union:!deserializing union type
This condition only occurred in routes with a type containing unions,
and only when ``/`` was
finite (not LENGTH_UNLIMITED).
In addition, any of these conditions had to be true:
* ```` was configured.
* The route's DataWriter QoS was configured to enable TopicQueries.
* The route's DataWriter(s) matched with a DataReader created on a ContentFilteredTopic.
This problem has been fixed.
[RTI Issue ID ROUTING-781]
Crash when publishing a stream with different type names and using auto-route with monitoring
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Using an auto_route with monitoring enabled lead to a crash if you published data
on the same stream name (topic for DDS domains) with multiple type name definitions.
In general, it is not advised to have multiple type definitions for the same stream when
dealing with auto_routes, since that can lead to creation of routes with mismatched streams
discovered on the input and output side. This problem has been resolved and the crash will
no longer occur.
[RTI Issue ID ROUTING-798]
Segmentation fault when attempting to enable a session with a disabled parent domain route
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|RS| terminated with a segmentation fault if you attempted to remotely
enable a disabled Session that also had a disabled parent Domain Route.
This issue has been resolved.
[RTI Issue ID ROUTING-789]
QoS Profiles in NDDS_QOS_PROFILES.xml were not loaded
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
In previous releases, the file NDDS_QOS_PROFILES.xml was not loaded,
due to an incorrect path in the code.
This problem has been resolved. Now if this file exists, it will be
properly loaded and you can refer to the file's QoSs or QoS Profiles
in your |RS| XML configuration.
[RTI Issue ID ROUTING-811]
Unnecessary network bandwidth for participant announcements generated by |RS_HEADING|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
In previous releases, the DomainParticipant created by |RS| generated
RTPS DATA(P) messages larger than necessary due to the addition of a
property called dds.content_filter.sql.deserialized_sample.min_buffer_size.
This issue has been fixed and the DATA(P) messages no longer contain this property.
[RTI Issue ID ROUTING-813]
Known Issues
------------
Attempting to route builtin Security Logging topic causes |RS_HEADING| crash
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Routing the Security Logging builtin topic (``DDS:Security:LogTopic``) causes
a crash if any of the participants involved in the route have security logging
enabled (i.e., the ``property com.rti.serv.secure.logging.distribute.enabled``
is set to true).
Note that you can enable security logging on participants that talk to |RS| and
even route the Security Logging builtin topic that they use. This problem
occurs only if the |RS| participant itself has security logging enabled.
[RTI Issue ID ROUTING-727]