RTI Connext Java API  Version 5.1.0
DataWriterProtocolQosPolicy Class Reference

Protocol that applies only to com.rti.dds.publication.DataWriter instances. More...

Inheritance diagram for DataWriterProtocolQosPolicy:
QosPolicy

Public Attributes

GUID_t virtual_guid
 The virtual GUID (Global Unique Identifier).
 
int rtps_object_id
 The RTPS Object ID.
 
boolean push_on_write
 Whether to push sample out when write is called.
 
boolean disable_positive_acks
 Controls whether or not the writer expects positive acknowledgements from matching readers.
 
boolean disable_inline_keyhash
 Controls whether or not a keyhash is propagated on the wire with each sample.
 
boolean serialize_key_with_dispose
 Controls whether or not the serialized key is propagated on the wire with dispose samples.
 
final RtpsReliableWriterProtocol_t rtps_reliable_writer
 The reliable protocol defined in RTPS.
 
- Public Attributes inherited from QosPolicy
final QosPolicyId_t id
 The ID of this QoS policy.
 
final String policy_name
 The name of this QoS policy.
 

Additional Inherited Members

- Public Member Functions inherited from Struct
abstract boolean equals (Object obj)
 
abstract int hashCode ()
 
String toString ()
 
- Protected Member Functions inherited from Struct
 Struct ()
 
abstract void pull_from_nativeI (long native_status)
 
abstract void push_to_nativeI (long native_status)
 

Detailed Description

Protocol that applies only to com.rti.dds.publication.DataWriter instances.

DDS has a standard protocol for packet (user and meta data) exchange between applications using DDS for communications. This QoS policy and com.rti.dds.infrastructure.DataWriterProtocolQosPolicy give you control over configurable portions of the protocol, including the configuration of the reliable data delivery mechanism of the protocol on a per DataWriter or DataReader basis.

These configuration parameters control timing, timeouts, and give you the ability to tradeoff between speed of data loss detection and repair versus network and CPU bandwidth used to maintain reliability.

It is important to tune the reliability protocol (on a per com.rti.dds.publication.DataWriter and com.rti.dds.subscription.DataReader basis) to meet the requirements of the end-user application so that data can be sent between DataWriters and DataReaders in an efficient and optimal manner in the presence of data loss.

You can also use this QoS policy to control how RTI Connext responds to "slow" reliable DataReaders or ones that disconnect or are otherwise lost. See com.rti.dds.infrastructure.ReliabilityQosPolicy for more information on the per-DataReader/DataWriter reliability configuration. com.rti.dds.infrastructure.HistoryQosPolicy and com.rti.dds.infrastructure.ResourceLimitsQosPolicy also play an important role in the DDS reliable protocol.

This QoS policy is an extension to the DDS standard.

Entity:
com.rti.dds.publication.DataWriter
Properties:
RxO = N/A
Changeable = NO

Member Data Documentation

GUID_t virtual_guid

The virtual GUID (Global Unique Identifier).

The virtual GUID is used to uniquely identify different incarnations of the same com.rti.dds.publication.DataWriter.

RTI Connext uses the virtual GUID to associate a persisted writer history to a specific com.rti.dds.publication.DataWriter.

The RTI Connext Persistence Service uses the virtual GUID to send samples on behalf of the original com.rti.dds.publication.DataWriter.

[default] com.rti.dds.infrastructure.GUID_t.AUTO

int rtps_object_id

The RTPS Object ID.

This value is used to determine the RTPS object ID of a data writer according to the DDS-RTPS Interoperability Wire Protocol.

Only the last 3 bytes are used; the most significant byte is ignored.

If the default value is specified, RTI Connext will automatically assign the object ID based on a counter value (per participant) starting at 0x00800000. That value is incremented for each new data writer.

A rtps_object_id value in the interval [0x00800000,0x00ffffff] may collide with the automatic values assigned by RTI Connext. In those cases, the recomendation is not to use automatic object ID assigment.

[default] com.rti.dds.infrastructure.WireProtocolQosPolicy.RTPS_AUTO_ID

[range] [0,0x00ffffff]

boolean push_on_write

Whether to push sample out when write is called.

If set to com.rti.dds.infrastructure.true (the default), the writer will send a sample every time write is called. Otherwise, the sample is put into the queue waiting for a NACK from remote reader(s) to be sent out.

[default] com.rti.dds.infrastructure.true

boolean disable_positive_acks

Controls whether or not the writer expects positive acknowledgements from matching readers.

If set to com.rti.dds.infrastructure.true, the writer does not expect readers to send send positive acknowledgments to the writer. Consequently, instead of keeping a sample queued until all readers have positively acknowledged it, the writer will keep a sample for at least com.rti.dds.infrastructure.RtpsReliableWriterProtocol_t.disable_positive_acks_min_sample_keep_duration, after which the sample is logically considered as positively acknowledged.

If set to com.rti.dds.infrastructure.false (the default), the writer expects to receive positive acknowledgements from its acknowledging readers (com.rti.dds.infrastructure.DataReaderProtocolQosPolicy.disable_positive_acks = com.rti.dds.infrastructure.false) and it applies the keep-duration to its non-acknowledging readers (com.rti.dds.infrastructure.DataReaderProtocolQosPolicy.disable_positive_acks = com.rti.dds.infrastructure.true).

A writer with both acknowledging and non-acknowledging readers keeps a sample queued until acknowledgements have been received from all acknowledging readers and the keep-duration has elapsed for non-acknowledging readers.

[default] com.rti.dds.infrastructure.false

boolean disable_inline_keyhash

Controls whether or not a keyhash is propagated on the wire with each sample.

This field only applies to keyed writers.

With each key, RTI Connext associates an internal 16-byte representation, called a keyhash.

When this field is com.rti.dds.infrastructure.false, the keyhash is sent on the wire with every data instance.

When this field is com.rti.dds.infrastructure.true, the keyhash is not sent on the wire and the readers must compute the value using the received data.

If the reader is CPU bound, sending the keyhash on the wire may increase performance, because the reader does not have to get the keyhash from the data.

If the writer is CPU bound, sending the keyhash on the wire may decrease performance, because it requires more bandwidth (16 more bytes per sample).

Note: Setting disable_inline_keyhash to com.rti.dds.infrastructure.true is not compatible with using RTI Real-Time Connect or RTI Recorder.

[default] com.rti.dds.infrastructure.false

boolean serialize_key_with_dispose

Controls whether or not the serialized key is propagated on the wire with dispose samples.

This field only applies to keyed writers.

We recommend setting this field to com.rti.dds.infrastructure.true if there are DataReaders where com.rti.dds.infrastructure.DataReaderProtocolQosPolicy.propagate_dispose_of_unregistered_instances is also com.rti.dds.infrastructure.true.

Important: When this field is com.rti.dds.infrastructure.true, batching will not be compatible with RTI Connext 4.3e, 4.4b, or 4.4c. The com.rti.dds.subscription.DataReader entities will receive incorrect data and/or encounter deserialization errors.

[default] com.rti.dds.infrastructure.false

final RtpsReliableWriterProtocol_t rtps_reliable_writer
Initial value:
=
new RtpsReliableWriterProtocol_t()

The reliable protocol defined in RTPS.

[default] low_watermark 0;
high_watermark 1;
heartbeat_period 3.0 seconds;
fast_heartbeat_period 3.0 seconds;
late_joiner_heartbeat_period 3.0 seconds;
virtual_heartbeat_period com.rti.dds.infrastructure.Duration_t.AUTO;
samples_per_virtual_heartbeat com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH_UNLIMITED;
max_heartbeat_retries 10;
inactivate_nonprogressing_readers com.rti.dds.infrastructure.false;
heartbeats_per_max_samples 8;
min_nack_response_delay 0.0 seconds;
max_nack_response_delay 0.2 seconds;
max_bytes_per_nack_response 131072


RTI Connext Java API Version 5.1.0 Copyright © Mon Feb 3 2014 Real-Time Innovations, Inc