Configuration Guide

Multicast Immediate Messaging Operation Options

For many MIM operation options, there is a corresponding LBT-RM operation option. For more information on how MIM operation options interact and for illustrations, see Transport LBT-RM Operation Options.

Attention
  MIM reception is disabled by default. If you want an application to be able to receive MIM messages, you must set the configuration option mim_address (context) to the desired multicast group address.

Note that the LBT-RM rate controller also governs MIM transmission rates. Hence there is no separate option for setting MIM transmission rate.

See also Multicast Immediate Messaging for general information on MIM.

# Reference <-

## immediate_message_receiver_function (context) <-

  Callback function (and associated event queue and client data pointer) called when a topicless immediate message is received.

  A value of NULL (the default) disables this feature.

  Alternatively, the API lbm_context_rcv_immediate_msgs() can be used.

  See Immediate Messaging for general information on immediate messages.

  Scope: | context
  Type: | lbm_context_rcv_immediate_msgs_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.

## immediate_message_topic_receiver_function (context) <-

  Callback function (and associated event queue and client data pointer) that is called when an immediate message is received for a topic for which there is no receiver.

  A value of NULL (the default) disables this feature.

  Alternatively, the API lbm_context_rcv_immediate_topic_msgs() can be used.

  See Immediate Messaging for general information on immediate messages.

  Scope: | context
  Type: | lbm_context_rcv_immediate_msgs_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.

## mim_activity_timeout (context) <-

  The maximum time that an LBT-RM session may be quiescent before it is deleted and an EOS event is delivered for all topics using this transport session.

  For multicast immediate message receivers only. Similar to transport_lbtrm_activity_timeout (receiver). However, multicast immediate message channels do not deliver an EOS indication.

  See Multicast Immediate Messaging for general information about MIM.

  Scope: | context
  Type: | lbm_ulong_t
  Units: | milliseconds
  Default value: | 60000 (60 seconds)
  When to Set: | Can only be set during object initialization.

## mim_delivery_control_activity_check_interval (context) <-

  The interval between activity checks of a Multicast Immediate Messaging delivery controller.

  Multiple MIM delivery controllers may exist to accommodate multiple messages from a single MIM sender received across more than one DRO. These multiple delivery controllers allow for duplicate message detection.

  See Multicast Immediate Messaging for general information about MIM.

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

## mim_delivery_control_activity_timeout (context) <-

  The maximum time that a Multicast Immediate Messaging delivery controller may be quiescent before it is deleted.

  MIM delivery controllers may be created to accommodate multiple messages from a single MIM sender received across more than one DRO. These multiple delivery controllers allow for duplicate message detection.

  See Multicast Immediate Messaging for general information about MIM.

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

## mim_delivery_control_order_tablesz (context) <-

  For multicast immediate messages with ordered delivery, this controls the size of the hash table used to hold data.

  See Multicast Immediate Messaging for general information about MIM.

  Scope: | context
  Type: | size_t
  Units: | table entries
  Default value: | 1031
  When to Set: | Can only be set during object initialization.

## mim_implicit_batching_interval (context) <-

  The maximum timeout between when the first message of an implicitly batched immediate message is queued until the batch is sent. A message will not stay in the queue longer than this value before being sent in the worst case.

  See Implicit Batching for details. See Multicast Immediate Messaging for general information about MIM.

  Scope: | context
  Type: | lbm_ulong_t
  Units: | milliseconds
  Default value: | 200 (0.2 seconds)
  When to Set: | Can only be set during object initialization.

## mim_implicit_batching_minimum_length (context) <-

  The minimum length of an implicitly batched multicast immediate message. When the total length of the implicitly batched messages reaches or exceeds this value, the batch is sent.

  See Implicit Batching for details. See Multicast Immediate Messaging for general information about MIM.

  Scope: | context
  Type: | size_t
  Units: | bytes
  Default value: | 2048 (8192 for Microsoft Windows)
  When to Set: | Can only be set during object initialization.

## mim_ordered_delivery (context) <-

  For multicast immediate messages only. Indicates whether or not the MIM source should have its data delivered in order.

  The default value also guarantees fragmentation and reassembly of large messages. Changing this option from the default value results in large messages being delivered as individual fragments of less than 8K each, requiring the application to reassemble them. See also Ordered Delivery for more information about large message fragmentation and reassembly.

  See Multicast Immediate Messaging for general information about MIM.

  Scope: | context
  Type: | int
  When to Set: | Can only be set during object initialization.

  Value | Description
  --- | ---
  1 | Indicates the source should have its data delivered in order. Default for all.
  0 | The source should have its data delivered as soon as possible and may come in out of order.

## mim_sm_maximum_interval (context) <-

  The maximum interval between LBT-RM session messages.

  For multicast immediate message senders only. Similar to transport_lbtrm_sm_maximum_interval (source).

  See Multicast Immediate Messaging for general information about MIM.

  Scope: | context
  Type: | lbm_ulong_t
  Units: | milliseconds
  Default value: | 10000 (10 seconds)
  When to Set: | Can only be set during object initialization.

## mim_sm_minimum_interval (context) <-

  The minimum interval between LBT-RM session messages.

  For multicast immediate message senders only. Similar to transport_lbtrm_sm_minimum_interval (source).

  See Unicast Immediate Messaging for more information.

  Scope: | context
  Type: | lbm_ulong_t
  Units: | milliseconds
  Default value: | 200 (0.2 seconds)
  When to Set: | Can only be set during object initialization.

## mim_sqn_window_increment (context) <-

  Determines the increment by which the sequence number window is moved when detecting the receipt of duplicate multicast immediate messages.

  For multicast immediate message receivers only.

  Must be a multiple of 8 and an even divisor of mim_sqn_window_size (context).

  See Multicast Immediate Messaging for general information about MIM.

  Scope: | context
  Type: | lbm_ulong_t
  Units: | messages
  Default value: | 8192
  When to Set: | Can only be set during object initialization.
  Version: | This option was implemented in LBM 4.2.8/UME 3.2.8/UMQ 2.1.8

## mim_sqn_window_size (context) <-

  For multicast immediate message receivers only. Determines the window size used to detect the receipt of duplicate multicast immediate messages. Must be a multiple of 8.

  See Multicast Immediate Messaging for general information about MIM.

  Scope: | context
  Type: | lbm_ulong_t
  Units: | messages
  Default value: | 16384
  When to Set: | Can only be set during object initialization.
  Version: | This option was implemented in LBM 4.2.8/UME 3.2.8/UMQ 2.1.8

## mim_src_deletion_timeout (context) <-

  The timeout after a multicast immediate message is sent before the internal source is deleted and cleaned up.

  See Multicast Immediate Messaging for general information about MIM.

  Scope: | context
  Type: | lbm_ulong_t
  Units: | milliseconds
  Default value: | 30000 (30 seconds)
  When to Set: | Can only be set during object initialization.

## mim_tgsz (context) <-

  The transmission group size used for this Topic when LBT-RM is used.

  For multicast immediate message senders only. Similar to transport_lbtrm_tgsz (source).

  See Unicast Immediate Messaging for more information.

  Scope: | context
  Type: | lbm_uint16_t
  Units: | packets
  Default value: | 8
  When to Set: | Can only be set during object initialization.

## mim_unrecoverable_loss_function (context) <-

  Callback function (and associated client data pointer) that is called when a MIM receiver has unrecoverable loss.

  This callback is called by the context thread and can not use an event queue. Therefore the callback function used should not block or it will delay reception of latency-sensitive messages.

  See Multicast Immediate Messaging for general information about MIM.

  Scope: | context
  Type: | lbm_mim_unrecloss_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.