4.2. Major Options

Options in this group have a major impact on the operation of Ultra Messaging®. Most UM application developers will need to be aware of the default values of these options or perhaps override them.

4.2.1. context_event_function (context)

Callback function (and associated client data pointer) that is called when a context event occurs. This callback may be called inline or from an event queue, if one is given. If called inline, the callback function used should not block or it will block the context thread processing. A value of NULL for the callback turns off the callback being called.

Scope: context
Type: string
When to Set: Can only be set during object initialization.
Version: This option was implemented in UMQ 1.0.

4.2.2. context_name (context)

The name of the context, limited to 128 alphanumeric characters, hyphens or underscores.

Scope: context
Type: string
When to Set: Can only be set during object initialization.
Version: This option was implemented in LBM 4.3/UMP 3.3/UMQ 2.3.

4.2.3. fd_management_type (context)

Define the mechanism UM uses for socket file descriptor (FD) management. For more information, search on "file descriptors" in the Informatica Knowledge Base.

Scope: context
Type: int
When to Set: Can only be set during object initialization.
String value Integer value Description
poll LBM_CTX_ATTR_FDTYPE_POLL FD management uses poll(). Unix only.
select LBM_CTX_ATTR_FDTYPE_SELECT FD management uses select(). Default for Unix. Unix only.
epoll LBM_CTX_ATTR_FDTYPE_EPOLL FD management uses epoll(). Linux kernel 2.6 or later only.
devpoll LBM_CTX_ATTR_FDTYPE_DEVPOLL FD management uses the /dev/poll driver. Solaris 8 or later only.
kqueue LBM_CTX_ATTR_FDTYPE_KQUEUE FD management uses the BSD kqueue notification system. Mac OS X only.
wsaeventselect LBM_CTX_ATTR_FDTYPE_WSAEV FD management uses WSAEventSelect() and WaitForMultipleObjects(). Creates a limit of 64 file descriptors. Default for Windows. Windows only.
wincompport LBM_CTX_ATTR_FDTYPE_WINCPORT FD management uses Windows completion ports and completion routines. Disables the 64 file descriptor limit set by WSAEventSelect(). Windows XP or later only.

4.2.4. message_selector (receiver)

Enables UM to pass a message selector string to any receiver. The value must be an expression that conforms to JMS message selector syntax as defined in the Oracle JMS specification. For a UM receiver used with UMP, please see the Native Applications section in UM JMS Guide.

Scope: receiver
Type: string
Default value: NULL
When to Set: Can only be set during object initialization.
Version: This option was implemented in UMQ 5.3.

4.2.5. network_compatibility_mode (context)

This option attempts to maintain wire-level backwards compatibility with older releases by blocking the sending of some (though possibly not all) newer message header types. See Network Compatibility Mode for more information and option values.

Scope: context
Type: int
When to Set: Can only be set during object initialization.
Version: This option was implemented in LBM 4.2/UME 3.2/UMQ 2.1.

4.2.6. operational_mode (context)

The mode in which UM operates to process events. Refer to Embedded and Sequential Mode for additional information.

Scope: context
Type: int
When to Set: Can only be set during object initialization.
String value Integer value Description
embedded LBM_CTX_ATTR_OP_EMBEDDED A thread is spawned within UM to handle processing of events (timers and socket events). Default for all.
sequential LBM_CTX_ATTR_OP_SEQUENTIAL The application is responsible for calling lbm_context_process_events() to process events. Sequential mode does not support Multi-Transport Threads.

4.2.7. ordered_delivery (receiver)

For LBT-RM, LBT-RU, TCP-LB or LBT-IPC transport sessions only. (This option also applies to TCP when using Late Join because the Late Join messages are not part of the TCP message stream.) Indicates whether or not the topic should have its data delivered in order and reassembled. The default value guarantees ordering and reassembly of large messages. Reassembly of large messages is optional. Changing this option from the default value to a value of 0 (zero) results in messages being delivered as soon as they arrive. Value -1 allows arrival order delivery after the reassembly of large messages. See also Ordered Delivery for more information about large message fragmentation and reassembly.

Scope: receiver
Type: int
When to Set: Can only be set during object initialization.
String value Integer value Description
"1" (Integer value as a string.) 1 UM delivers topic messages to a receiver in-order and reassembles large messages. Default for all.
"0" (Integer value as a string.) 0 UM delivers topic messages to a receiver as they arrive and may be out of order. Duplicate delivery is possible. UM delivers large messages as individual fragments of less than the maximum datagram size for the transport in use.
"-1" (Integer value as a string.) -1 UM delivers topic messages to a receiver as they arrive and may be out of order. Duplicate delivery is possible. However, UM reassembles large messages. Your application can use the sequence_number field of lbm_msg_t objects to order or discard messages.

4.2.8. rcv_sync_cache (receiver)

Ultra Messaging Cache only - a valid cache address (such as TCP:192.168.5.11:4567) in the standard form of TCP:address:port enables a UM receiver to use UMCache to receive a snapshot of larger, multiple-field messages stored by UMCache. Receiving applications can then become synchronized with the live stream of messages sent on the receiver's topic. address is the IP address of the machine where the UMCache runs and port is the configured port where the cache request handler listens.

Scope: receiver
Type: umcache_reqlib_request_info_t
Default value: NULL
When to Set: Can only be set during object initialization.
Version: This option was implemented in UMS 5.0/UMP 5.0/UMQ 5.0

4.2.9. rcv_sync_cache_timeout (receiver)

Ultra Messaging Cache only - The maximum time period that a UM receiver waits for a snapshot message from the UMCache .

Scope: receiver
Type: lbm_ulong_t
Units: milliseconds
Default value: 2000 (2 seconds)
When to Set: Can only be set during object initialization.
Version: This option was implemented in UMS 5.0/UMP 5.0/UMQ 5.0

4.2.10. receive_thread_pool_size (context)

For LBT-RM, LBT-RU, or TCP-LB transport sessions only. Defines the maximum number of threads available for transports (excluding the context thread). See Multi-Transport Threads.

Scope: context
Type: int
Default value: 4
When to Set: Can only be set during object initialization.
Version: This option was implemented in LBM 4.1/UME 3.1.

4.2.11. resolver_context_advertisement_interval (context)

Interval between context advertisements. Setting this option to 0 disables context advertisements, though gateway and other functionality depends upon context advertisements, so a value of 0 is not generally recommended.

Scope: context
Type: lbm_ulong_t
Units: milliseconds
Default value: 10000 (10 seconds)
When to Set: Can only be set during object initialization.
Version: This option was implemented in LBM 4.1

4.2.12. resolver_source_notification_function (context)

Callback function (and associated client data pointer) that is called when a new source is seen for any topic. This callback is called directly in line and does not use the event queue. Therefore the callback function used should not block or it will block the context thread processing. A value of NULL for the callback turns off the callback being called.

Scope: context
Type: lbm_src_notify_func_t
Default value: NULL
When to Set: Can only be set during object initialization.
Config File: Cannot be set from an UM configuration file.

4.2.13. source_cost_evaluation_function (context)

Callback function that you can use in the lbm_src_cost_function_cb() to evaluate or determine the cost of a message path. The UM Gateway evaluates the cost of any new topic it detects. The callback supplied with this option can affect the cost of topics to bias the UM Gateway toward certain message paths. A value of NULL for the callback turns off the callback being called. See also Applications Can Also Set the Topic Cost.

Scope: context
Type: lbm_src_cost_func_t
Default value: NULL
When to Set: Can only be set during object initialization.
Config File: Cannot be set from an UM configuration file.
Version: This option was implemented in UMS 5.0/UMP 5.0/UMQ 5.0

4.2.14. source_event_function (context)

Callback function (and associated client data pointer) that is called when a context source event (such as a multicast immediate mode source wakeup event) occurs. This callback may be called inline or from an event queue, if one is given. If called inline, the callback function used should not block or it will block the context thread processing. A value of NULL for the callback turns off the callback being called.

Scope: context
Type: lbm_context_src_event_func_t
Default value: NULL
When to Set: Can only be set during object initialization.
Config File: Cannot be set from an UM configuration file.
Version: This option was implemented in LBM 3.4/UME 2.1.

4.2.15. source_includes_topic_index (context)

Determines whether the topic index is included in the source string generated for messages and new source notifications.

Scope: context
Type: int
When to Set: Can only be set during object initialization.
Version: This option was implemented in LBM 3.6/UME 3.0.
Value Description
1 Indicates the topic index should be included in the source string. Default for all.
0 Indicates the topic index should not be included.

4.2.16. transport (source)

The transport type to be used for created sources.

Scope: source
Type: int
When to Set: Can only be set during object initialization.
String value Integer value Description
tcp LBM_SRC_TOPIC_ATTR_TRANSPORT_TCP TCP over IPv4 Default for all.
lbtrm, lbt-rm LBM_SRC_TOPIC_ATTR_TRANSPORT_LBTRM UDP-based reliable multicast with unicast NAKs
lbtru, lbt-ru LBM_SRC_TOPIC_ATTR_TRANSPORT_LBTRU UDP-based reliable unicast with unicast NAKs
lbtipc, lbt-ipc LBM_SRC_TOPIC_ATTR_TRANSPORT_LBTIPC InterProcess Communication between processes on the same host using a shared memory area.
lbtrdma, lbt-rdma LBM_SRC_TOPIC_ATTR_TRANSPORT_LBTRDMA Voltaire® InfiniBand Remote Direct Memory Access transport between hosts using a shared memory area.

4.2.17. transport_demux_tablesz (receiver)

Specifies the size of the table used for storing receiver delivery controllers used by UM for message delivery. Must be a power of two (1, 2, 4, 8, 16, etc.). If not a power of two, UM generates a log warning and uses the next highest power of two. For most use cases with low to moderate numbers of topics per transport session, the default suffices. For large numbers of topics and in cases where the lowest latency is desired, set the option to the next highest power of two for the number of topics expected on the transport session.

Scope: receiver
Type: size_t
Default value: 1
When to Set: Can only be set during object initialization.
Version: This option was implemented in LBM 4.2/UME 3.2.

4.2.18. transport_session_multiple_sending_threads (context)

Flag to indicate the application intends to use multiple sending threads per transport session.

Scope: context
Type: int
When to Set: Can only be set during object initialization.
Value Description
1 Indicates the application does intend to use multiple sending threads per transport session and that UM should make that assumption. Default for all.
0 Indicates the application does not intend to use multiple sending threads per transport session and that UM should make that assumption.

4.2.19. transport_source_side_filtering_behavior (source)

The filtering behavior desired when TCP and LBT-RU clients are connected. Any other value besides none requires that the clients send unicast messages to the source. These control messages are sent to the TCP request port of the senders context and processed internally. This option affects the transport session underlying the source rather than the source itself. 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
none LBM_SRC_TOPIC_ATTR_SSF_NONE The source sends all data to all clients regardless of the topics they are listening to. Default for all.
inclusion LBM_SRC_TOPIC_ATTR_SSF_INCLUSION The source sends only that data to a client that the client specifically requests.

4.2.20. transport_topic_sequence_number_info_active_threshold (source)

Duration in seconds that an inactive source sends contiguous Topic Sequence Number Info (TSNI) messages. (Inactive sources send TSNI messages according to the transport_topic_sequence_number_info_interval.) A value of 0 indicates that sources continue sending TSNIs until data messages resume, with no timeout. See also Interrelated Configuration Options.

Scope: source
Type: lbm_ulong_t
Units: seconds
Default value: 60
When to Set: Can only be set during object initialization.
Version: This option was implemented in LBM 4.0

4.2.21. transport_topic_sequence_number_info_interval (source)

The interval between Topic Sequence Number Info (TSNI) messages that a source sends. TSNI messages are enabled on all transports and they carry the topic sequence number of the latest message sent by the source. The interval is also a source inactivity threshold. In other words, a source does not send TSNIs during normal data transmission, but once the source is inactive for as long as this interval, it starts sending TSNI messages. A value of 0 turns off TSNI messages for the source. See also Interrelated Configuration Options.

Scope: source
Type: lbm_ulong_t
Units: milliseconds
Default value: 5000 (5 second)
When to Set: Can only be set during object initialization.

4.2.22. use_extended_reclaim_notifications (source)

Specifies which reclaim notification your application receives. The expanded notification, LBM_SRC_EVENT_UME_MESSAGE_RECLAIMED_EX, contains a flag, LBM_SRC_EVENT_UME_MESSAGE_RECLAIMED_EX_FLAG_FORCED that UMP sets if the reclamation is a forced reclaim.

Scope: source
Type: int
When to Set: Can only be set during object initialization.
Version: This option was implemented in LBM 4.2.
Value Description
1 Indicates your application receives the expanded reclaim notification. Default for all.
0 Indicates your application receives the standard reclaim notification that is identical to the expanded notification but without the "Forced" flag.

4.2.23. use_transport_thread (receiver)

For LBT-RM, LBT-RU, or TCP-LB transport sessions only. Determines whether UM uses a thread from the receiver thread pool to process message data or if it uses the context thread, which is the default. See Multi-Transport Threads.

Scope: receiver
Type: int
When to Set: Can only be set during object initialization.
Version: This option was implemented in LBM 4.1/UME 3.1.
String value Integer value Description
"1" (Integer value as a string.) 1 UM uses a thread from the receiver thread pool.
"0" (Integer value as a string.) 0 UM uses the context thread to process message data. Default for all.

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