Skip to content

OpenDDS 1.1

Compare
Choose a tag to compare
@mitza-oci mitza-oci released this 15 Jan 18:17
· 23035 commits to master since this release

Release notes for Version 1.1 of OpenDDS

New to this version are the following changes:

  • Added support for PARTITION QoS policy.

    This QoS policy allows publishers and subscribers to belong to one
    or more logical partitions. Partition names may contain wildcards.
    However, only wildcards containing "*" or "?" are currently
    supported.

  • Added support for DEADLINE QoS policy.

    The DEADLINE QoS policy allows the application to detect when data
    is not written or read within a specified amount of time. The
    {Offered,Requested}DeadlineMissesStatus::last_instance_handle is
    currently not updated.

  • Added support for LIFESPAN QoS policy.

    This policy allows the application to specify when data expires,
    meaning invalid. Expired data will not be delivered to
    subscribers.

  • Added support for the TRANSIENT kind of DURABILITY QoS policy.

    Data will outlive DataWriters when TRANSIENT DURABILITY is
    configured, and will be sent once a new DataWriter is created within
    the same domain for the same topic and type. The cached data will
    only last as long as the process.

  • Added support for the PERSISTENT kind of DURABILITY QoS policy.

    PERSISTENT DURABILITY provides basically the same functionality as
    TRANSIENT DURABILITY, except that cached data will survive process
    destruction.

  • Added support for the DURABILITY_SERVICE QoS policy.

    This QoS policy provides a way to specify resource limits for
    domain/topic/type-specific data in a TRANSIENT or PERSISTENT
    DURABILITY cache. The resource limits in question are analogous to,
    although independent of, those found in the HISTORY and
    RESOURCE_LIMITS policies.

  • Added a new command-line option, "-DCPSTransportDebugLevel".

    This can be used to specify a debug level for the OpenDDS
    transport layer at run-time. OpenDDS debug statements range
    from 0 to 5 in increasing order of verbosity.

  • Added the ability to attach to multiple DCPSInfoRepo processes.

    Applications which communicate using DDS are no longer restricted to
    communicating using domains controlled by a single DCPSInfoRepo
    process. Individual domain publications and subscriptions within a
    process can be attached to a designated repository. Each domain is
    controlled by a single repository and this association may not be
    changed for the lifetime of the repository or the application.

  • Added QoS propagation.

    The client applications can change the qos of DCPS entity via
    set_qos() call. The qos updates are propagated to DCPSInfoRepo which
    publishes the updated qos to corresponding BIT datawriter and also
    save it to persistent repository.

  • Fixed a few bugs in persistent DCPSInfoRepo support.

    Fixed incorrect actor type and qos type for subscriber/datareader
    problem in UpdateManager::add(const UA& actor). This bug causes the
    reloading from persistent file maps the subscriber/datareader as
    publisher/datawriter.

    Fixed a bug in qos serialization. The TAO_OutputCDR stream was not
    fully copied to buffer when the qos contains sequence data. The
    TAO_OutputCDR stream needs be consolidated before memcpy.

  • Fixed compliance with qos RxO.

    Fixed compliance with the DDS specification that qos parameters that
    Durability kind and Deadline.period be compatible between the
    subscriber and the publisher (RxO - Received x Offered)

  • Improved Memory Mangament.

    Fixed issues with reference counting for classes derived from
    LocalObject. If a user defined application is crashing on exit or
    cleanup, see the OpenDDS FAQ.

  • Added support for IPv6.

    The requirement for using IPv6 is the fully qualified domain name (FQDN)
    needs be resolved as IPv6 address as it is used by default configuration
    to support BuiltInTopic.

    The local_address in the configuration file should use IPv6 decimal
    address or hostname that can be resolved as IPv6 address.

  • Used the address string instead of 4-byte IP address and port number
    for pub/sub endpoint address advertisement.

    The address string in the configuration can use decimal IPv4/IPv6 address
    or hostname that can be resolved on both pub and sub sides.

    The default address string is "host:port". The "host" is the fully qualified
    domain name and the "port" is picked randomly by OS.

  • Fixed a problem that the default local_address does not work when hostname
    is resolved as the loopback ip address.

    With the default local_address, the acceptor now is listening on IPv4/IPv6
    ANY, but use the fully qualified hostname for address advertisement.

  • Added default configuration for the reliable multicast transport type.

    The multicast_group_address defaults to the ACE default multicast address
    (224.9.9.2:20001 for IPv4 and ff05:0::ff01:1:20001 for IPv6) and the
    local_address defaults to ANY with a random port picked by the OS.

  • Fixed a bug in DataReaderImpl::remove_associations() and
    DataWriterImpl::remove_associations() that should not attempt to remove
    the already removed writer/reader.

  • Fixed a bug in SimpleTCP that an active disconnect due to the peer
    graceful disconnect does not terminate send. This bug made the re-established
    connection fail on send strategy state check.

  • Added dispose() and unregister() notifications. When dispose()
    is explicitly called on the DataWriter side, the DataReader listener
    on_data_available() callback should receive a sample with the valid_data
    flag == 0 and the instance state == NOT_ALIVE_DISPOSED_INSTANCE_STATE.

    When unregister() is explicitly called on the DataWriter side,
    the DataReader listener on_data_available() callback should receive a
    sample with the valid_data flag == 0 and the instance state ==
    NOT_ALIVE_NO_WRITERS_INSTANCE_STATE.

  • Moved TRANSPORTTYPE_QOS_POLICY_NAME and TRANSPORTTYPE_QOS_POLICY_ID
    from DDS namespace to OpenDDS namespace since they are specific to
    OpenDDS.

Using the GitHub "releases" page

Download OpenDDS-1.1.zip (Windows) or OpenDDS-1.1.tar.gz (Linux/Solaris/MacOSX) instead of using the GitHub-generated "source code" links.