RTI Connext Java API Version 7.3.0
|
Configures threads used by RTI Connext to receive and process data from transports (for example, UDP sockets). More...
Public Attributes | |
final ThreadSettings_t | thread |
Receiver pool thread(s). More... | |
int | buffer_size |
The receive buffer size in bytes. More... | |
int | buffer_alignment |
The receive buffer alignment. More... | |
![]() | |
final QosPolicyId_t | id |
The ID of this QoS policy. More... | |
final String | policy_name |
The name of this QoS policy. More... | |
Static Public Attributes | |
static final int | LENGTH_AUTO |
A special value indicating that the actual value will be automatically resolved. More... | |
Configures threads used by RTI Connext to receive and process data from transports (for example, UDP sockets).
This QoS policy is an extension to the DDS standard.
This QoS policy sets the thread properties such as priority level and stack size for the threads used by the middleware to receive and process data from transports.
RTI uses a separate receive thread per port per transport plug-in. To force RTI Connext to use a separate thread to process the data for a com.rti.dds.subscription.DataReader, set a unique port for the com.rti.dds.infrastructure.TransportUnicastQosPolicy or com.rti.dds.infrastructure.TransportMulticastQosPolicy for the com.rti.dds.subscription.DataReader.
This QoS policy also sets the size of the buffer used to store packets received from a transport. This buffer size will limit the largest single packet of data that a com.rti.dds.domain.DomainParticipant will accept from a transport. Users will often set this size to the largest packet that any of the transports used by their application will deliver. For many applications, the value 65,536 (64 K) is a good choice; this value is the largest packet that can be sent/received via UDP.
final ThreadSettings_t thread |
Receiver pool thread(s).
There is at least one receive thread, possibly more.
[default] priority above normal.
The actual value depends on your architecture:
For Windows: 2
For Linux: OS default priority
For a complete list of platform specific values, please refer to Platform Notes.
[default] The actual value depends on your architecture:
For Windows: OS default stack size
For Linux: OS default stack size
For a complete list of platform specific values, please refer to Platform Notes.
[default] mask com.rti.dds.infrastructure.ThreadSettingsKind.THREAD_SETTINGS_FLOATING_POINT | com.rti.dds.infrastructure.ThreadSettingsKind.THREAD_SETTINGS_STDIO
int buffer_size |
The receive buffer size in bytes.
The receive buffer is used by the receive thread to store the raw data that arrives over the transports in non-zero-copy transports.
Zero-copy transports do not copy their data into the buffer provided by the receive thread. Instead, they provide the receive thread data in buffers allocated by the transports themselves. Only the shared memory built-in transport (SHMEM) supports zero-copy.
buffer_size must always be at least as large as the maximum com.rti.ndds.transport.Transport.Property_t.message_size_max across all of the transports being used that are not doing zero-copy.
By default (com.rti.dds.infrastructure.ReceiverPoolQosPolicy.LENGTH_AUTO): the size is equal to the maximum com.rti.ndds.transport.Transport.Property_t.message_size_max across all of the non-zero-copy transports.
You may want the value to be greater than the default if you try to limit the largest data packet that can be sent through the transport(s) in one application, but you still want to receive data from other applications that have not made the same change.
For example, to avoid IP fragmentation, you may want to set com.rti.ndds.transport.Transport.Property_t.message_size_max for IP-based transports to a small value, such as 1400 bytes. However, you may not be able to apply this change to all the applications at the same time. To receive data from these other applications the buffer_size should be equal to the original com.rti.ndds.transport.Transport.Property_t.message_size_max.
[default] com.rti.dds.infrastructure.ReceiverPoolQosPolicy.LENGTH_AUTO
[range] [1, 1 GB] or com.rti.dds.infrastructure.ReceiverPoolQosPolicy.LENGTH_AUTO
int buffer_alignment |
The receive buffer alignment.
Most users will not need to change this alignment.
[default] 16
[range] [1,1024] Value must be a power of 2.