4.7. Transport TCP Operation Options

4.7.1. transport_session_maximum_buffer (source)

Value used to control the maximum amount of data buffered in UM for the transport session used for the topic. For the normal multiple receiver behavior, this value represents the total buffered by all TCP receivers. For the bounded_latency and source_paced multiple receiver behavior, this value represents the individual receiver buffered amount. This option affects the transport session underlying the source rather than the source itself. The transport session uses the value from the first source created on the session and ignores subsequent sources. Refer to Source Configuration and Transport Sessions for additional information.

Scope: source
Type: lbm_ulong_t
Units: bytes
Default value: 65536
When to Set: Can only be set during object initialization.

4.7.2. transport_tcp_activity_method (receiver)

For TCP sessions only. The type of timeout method to use for TCP receivers.

Scope: receiver
Type: int
When to Set: Can only be set during object initialization.
Version: This option was implemented in LBM 3.3.8/UME 2.0.6.
String value Integer value Description
timer LBM_RCV_TOPIC_ATTR_TCP_ACTIVITY_TIMEOUT_TIMER Timer method that requires new TCP session data to be sent to determine if the connection is alive. Default for all.
SO_KEEPALIVE LBM_RCV_TOPIC_ATTR_TCP_ACTIVITY_TIMEOUT_SO_KEEPALIVE Set SO_KEEPALIVE on the TCP connection which uses the TCP keepalive support in the operating system to determine if the connection is alive. When you use the SO_KEEPALIVE method, UM uses transport_tcp_activity_timeout value to set the idle and probe times for SO_KEEPALIVE. The idle time is 90% of the timeout value at most. The probe time is 10% with 10 seconds as the minimum.

4.7.3. transport_tcp_activity_timeout (receiver)

For TCP sessions only. The maximum time that a TCP session may be quiescent before it is deleted and an EOS event is delivered for all topics using this transport session. A value greater than zero turns the timer on.

Scope: receiver
Type: lbm_ulong_t
Units: milliseconds
Default value: 0
When to Set: Can only be set during object initialization.

4.7.4. transport_tcp_coalesce_threshold (source)

The threshold of the maximum number of individual messages that are copied into a single buffer before being sent to the TCP source internals. When used with small messages, this allows TCP to use less memory at the expense of an additional copy operation of the data before being sent. The default values are also the maximum allowable values.

Scope: source
Type: int
Units: number of individual messages
Default value: 1024 for Linux, Microsoft®Windows®; 16 for Solaris, AIX
When to Set: Can only be set during object initialization.
Version: This option was implemented in LBM 3.6/UME 2.3.

4.7.5. transport_tcp_datagram_max_size (context)

The maximum datagram size that can be generated for a TCP transport session. The default value is 65535, the minimum is 500 bytes, and the maximum is 65535.

Scope: context
Type: lbm_uint_t
Units: bytes
Default value: 65535
When to Set: Can only be set during object initialization.
Version: This option was implemented in LBM 4.1/UME 3.1/UMQ 1.1

4.7.6. transport_tcp_exclusiveaddr (source)

Applicable only to Windows. Indicate whether the TCP session should set SO_EXCLUSIVEADDRUSE or not before it binds. The default setting in Windows allows multiple binds to the same port. By default, UM will set SO_EXCLUSIVEADDRUSE to minimize port sharing. Refer to Microsoft's web site for more information on SO_EXCLUSIVEADDRUSE.

Scope: source
Type: int
When to Set: Can only be set during object initialization.
Value Description
1 Set SO_EXCLUSIVEADDRUSE. Default for Windows.
0 Do not set SO_EXCLUSIVEADDRUSE.

4.7.7. transport_tcp_listen_backlog (source)

The backlog used in the TCP listen() call to set the queue length for incoming connections.

Scope: source
Type: int
Units: number of queued connections
Default value: 5
When to Set: Can only be set during object initialization.

4.7.8. transport_tcp_multiple_receiver_behavior (source)

The flow control behavior desired when multiple TCP clients are receiving for a TCP session. If an application is only allowed to send as fast as all receivers can consume data, markedly slower receivers will lose data (have unrecoverably lost UM messages) if they can not keep up with the other faster receivers for the TCP session. Note that at high rates and with receivers that can consume data at fairly similar rates, all receivers may experience some loss at times. This option affects the transport session underlying the source rather than the source itself. The transport session uses the value from the first source created on the session and ignores subsequent sources. Refer to Source Configuration and Transport Sessions for additional information.

Scope: source
Type: int
When to Set: Can only be set during object initialization.
String value Integer value Description
normal LBM_SRC_TOPIC_ATTR_TCP_MULTI_RECV_NORMAL The application sends as fast as the slowest receiver consumes data. This slows down all receivers on that TCP session. Default for all.
bounded_latency LBM_SRC_TOPIC_ATTR_TCP_MULTI_RECV_BOUNDED_LATENCY The application sends as fast as the fastest receiver can consume data even if recent data headed for slower receivers must be discarded.
source_paced LBM_SRC_TOPIC_ATTR_TCP_MULTI_RECV_SOURCE_PACED The application sends as fast as it can even if recent data headed for any or all receivers must be discarded.

4.7.9. transport_tcp_multiple_receiver_send_order (source)

In the case of multiple receivers, this option determines whether datagrams are sent to each receiver in the established order of receivers, or if receivers are selected in random order for each datagram transmission.

Scope: source
Type: lbm_src_topic_attr_t
When to Set: Can only be set during object initialization.
String value Integer value Description
serial LBM_SRC_TOPIC_ATTR_TCP_MULTI_RECV_SEND_ORDER_SERIAL Select receivers to receive a datagram based on current established order. Default for all.
random LBM_SRC_TOPIC_ATTR_TCP_MULTI_RECV_SEND_ORDER_RANDOM For each datagram sent, select receivers in random order, for the sake of "fairness". Note that this option adds a small amount of CPU overhead.

4.7.10. transport_tcp_nodelay (source)

Whether the TCP sockets used for the transport session should set TCP_NODELAY or not. (Setting TCP_NODELAY disables Nagle's algorithm.)

Scope: source
Type: int
When to Set: Can only be set during object initialization.
Value Description
1 TCP transport sockets should set TCP_NODELAY (disable Nagle). Default for all.
0 TCP transport sockets should not set TCP_NODELAY (leave Nagle enabled).

4.7.11. transport_tcp_receiver_socket_buffer (context)

Value used to set SO_RCVBUF value of the TCP receivers for topics. In some cases the OS will not allow all of this value to be used. A value of 0 instructs UM to use the default OS values. See the section on socket buffer sizes for platform-dependent information.

Scope: context
Type: lbm_ulong_t
Units: bytes
Default value: 0 (use OS default)
When to Set: Can only be set during object initialization.

4.7.12. transport_tcp_reuseaddr (source)

Whether the TCP session should set SO_REUSEADDR or not before it binds. WARNING: This option is not recommended for Microsoft Windows users because the SO_REUSEADDR socket option in Windows allows a socket to forcibly bind to a port in use by another socket. Multiple sockets using the same port results in indeterminate behavior.

Scope: source
Type: int
When to Set: Can only be set during object initialization.
Value Description
1 Set SO_REUSEADDR.
0 Do not set SO_REUSEADDR. Default for all.

4.7.13. transport_tcp_sender_socket_buffer (source)

Value used to set the SO_SNDBUF value of the TCP session. In some cases the OS will not allow all of this value to be used. A value of 0 instructs UM to use the OS defaults. See the section on socket buffer sizes for platform-dependent information.

Scope: source
Type: lbm_ulong_t
Units: bytes
Default value: 0 (use OS default)
When to Set: Can only be set during object initialization.

Copyright (c) 2004 - 2014 Informatica Corporation. All rights reserved.