The options described in this section are for persistence, and are invalid for users of the UMS (streaming-only) product.
See the Guide for Persistence for more information.
Reference <-
ume_ack_batching_interval (context) <-
- The interval between checks by UME of consumed, unacknowledged messages.
- See also ume_use_ack_batching (receiver).
- See Batching Acknowledgments for more information.
Scope: | context |
Type: | lbm_ulong_t |
Units: | milliseconds |
Default value: | 100 (0.1 seconds) |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in UMS 5.0, UME 5.0, UMQ 5.0. |
ume_activity_timeout (receiver) <-
- Establishes the period of time from a receiver's last activity to the release of the receiver's Reg ID. Stores return an error to any new request for the receiver's Reg ID during this period.
- Overrides the receiver-activity-timeout setting configured for the receiver's topic on the store. The default value of 0 (zero) disables this option.
- See also Persistence Proxy Sources.
Scope: | receiver |
Type: | lbm_ulong_t |
Units: | milliseconds |
Default value: | 0 (zero) |
When to Set: | Can only be set during object initialization. |
ume_activity_timeout (source) <-
- Establishes the period of time from a source's last activity to the release of the source's Reg ID. Stores return an error to any new source requesting the source's Reg ID during this period.
- If proxy sources are enabled (ume_proxy_source (source)), the store does not release the source's Reg ID and UME elects a proxy source. Overrides the source-activity-timeout setting configured for the source's topic on the store. The default value of 0 (zero) disables this option.
- If neither proxy sources nor ume_state_lifetime (source) are configured, the store also deletes the source's state and cache.
- See also Persistence Proxy Sources.
Scope: | source |
Type: | lbm_ulong_t |
Units: | milliseconds |
Default value: | 0 (zero) |
When to Set: | Can only be set during object initialization. |
ume_allow_confirmed_delivery (receiver) <-
- Specifies whether or not UME allows the sending of confirmed delivery notifications back to the source.
- See also ume_confirmed_delivery_notification (source).
- For more information, see Delivery Confirmation Concept.
Scope: | receiver |
Type: | int |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in UM 5.0. |
Value | Description |
1 | Indicates that UME can send confirmed delivery notifications. Default for all. |
0 | Indicates that UME can not send confirmed delivery notifications.
|
ume_application_outstanding_maximum (receiver) <-
- This UMP receiver option enables the UMP Throttled Delivery feature and sets an upper threshold on the number of message fragments from a single source that are delivered or in an event queue, but not yet consumed.
- When the number of message fragments exceeds this threshold, the receiver stops buffering all incoming message fragments. Thus, messages from the source transport stream might be dropped and recovered via OTR or UMP late-join mechanisms.
- This feature effectively limits the recovery rate and live stream rate to the receiver message consumption rate. If OTR is disabled for the receiver, this threshold applies only during initial Late Join recovery. Setting this option to 0 (zero) disables the UMP Throttled Delivery feature.
Scope: | receiver |
Type: | lbm_ulong_t |
Units: | message fragments |
Default value: | 0 (disabled) |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in UMP 6.7 |
ume_confirmed_delivery_notification (source) <-
- Flag indicating the application is interested in receiving notifications of consumption of messages by receivers (confirmed delivery) via the source event mechanism.
- Generates the source events LBM_SRC_EVENT_UME_DELIVERY_CONFIRMATION and/or LBM_SRC_EVENT_UME_DELIVERY_CONFIRMATION_EX. When turned off, receivers do not send delivery confirmation notifications to the source unless the release policy dictates the need for them. For more information, see Delivery Confirmation Concept.
- Note
- Smart Sources do not support delivery confirmation.
Scope: | source |
Type: | int |
When to Set: | Can only be set during object initialization. |
String value | Integer value | Description |
"0" | LBM_SRC_TOPIC_ATTR_UME_CDELV_EVENT_NONE | The source does not wish to receive delivery confirmation notifications. Default for all. |
"1" | LBM_SRC_TOPIC_ATTR_UME_CDELV_EVENT_PER_FRAGMENT | The source wishes to receive delivery confirmation notifications for all messages and message fragments.
|
"2" | LBM_SRC_TOPIC_ATTR_UME_CDELV_EVENT_PER_MESSAGE | The source wishes to receive only one delivery confirmation for a message regardless of how many fragments it comprised.
|
"3" | LBM_SRC_TOPIC_ATTR_UME_CDELV_EVENT_FRAG_AND_MSG | The source wishes to receive delivery confirmation notifications for all messages and message fragments. In addition, the notification contains a WHOLE_MESSAGE_CONFIRMED flag when the last fragment of a message has been delivered.
|
ume_consensus_sequence_number_behavior (receiver) <-
- The behavior that the receiver will follow when determining the consensus sequence number used as the sequence number to begin reception at upon re-registration after a failure or suspension.
- This setting is only used when quorum-consensus is also used on the source.
Scope: | receiver |
Type: | int |
When to Set: | Can only be set during object initialization. |
String value | Integer value | Description |
"lowest" | LBM_RCV_TOPIC_ATTR_UME_QC_SQN_BEHAVIOR_LOWEST | Consensus is determined as the lowest of the latest sequence numbers seen from any store.
|
"majority" | LBM_RCV_TOPIC_ATTR_UME_QC_SQN_BEHAVIOR_MAJORITY | Consensus is determined as the latest sequence number agreed upon by the majority of stores within a group. Between groups, the latest of all majority decisions is used. Default for all. |
"highest" | LBM_RCV_TOPIC_ATTR_UME_QC_SQN_BEHAVIOR_HIGHEST | Consensus is determined as the highest of the latest sequence numbers seen from any store.
|
ume_consensus_sequence_number_behavior (source) <-
- The behavior that the source follows when determining the consensus sequence number used as the first message of a source upon re-registration after a failure or suspension.
- This setting is only used when quorum-consensus is also used.
Scope: | source |
Type: | int |
When to Set: | Can only be set during object initialization. |
String value | Integer value | Description |
"lowest" | LBM_SRC_TOPIC_ATTR_UME_QC_SQN_BEHAVIOR_LOWEST | Consensus is determined as the lowest of the latest sequence numbers seen from any store.
|
"majority" | LBM_SRC_TOPIC_ATTR_UME_QC_SQN_BEHAVIOR_MAJORITY | Consensus is determined as the latest sequence number agreed upon by the majority of stores within a group. Between groups, the latest of all majority decisions is used.
|
"highest" | LBM_SRC_TOPIC_ATTR_UME_QC_SQN_BEHAVIOR_HIGHEST | Consensus is determined as the highest of the latest sequence numbers seen from any store. Default for all. |
ume_explicit_ack_only (receiver) <-
- Flag indicating if the receiver should automatically send acknowledgements to any stores and to the source or if the application desires to explicitly generate acknowledgements itself.
- See also Explicit Acknowledgments.
Scope: | receiver |
Type: | int |
When to Set: | Can only be set during object initialization. |
Value | Description |
1 | The receiving application will generate acknowledgements explicitly and the UME receiver should not automatically generate them.
|
0 | The UME receiver will automatically generate and send acknowledgements based on message consumption. Default for all. |
ume_flight_size (source) <-
- Specifies the number of messages allowed to be in flight (unstabilized at a store and without delivery confirmation) before a new message send either blocks or triggers a notification (source event).
- See ume_flight_size_behavior (source).
- Note that the flight size is also limited by ume_flight_size_bytes (source). The blocking behavior is enforced if either threshold is met.
- Note: for very small flight sizes, it is recommended to configure the Store's UM config option response_tcp_nodelay (context) to 1.
Scope: | source |
Type: | unsigned int |
Units: | messages |
Default value: | 1000 |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in LBM 4.1.1/UME 3.1.1 |
ume_flight_size_behavior (source) <-
- The behavior that UME follows when a message send exceeds the source's flight size.
- See ume_flight_size (source).
Scope: | source |
Type: | int |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in LBM 4.1.1/UME 3.1.1 |
String value | Integer value | Description |
"Block" | LBM_FLIGHT_SIZE_BEHAVIOR_BLOCK | The send call blocks when a source sends a message that exceeds its flight size. If the source uses a non-blocking send, the send returns an LBM_EWOULD_BLOCK. Default for all. |
"Notify" | LBM_FLIGHT_SIZE_BEHAVIOR_NOTIFY | A message send that exceeds the configured flight size does not block but triggers a flight size notification (source event), indicating that the flight size has been surpassed. UME also sends a source event notification if the number of in-flight messages falls below the configured flight size.
|
ume_flight_size_bytes (source) <-
- Specifies the number of bytes of message payload allowed to be in flight (unstabilized at a store and without delivery confirmation) before a new message send either blocks or triggers a notification source event.
- See ume_flight_size_behavior (source).
- Note that the flight size is also limited by ume_flight_size (source). The blocking behavior is enforced if either threshold is met. If ume_flight_size_bytes is set to zero, then only ume_flight_size is used.
- If using Receiver-paced Persistence, this option must be greater than 0 (zero) but less than or equal to the repository's source-flight-size-bytes-maximum value, otherwise the source registration will fail. See Implementing RPP for more information on the coordination between RPP source and store configuration options.
- Note: for very small flight sizes, it is recommended to configure the Store's UM config option response_tcp_nodelay (context) to 1.
Scope: | source |
Type: | lbm_uint64_t |
Units: | bytes |
Default value: | 0 (disabled) |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in UME 5.3 |
ume_force_reclaim_function (source) <-
- Callback function (and associated client data pointer) that is called when a source is forced to release a retained message due to size limitations specified.
- 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.
Scope: | source |
Type: | lbm_ume_src_force_reclaim_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. |
ume_late_join (source) <-
- Flag indicating the source should allow late join operation for receivers and persistent stores.
- This option is retained for backwards compatibility. The late_join (source) setting should be used instead.
Scope: | source |
Type: | int |
When to Set: | Can only be set during object initialization. |
Value | Description |
1 | The source allows late join receivers and persistent stores.
|
0 | The source does not allow late join receivers or persistent stores. Default for all. |
ume_message_stability_lifetime (source) <-
- The total time in milliseconds from the initial send of a message before a UMP source gives up entirely on receiving a stability acknowledgement for the message.
- The source then delivers a forced reclaim notice to the application. This option is part of the Proactive Retransmissions feature.
Scope: | source |
Type: | lbm_ulong_t |
Units: | milliseconds |
Default value: | 1200000 (20 minutes) |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in UME 6.0 |
ume_message_stability_notification (source) <-
- Flag indicating the source is interested in receiving notifications of message stability from persistent stores via the source event mechanism.
- Even when turned off, stores continue to send message stability notifications to the source for retention purposes. However, no notification will be delivered to the application.
- Note
- Smart Sources only support "0" (none) or "2" (per-message).
Scope: | source |
Type: | int |
When to Set: | Can only be set during object initialization. |
String value | Integer value | Description |
"0" | LBM_SRC_TOPIC_ATTR_UME_STABLE_EVENT_NONE | The source does not wish to receive message stability notifications from the store.
|
"1" | LBM_SRC_TOPIC_ATTR_UME_STABLE_EVENT_PER_FRAGMENT | The source wishes to receive all message and message fragment stability notifications from the store. Default for all. |
"2" | LBM_SRC_TOPIC_ATTR_UME_STABLE_EVENT_PER_MESSAGE | The source wishes to receive only a single message stability notifications from the store when the entire message has been stabilized. This notification contains the Sequence Number of the last fragment of the whole message but does NOT contain store information.
|
"3" | LBM_SRC_TOPIC_ATTR_UME_STABLE_EVENT_FRAG_AND_MSG | The source wishes to receive all message and message fragment stability notifications from the store. In addition, the notification contains a WHOLE_MESSAGE_STABLE flag when the last fragment of a message has been stabilized.
|
ume_message_stability_timeout (source) <-
- The time in milliseconds from initial send of a message until it is resent by the source because the source has not received a stability acknowledgement for the store (or a quorum of stores).
- Setting this option to 0 (zero) disables the Proactive Retransmissions feature.
Scope: | source |
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 UME 6.0 |
ume_proactive_keepalive_interval (context) <-
- Maximum period of inactivity after which a persistent receiver proactively sends an acknowledgement to the store.
- A persistent receiver sends consumption acknowledgements to the store to update that receiver's state in the store. In the absence of new consumption acknowledgments, a receiver will re-send the most-recent acknowledgement periodically to maintain that state. The ume_proactive_keepalive_interval option specifies the maximum interval between successive acknowledgements. This value should be set less than the ume_activity_timeout (receiver) and the state lifetime, ideally no more than 1/3 of the lesser of those two. Valid settings are greater than or equal to 1500 (1.5 seconds, the effective minimum), or zero to disable proactive keepalives and revert to pre-UM 6.9 keepalive behavior.
- Note that disabling proactive keepalives is generally not recommended, and cannot be done for a persistent receiver which is assigned to a Transport Services Provider (XSP).
Scope: | context |
Type: | lbm_ulong_t |
Units: | milliseconds |
Default value: | 3000 (3 seconds) |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in UME 6.9.1 |
ume_proxy_source (source) <-
- Controls whether any stores with which the source registers should provide a proxy source in the event the actual source terminates.
- Proxy source support is only available for quorum/consensus store configurations. In addition, proxy source support requires that the source register with an actual registration ID, and not request that the store assign it a registration ID.
Scope: | source |
Type: | int |
Default value: | 0 |
When to Set: | Can only be set during object initialization. |
Value | Description |
1 | Enables proxy source support.
|
0 | Disables proxy source support. Default for all. |
ume_receiver_liveness_interval (context) <-
- The maximum interval between delivery confirmations or keepalive messages send to the source.
- Expiration of this interval triggers another keepalive and an interval reset.
Scope: | context |
Type: | int |
Units: | milliseconds |
Default value: | 0 (disable; do not send keepalives) |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in UME 5.2. |
ume_receiver_paced_persistence (receiver) <-
- Enables Receiver-paced Persistence (RPP) for the receiver, and specifies the blocking behavior.
- If the source and store agree that the topic is receiver-paced, a receiver that leaves this option at 0 will have a store registration error. Similarly, if the source and store agree that the topic is source paced, a receiver setting this option to 1 or 2 will have a store registration error. See Receiver-paced Persistence Operations for additional information. Also see repository-allow-receiver-paced-persistence.
Scope: | receiver |
Type: | lbm_uint8_t |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in UME 5.3. Value "2" was added in UME 6.9 |
String value | Integer value | Description |
"0" | 0 | Indicates that the receiver is not a RPP receiver. Default for all. |
"1" | 1 | Indicates that the receiver is a blocking RPP receiver.
|
"2" | 2 | Indicates that the receiver is a non-blocking RPP receiver.
|
ume_receiver_paced_persistence (source) <-
- Specifies that the source is a Receiver-paced Persistence (RPP) source and may change certain topic repository options to values allowed by the repository.
- If the repository has set repository-allow-receiver-paced-persistence to 0 (disable), setting this option to 1 creates a store registration error. See Receiver-paced Persistence Operations for additional information.
Scope: | source |
Type: | lbm_uint8_t |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in UME 5.3 |
Value | Description |
1 | Indicates that source is a RPP source.
|
0 | Indicates that source is not a RPP source. Default for all. |
ume_recovery_sequence_number_info_function (receiver) <-
- Callback function (and associated client data pointer) that is called when a receiver is about to complete registration from the stores in use by the source and the low sequence number is to be determined.
- The application has the ability to modify the sequence number to use if it desires.
- 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.
Scope: | receiver |
Type: | lbm_ume_rcv_recovery_info_ex_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. |
ume_registration_extended_function (receiver) <-
- Callback function (and associated client data pointer) that is called when a receiver is about to attempt to register with a persistent store.
- The app must return the registration ID to request from the store or 0 if it will allow the store to allocate one. This function passes additional extended information, such as the store being used and a source client data pointer, etc.
- 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.
Scope: | receiver |
Type: | lbm_ume_rcv_regid_ex_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. |
ume_registration_function (receiver) <-
- Callback function (and associated client data pointer) that is called when a receiver is about to attempt to register with a persistent store.
- The app must return the registration ID to request from the store or 0 if it will allow the store to allocate one.
- 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.
- This option is retained for backwards compatibility. The ume_registration_extended_function (receiver) setting should be used instead.
Scope: | receiver |
Type: | lbm_ume_rcv_regid_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. |
ume_registration_interval (receiver) <-
- The interval between registration attempts by the receiver to a persistent store in use by the source.
- For networks with large numbers of receivers connecting to a store, this value can be increased to reduce the registration load on the store.
Scope: | receiver |
Type: | lbm_ulong_t |
Units: | milliseconds |
Default value: | 3000 (3 seconds) |
When to Set: | Can only be set during object initialization. |
ume_registration_interval (source) <-
- The interval between registration attempts by the source. Before declaring Registration Complete, sources wait at least one full interval, unless all stores have registered.
- When using the round-robin store behavior, this is the value between registration attempts with the various stores. In other words, attempt to register with primary, wait interval, attempt to register with secondary, wait interval, etc.
Scope: | source |
Type: | lbm_ulong_t |
Units: | milliseconds |
Default value: | 3000 (3 seconds) |
When to Set: | Can only be set during object initialization. |
ume_repository_ack_on_reception (source) <-
- For Receiver-paced Persistence (RPP) sources with a repository-type of
disk
or reduced-fd
, specifies that the stability acknowledgement should be sent upon message reception by the store instead of when the message has been written to disk.
- Note that this reduces the robustness of the persisted stream and makes it more susceptible to message loss in the event of multiple failures.
- This source option is ignored if RPP is not enabled. With non-RPP sources, the store's acknowledgement behavior is controlled directly by the store's repository-allow-ack-on-reception configuration element.
- When RPP is enabled, the store checks this option's value against the repository element repository-allow-ack-on-reception. If repository-allow-ack-on-reception is false, then the store will reject the registration from any source that enables ume_repository_ack_on_reception. See Implementing RPP for more information on the coordination between RPP source and store configuration options.
Scope: | source |
Type: | lbm_uint8_t |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in UME 5.3 |
Value | Description |
1 | The repository sends a stability acknowledgement for a message as soon as it has received the message.
|
0 | The repository sends a stability acknowledgement for a message once it has been written to disk. Default for all. |
ume_repository_disk_file_size_limit (source) <-
- For Receiver-paced Persistence (RPP) sources with a repository-type of
disk
or reduced-fd
, specifies the maximum amount of disk space used to store retained messages.
- This source option is ignored if RPP is not enabled. For non-RPP sources, the repository's file size limit is controlled directly by the store's repository-disk-file-size-limit configuration element.
- When RPP is enabled, the store range checks this option's value against the repository element repository-disk-file-size-limit, and rejects the registration if the source requests more bytes than that store's limit. As long as the source request is less than or equal to repository-disk-file-size-limit, the store will use the source's value in its operation. The default value (zero) causes the store to use its repository-disk-file-size-limit value. See Implementing RPP for more information on the coordination between RPP source and store configuration options.
Scope: | source |
Type: | lbm_uint64_t |
Units: | bytes |
Default value: | 0 (disabled) |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in UME 5.3 |
ume_repository_size_limit (source) <-
- For Receiver-paced Persistence (RPP) sources with a repository-type of
memory
, disk
or reduced-fd
, specifies the maximum number of message bytes retained by the store (includes payload only). For the disk
or reduced-fd
repository type, this value configures the size of the memory cache.
- This source option is ignored if RPP is not enabled. For non-RPP sources, the repository size limit is controlled directly by the store's repository-size-limit configuration element.
- When RPP is enabled, the store range checks this option's value against the repository element repository-size-threshold, and rejects the registration if the source requests more bytes than that store's limit. As long as the source request is less than or equal to repository-size-threshold, the store will use the source's value in its operation. The default value (zero) causes the store to use its repository-size-threshold value. See Implementing RPP for more information on the coordination between RPP source and store configuration options.
Scope: | source |
Type: | size_t |
Units: | bytes |
Default value: | 0 (disabled) |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in UME 5.3 |
ume_repository_size_threshold (source) <-
- For Receiver-paced Persistence (RPP) sources with a repository-type of
memory
, disk
or reduced-fd
, specifies the minimum number of message bytes retained by the store (includes payload only). For the disk
or reduced-fd
repository type, this value configures the size of the memory cache.
- This source option is ignored if RPP is not enabled. For non-RPP sources, the repository size threshold is controlled directly by the store's repository-size-threshold configuration element.
- When RPP is enabled, the store range checks this option's value against the repository element repository-size-threshold, and rejects the registration if the source requests more bytes than that store's threshold. As long as the source request is less than or equal to repository-size-threshold, the store will use the source's value in its operation. The default value (zero) causes the store to use its repository-size-threshold value. See Implementing RPP for more information on the coordination between RPP source and store configuration options.
Scope: | source |
Type: | size_t |
Units: | bytes |
Default value: | 0 (disabled) |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in UME 5.3 |
ume_retention_intergroup_stability_behavior (source) <-
- The behavior that the source will follow when determining, across store groups, both message stability and registration completion.
- A source cannot release a message until the message is stable. To be stable, a message must first be stable within the group and then stable between groups.
Scope: | source |
Type: | int |
When to Set: | Can only be set during object initialization. |
String value | Integer value | Description |
"any", "any-group" | LBM_SRC_TOPIC_ATTR_UME_STABLE_BEHAVIOR_ANY | Registration is complete when it is complete in any group. Messages are stable when they are stable in any group. Default for all. |
"all-active" | LBM_SRC_TOPIC_ATTR_UME_STABLE_BEHAVIOR_ALL_ACTIVE | A group is active if it has at least a quorum of registered stores, or as determined by the ume_retention_intragroup_stability_behavior option. Registration is complete when it is complete in all active groups. At least one group must be active. Messages are stable when they are stable in all active groups.
|
"majority" | LBM_SRC_TOPIC_ATTR_UME_STABLE_BEHAVIOR_MAJORITY | Registration is complete when it is complete in a majority of groups. Messages are stable when they are stable in a majority of groups.
|
"all", "all-groups" | LBM_SRC_TOPIC_ATTR_UME_STABLE_BEHAVIOR_ALL | Registration is complete when it is complete in all groups. Messages are stable when they are stable in all groups.
|
ume_retention_intragroup_stability_behavior (source) <-
- The behavior that the source will follow when determining, within a store group, both message stability and group registration completion.
- A source cannot release a message until the message is stable. To be stable, a message must first be stable within the group and then stable between groups.
Scope: | source |
Type: | int |
When to Set: | Can only be set during object initialization. |
String value | Integer value | Description |
"quorum" | LBM_SRC_TOPIC_ATTR_UME_STABLE_BEHAVIOR_QUORUM | Registration is complete for the group when a majority of the stores in the group are registered. A message is stable within the group when a majority of the stores have acknowledged the message as stable. Default for all. |
"all-active" | LBM_SRC_TOPIC_ATTR_UME_STABLE_BEHAVIOR_ALL_ACTIVE | Registration is complete for the group when a majority of the stores in the group are registered. Stores registered with a source are active stores. A message is stable within the group when each active store in that group has acknowledged the message as stable.
|
"all", "all-stores" | LBM_SRC_TOPIC_ATTR_UME_STABLE_BEHAVIOR_ALL | Registration is complete for the group when all stores in the group are registered. A message is stable within the group when all stores in the group are registered and have acknowledged the message as stable.
|
ume_retention_size_limit (source) <-
- The release policy regarding aggregate size limit before messages are forced to be released.
- With Smart Sources, this option is ignored. Retention buffers are preallocated. This option is retained for backwards compatibility. The retransmit_retention_size_limit (source) setting should be used instead.
Scope: | source |
Type: | size_t |
Units: | bytes |
Default value: | 25165824 (24 MB) |
When to Set: | Can only be set during object initialization. |
ume_retention_size_threshold (source) <-
- The release policy regarding aggregate size threshold before messages are released.
- With Smart Sources, this option is ignored. Retention buffers are preallocated.
- This option is retained for backwards compatibility. The retransmit_retention_size_threshold (source) setting should be used instead.
Scope: | source |
Type: | size_t |
Units: | bytes |
Default value: | 0 (no threshold) |
When to Set: | Can only be set during object initialization. |
ume_retention_unique_confirmations (source) <-
- The release policy regarding the number of confirmations from different receivers required before the source can release a message.
- This option enhances, but does not supersede, message stability notification from the store(s). If the number of unique confirmations for a message is less than this amount, the message will not be released. If the number of unique confirmations for a message exceeds or equals this amount, then the message may be released if no other release policy setting overrides the decision. A value of 0 indicates there is no unique number of confirmations required for reclamation. For more information, see Delivery Confirmation Concept.
- Note
- Smart Sources do not support delivery confirmation.
Scope: | source |
Type: | size_t |
Units: | number of confirmations |
Default value: | 0 (none required) |
When to Set: | Can only be set during object initialization. |
ume_session_id (context) <-
- Specifies the default Session ID to use for sources and receivers within a context. A value of 0 (zero) indicates no Session ID is to be set.
- See also Managing RegIDs with Session IDs. Valid formats for session IDs are as follows: A hexadecimal string with a maximum value of FFFFFFFFFFFFFFFE, prefixed with '0x'. An octal string with a maximum value of 1777777777777777777776 prefixed with '0'. A decimal string with a maximum value of 18446744073709551614. Prior to LBM 5.2.2, all UME session IDs were interpreted as hexadecimal, and did not accept the '0x' prefix. If upgrading from an earlier version to LBM 5.2.2 or later, prepend '0x' to the original setting to use the originally assigned session ID.
Scope: | context |
Type: | lbm_uint64_t |
Default value: | 0 (zero) |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in LBM 4.2/UME 3.2 |
ume_session_id (receiver) <-
- Specifies the Session ID to use for a receiver. A value of 0 (zero) indicates the context ume_session_id will be used.
- See also Managing RegIDs with Session IDs.
- Valid formats for session IDs are as follows: A hexadecimal string with a maximum value of FFFFFFFFFFFFFFFE, prefixed with '0x'. An octal string with a maximum value of 1777777777777777777776 prefixed with '0'. A decimal string with a maximum value of 18446744073709551614. Prior to LBM 5.2.2, all UME session IDs were interpreted as hexadecimal, and did not accept the '0x' prefix. If upgrading from an earlier version to LBM 5.2.2 or later, prepend '0x' to the original setting to use the originally assigned session ID.
Scope: | receiver |
Type: | lbm_uint64_t |
Default value: | 0 (zero) |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in LBM 4.2/UME 3.2 |
ume_session_id (source) <-
- Specifies the Session ID to use for a source. A value of 0 (zero) indicates the context ume_session_id will be used.
- See also Managing RegIDs with Session IDs.
- Valid formats for session IDs are as follows: A hexadecimal string with a maximum value of FFFFFFFFFFFFFFFE, prefixed with '0x'. An octal string with a maximum value of 1777777777777777777776 prefixed with '0'. A decimal string with a maximum value of 18446744073709551614. Prior to LBM 5.2.2, all UME session IDs were interpreted as hexadecimal, and did not accept the '0x' prefix. If upgrading from an earlier version to LBM 5.2.2 or later, prepend '0x' to the original setting to use the originally assigned session ID.
Scope: | source |
Type: | lbm_uint64_t |
Default value: | 0 (zero) |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in LBM 4.2/UME 3.2 |
ume_source_liveness_timeout (context) <-
- The expected maximum interval between keepalive or delivery confirmation messages from a receiver.
- If neither are received within the interval, the source declares the receiver "dead".
Scope: | context |
Type: | int |
Units: | milliseconds |
Default value: | 0 (disable; do not track receivers) |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in UME 5.2. |
ume_sri_flush_sri_request_response (source) <-
- This option determines if a source flushes the Implicit Batching buffer after it sends a Source Registration Information (SRI) record in response to a SRI request from a receiver.
- Flushing this buffer places the SRI record immediately on the transport, which speeds up the process of receivers registering, but also can impose a greater load on the overall network since it can reduce the amount of transport batching.
- See ume_sri_immediate_sri_request_response (source) for more information on SRI messages.
- Note
- Smart Sources do not support batching, so this option is ignored by a Smart Source.
Scope: | source |
Type: | lbm_ulong_t |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in UMP 6.0 |
Value | Description |
1 | The source places a SRI record in the Implicit Batching buffer and then flushes the buffer.
|
0 | The source places a SRI record in the Implicit Batching buffer and lets normal batch scheduling determine when to place the SRI on the transport. Default for all. |
ume_sri_immediate_sri_request_response (source) <-
- This option controls how quickly a source responds to a receiver's request for an SRI record.
- A persistent source need to send information about its Stores so that the receivers can properly register with those stores. The information messages sent by the sources, contained in a Source Registration Information (SRI) record, is sent on the source's data transport session, and therefore have an effect on the transfer of application data messages. This configuration option is provided to assist you in managing the impact of SRI messages on the normal flow of data when a registering receiver requests the SRI record.
- Note
- Smart Sources do not support batching, so this option is ignored by a Smart Source.
Scope: | source |
Type: | lbm_ulong_t |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in UMP 6.0 |
Value | Description |
1 | Indicates that the source sends an SRI record and also flushes the implicit batching buffer to immediately put the SRI record on the transport. This maximizes the speed at which a receiver completes its registration, but also can impose a greater load on the overall network since it can reduce the amount of transport batching. Default for all. |
0 | Indicates that the source waits for the period of time defined by ume_sri_request_response_latency (source) before sending an SRI record. This reduces overall system load, especially if multiple receivers are registering, as it allows a single SRI record to satisfy the registration needs of multiple receivers.
|
ume_sri_inter_sri_interval (source) <-
- This option controls how frequently a source sends SRI records in reaction to a change in the source's registration with its stores.
- Source Registration Information (SRI) records are sent by a source to its receivers for either of two reasons:
- a receiver has requested an SRI, usually because it is in the process of initializing and registering, or
- the source sees a change in its registration with its stores. For example, if a store becomes unresponsive and the source loses registration with it. Or if a previously failed store returns to service, and the source successfully registers with it.
- This configuration option is concerned with the latter case (change in a source's registration with its stores): the source will send SRI records to receivers to inform them of the change. It sends multiple copies over time to maximize the chances of successful reception. It uses this configuration option to determine the interval between these SRI sends.
- The default value results in the source sending 2 SRI packets every second. This value cannot be set to 0. See also ume_sri_max_number_of_sri_per_update (source).
Scope: | source |
Type: | lbm_ulong_t |
Units: | milliseconds |
Default value: | 500 (0.5 seconds) |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in UMP 6.0 |
ume_sri_max_number_of_sri_per_update (source) <-
- The maximum number of SRI packets sent by a source after a change in the source's registration with its stores.
- For more information about these SRI messages, see ume_sri_inter_sri_interval (source).
Scope: | source |
Type: | lbm_uint16_t |
Default value: | 20 |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in UMP 6.0 |
ume_sri_request_interval (receiver) <-
- The interval at which a registering receiver requests information about the persistent Store(s) from the source.
- The receiver cannot complete registration with the Store(s) until the source supplies the information, in the form of a Store Information Record (SRI). If no SRI is received within this interval, the receiver will continue to send requests until either the information is received, or until the ume_sri_request_maximum (receiver) is reached. If that limit is reached without having received the SRI, the receiver registration fails.
Scope: | receiver |
Type: | lbm_ulong_t |
Units: | milliseconds |
Default value: | 1000 (1 second) |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in UMP 6.0 |
ume_sri_request_maximum (receiver) <-
- The maximum number of requests the receiver issues for a Store Information Record (SRI) from the source.
- If the receiver has not received an SRI after this number of requests, it stops requesting and fails its registration. See ume_sri_request_interval (receiver).
Scope: | receiver |
Type: | lbm_ulong_t |
Default value: | 60 |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in UMP 6.0 |
ume_sri_request_response_latency (source) <-
- The interval a source waits before sending an SRI packet in response to a request from a receiver.
- At the expiration of this interval, the SRI record may also be slightly delayed by normal batch scheduling unless ume_sri_flush_sri_request_response (source) is set to 1.
- See ume_sri_immediate_sri_request_response (source) for more information about how and why to use this.
- Note
- Smart Sources do not support batching, so this option is ignored by a Smart Source.
Scope: | source |
Type: | lbm_ulong_t |
Units: | milliseconds |
Default value: | 100 (0.1 seconds) |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in UMP 6.0 |
ume_state_lifetime (receiver) <-
- Establishes the period of time from a receiver's last activity to the deletion of the receiver's state and cache by the store.
- You can also configure a receiver-state-lifetime for the receiver's topic on the store. The store uses whichever is shorter. The default value of 0 (zero) disables this option.
- See also Persistence Proxy Sources.
Scope: | receiver |
Type: | lbm_ulong_t |
Units: | milliseconds |
Default value: | 0 (zero) |
When to Set: | Can only be set during object initialization. |
ume_state_lifetime (source) <-
- Establishes the period of time from a source's last activity to the deletion of the source's state and cache by the store, regardless of whether a proxy source has been created or not.
- You can also configure a source-state-lifetime for the source's topic on the store. The store uses whichever is shorter. The default value of 0 (zero) disables this option.
- See also Persistence Proxy Sources.
Scope: | source |
Type: | lbm_ulong_t |
Units: | milliseconds |
Default value: | 0 (zero) |
When to Set: | Can only be set during object initialization. |
ume_store (source) <-
- Enable persistence for this source and add a store specification to the list of stores specified for the source. Unlike most other UME settings, every time this setting is called, it adds another store specification to the list and does NOT overwrite previous specifications.
- Each entry contains the IP address, TCP port, registration ID, and group index for the store. For the configuration file as well as API string setting functions, the string value for this option is formatted as "DomainID:IP:port:RegID:GroupIDX" where DomainID is the store's UM domain ID, IP is the store's IP address, port is the TCP port for the store, RegID is the registration ID that the source desires to use, and GroupIDX is the group index that the store belongs to. The DomainID, RegID, and GroupIDX pieces may be left off the string if desired. If so, UMP assumes the value of 0 for them.
- With most configuration options, a previously-specified value can be overridden by simply specifying the option again with a new value. However, because each occurrence of
ume_store
adds a new store specification, use the IP address 0.0.0.0 and TCP port 0 to remove all previously specified stores. This allows subsequent store specifications to, in effect, override the earlier stores.
- One or more stores means the source will use persistence. If no stores are specified, then persistence will not be provided for the source.
- When the binary form of option setting is used, UM does NOT expect an array of structures. Instead, only one Store specification can be supplied for each call to lbm_src_topic_attr_setopt(). However, when the binary form of option retrieval lbm_src_topic_attr_getopt() is used, the list of Stores is returned as an array, and the
optlen
parameter should be set as: optlen = (max_num_stores * sizeof(lbm_ume_store_entry_t));
-
ume_store_activity_timeout (source) <-
- The timeout value used to indicate when a store is unresponsive.
- The store must not be active within this interval to be considered unresponsive. This value must be much larger than the check interval.
Scope: | source |
Type: | lbm_ulong_t |
Units: | milliseconds |
Default value: | 10,000 (10 seconds) |
When to Set: | Can only be set during object initialization. |
ume_store_behavior (source) <-
- The behavior that the source follows for handling store failures.
- Only quorum-consensus is allowed. The option is retained for backwards compatibility purposes.
Scope: | source |
Type: | int |
When to Set: | Can only be set during object initialization. |
String value | Integer value | Description |
"qc", "quorum-consensus" | LBM_SRC_TOPIC_ATTR_UME_STORE_BEHAVIOR_QC | The source uses multiple stores at the same time based on store and store group configuration. Default for all. |
ume_store_check_interval (source) <-
- The interval between activity checks of the current store.
- This interval also governs how often a source checks outstanding unstabilized messages to see if they have reached the configured ume_message_stability_timeout (source) value yet.
Scope: | source |
Type: | lbm_ulong_t |
Units: | milliseconds |
Default value: | 500 (0.5 seconds) |
When to Set: | Can only be set during object initialization. |
ume_store_group (source) <-
- Add a store group specification to the list of store groups specified for the source.
- Unlike other UME settings, every time this setting is called, it adds another store group specification to the list and does NOT overwrite previous specifications. Each entry contains the group index and group size for the group. For the configuration file as well as string versions of setting this option, the string value is formatted as "GroupIDX:GroupSZ" where GroupIDX is the index of the group and GroupSZ is the size of the group. Because each entry adds a new store specification and does not overwrite previous values, an entry or string with the group index of 0 and group size of 0 will cause all previous store group specifications to be removed.
- Note: When setting this option multiple times, you must set this option in group-index order, from lowest to highest. In other words, do not set this option for a group index lower in value than any previously set group index value.
- When the binary form of option setting is used, UM does NOT expect an array of structures. Instead, only one group specification can be supplied for each call to lbm_src_topic_attr_setopt(). However, when the binary form of option retrieval lbm_src_topic_attr_getopt() is used, the list of groups is returned as an array, and the
optlen
parameter should be set as: optlen = (max_num_store_groups * sizeof(lbm_ume_store_group_entry_t));
-
ume_store_name (source) <-
- Add a named store specification to the list of stores specified for the source.
- Unlike other UME settings, every time this setting is called, it adds another store specification to the list and does NOT overwrite previous specifications. Each entry contains the store name, registration ID, and group index for the store. For the configuration file as well as string versions of setting this option, the string value is formatted as "name:RegID:GroupIDX" where
name
is the name of the store configured with the store attribute, context-name in the umestored
XML configuration file, RegID is the registration ID that the source desires to use, and GroupIDX is the group index that the store belongs to. The RegID and GroupIDX pieces may be left off the string if desired. If so, then the value of 0 is assumed for them. Store names are restricted to 128 characters in length, and may contain only alphanumeric characters, hyphens, and underscores.
- When the binary form of option setting is used, UM does NOT expect an array of structures. Instead, only one named store specification can be supplied for each call to lbm_src_topic_attr_setopt(). However, when the binary form of option retrieval lbm_src_topic_attr_getopt() is used, the list of named stores is returned as an array, and the
optlen
parameter should be set as: optlen = (max_num_stores * sizeof(lbm_ume_store_name_entry_t));
-
ume_use_ack_batching (receiver) <-
- Specifies whether or not UME allows the batching of consumption acknowledgments sent to the store(s).
- If enabled, UME checks for contiguous sequence numbered messages at the See also ume_ack_batching_interval (context).
- See Batching Acknowledgments for more information.
Scope: | receiver |
Type: | int |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in UMS 5.0, UME 5.0, UMQ 5.0. |
Value | Description |
1 | Indicates that UME can acknowledge the consumption of a batch of messages. Default for all. |
0 | Indicates that UME acknowledges the consumption of individual messages by the receiver.
|
ume_use_late_join (receiver) <-
- Flag indicating if the receiver should participate in late join operation or not.
- This option is retained for backwards compatibility. The use_late_join (receiver) setting should be used instead.
Scope: | receiver |
Type: | int |
When to Set: | Can only be set during object initialization. |
Value | Description |
1 | The receiver will participate in using late join if requested to by the source. Default for all. |
0 | The receiver will not participate in using late join even if requested to by the source.
|
ume_use_store (receiver) <-
- Flag indicating if the receiver should participate in using a persistent store or not.
- If "0" is supplied, the receiver will join as a streaming receiver.
Scope: | receiver |
Type: | int |
When to Set: | Can only be set during object initialization. |
Value | Description |
1 | The receiver will participate in using a persistent store if requested to by the source. Default for all. |
0 | The receiver will not participate in using a persistent store even if requested to by the source.
|
ume_user_receiver_registration_id (context) <-
- 32-bit value that is used as a user set identifier to be included as the receiver registration ID in acknowledgements send by any receivers in the context to sources as confirmed delivery notifications.
- The value is not interpreted by UME in any way and has no relation to registration IDs used by the receiver. A value of 0 indicates no user set value is in use and should not be sent with acknowledgements
Scope: | context |
Type: | lbm_uint_t |
Units: | identifier |
Default value: | 0 (no user set value in use) |
When to Set: | Can only be set during object initialization. |
ume_write_delay (source) <-
- For Receiver-paced Persistence (RPP) sources with a repository-type of
disk
or reduced-fd
, specifies the delay in milliseconds the store should delay before persisting a message to disk.
- This source option is ignored if RPP is not enabled. For non-RPP sources, the store's write delay is controlled directly by the store's repository-disk-write-delay configuration element.
- When RPP is enabled, the store range checks this option's value against the repository element repository-disk-write-delay, and rejects the registration if the source requests a longer delay than that store's limit. As long as the source request is less than or equal to repository-disk-write-delay, the store will use the source's value in its operation. The default value (zero) causes the store to use its repository-disk-write-delay value. See Implementing RPP for more information on the coordination between RPP source and store configuration options.
Scope: | source |
Type: | lbm_uint32_t |
Units: | milliseconds |
Default value: | 0 (disabled) |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in UME 5.3 |