RTI Connext Java API Version 7.3.0
|
Working with large data types.
Working with large data types.
RTI Connext supports data types whose size exceeds the maximum message size of the underlying transports. A com.rti.dds.publication.DataWriter will fragment data samples when required. Fragments are automatically reassembled at the receiving end.
Once all fragments of a sample have been received, the new sample is passed to the com.rti.dds.subscription.DataReader which can then make it available to the user. Note that the new sample is treated as a regular sample at that point and its availability depends on standard QoS settings such as com.rti.dds.infrastructure.ResourceLimitsQosPolicy.max_samples and com.rti.dds.infrastructure.HistoryQosPolicyKind.HistoryQosPolicyKind.KEEP_LAST_HISTORY_QOS.
The large data feature is fully supported by all DDS API's, so its use is mostly transparent. Some additional considerations apply as explained below.
In order to use the large data feature with the com.rti.dds.infrastructure.ReliabilityQosPolicyKind.RELIABLE_RELIABILITY_QOS setting, the com.rti.dds.publication.DataWriter must be configured as an asynchronous writer (com.rti.dds.infrastructure.PublishModeQosPolicyKind.PublishModeQosPolicyKind.ASYNCHRONOUS_PUBLISH_MODE_QOS) with associated com.rti.dds.publication.FlowController.
While the use of an asynchronous writer and flow controller is optional when using the com.rti.dds.infrastructure.ReliabilityQosPolicyKind.BEST_EFFORT_RELIABILITY_QOS setting, most large data use cases will benefit from the use of a flow controller to prevent flooding the network when fragments are being sent.
Large data is supported by default and in most cases, no further changes are required.
The com.rti.dds.infrastructure.DataReaderResourceLimitsQosPolicy allows tuning the resources available to the com.rti.dds.subscription.DataReader for reassembling fragmented large data.