See Topic Resolution for more information.
The following topic resolution options have been deprecated in LBM Version 4.0.
resolver_active_source_interval
resolver_active_threshold
resolver_maximum_advertisements
resolver_maximum_queries
resolver_query_interval
See Re-establish Pre-4.0 Topic Resolution for option values that configure the topic resolution used in LBM Version 3.6 and prior versions. You should also comment out or remove from your Ultra Messaging® Configuration file the deprecated configuration options shown above.
These intervals have the following effective minimal values.
10 ms for Initial Phase Advertisements
20 ms for Initial Phase Queries
30 ms Wildcard Queries
100 ms for Sustaining Phase Advertisements and Queries
These effective minimums exist because the internal timer that schedules advertisements and queries fires at the stated interval, i.e., every 10 ms for Initial Phase Advertisements, every 20 ms for Initial Phase Queries, etc. If you set the option's value below the minimum, after the the initial advertisement or query at 0 ms, the resolver schedules the second advertisement or query at the first timer "tick", which is the minimum. Subsequent advertisements or queries can only be issued at the next timer "tick". If you increase this option from the default to a value that is not a multiple of the minimum, the resolver maintains the rate you establish as an average over subsequent "ticks".
As an example, If you set resolver_advertisement_sustain_interval or resolver_query_sustain_interval at 10 ms, the resolver schedules the second advertisement or query after the initial (0 ms) at the first timer "tick", which is 100 ms. Subsequent advertisements or queries can only be issued at the next timer "tick" (every 100 ms). If you increase either option from the default to 1.25 seconds, for example and not a multiple of 100 ms, the resolver maintains the rate you establish as an average over subsequent "ticks". That is, the second advertisement or query goes out at the 1300 ms "tick". The resolver tracks the tardiness of this advertisement (50 ms) and adjusts the next advertisement or query, which goes out at 2500 ms, giving an average of 1250 ms or 1.25 seconds.
This is a topic resolution compatibility option that, when set to 1, lets LBM 4.0 (or later) installations work with LBM 3.5.3 / UME 2.2.4 (or earlier) installations. If you do not have early-version installations in the network, leave this option at 0.
The threshold for the number of unanswered topic resolution queries before UM delivers a LBM_MSG_NO_SOURCE_NOTIFICATION
for the topic. The receiver does
not stop querying after the delivery of this notification. A value of 0 indicates no
notifications will be sent.
The threshold for the number of sources a topic must have before topic resolution queries are not sent. A value of zero results in no topic resolution queries being generated. See also Disabling Aspects of Topic Resolution .
The longest - and last - interval in the initial phase of topic advertisement. A value of 0 disables the initial phase of advertisement. See also Disabling Aspects of Topic Resolution.
The duration of the initial phase of topic advertisement. A value of 0 guarantees that the initial phase of advertisement never completes.
Interval between the first topic advertisement sent upon creation of the source and the second advertisement sent by the source. A value of 0 disables the initial phase of advertisement. See also Disabling Aspects of Topic Resolution. This option has an effective minimum of 10 ms. See Minimum Values for Advertisement and Query Intervals.
The duration of the sustaining phase of topic advertisement. A value of 0 guarantees that the sustaining phase of advertising never completes.
Allows you to disable the normal immediate response to queries and wildcard queries. Sources normally send topic advertisements (TIR) immediately in response to topic queries (TQR) for a local topic or wildcard queries (WC-TQR) with a pattern that matches a local topic. If you configure sources to delay sending advertisements, UM delays advertisements by the limits defined by the advertisement rate limiter options, resolver_*_bps and resolver_*_per_second.
Interval between sending topic advertisements in the sustaining phase of topic advertisement. A value of 0 disables the sustaining phase of advertisement. See also Disabling Aspects of Topic Resolution. This option has an effective minimum of 100 ms. See Minimum Values for Advertisement and Query Intervals.
Whether or not to cache topic resolution information. When topic resolution information is not cached, it takes up less memory. However, wildcard receivers will only see topics that have other UM receivers created. And source notification only occurs for topics that have UM receivers created.
The maximum datagram size that can be generated for topic resolution advertisements and queries. The default value is 8192, the minimum is 500 bytes, and the maximum is 65535.
Maximum advertisement rate during the initial phase of topic advertisement. A value of 0 sets no rate limit on advertisements in the initial phase of topic advertisement.
Maximum number of advertisements sent within a one second period during the initial phase of topic advertisement. A value of 0 sets no rate limit on advertisements in the initial phase of topic advertisement.
Maximum number of queries sent within a one second period during the initial phase of topic querying. A value of 0 sets no rate limit on queries in the initial phase of topic querying.
Maximum query rate during the initial phase of topic querying. A value of 0 sets no rate limit on queries in the initial phase of topic querying.
The longest - and last - interval in the initial phase of topic querying. A value of 0 disables the initial phase of querying. See also Disabling Aspects of Topic Resolution.
The duration of the initial phase of topic querying. A value of 0 guarantees that the initial phase of querying never completes.
Interval between the first topic query sent upon creation of the receiver and the second query sent by the receiver. A value of 0 disables the initial phase of querying. See also Disabling Aspects of Topic Resolution. This option has an effective minimum of 20 ms. See Minimum Values for Advertisement and Query Intervals.
The duration of the sustaining phase of topic querying. A value of 0 guarantees that the sustaining phase of querying never completes.
Interval between sending topic queries in the sustaining phase of topic querying. A value of 0 disables the sustaining phase of querying. See also Disabling Aspects of Topic Resolution. This option has an effective minimum of 100 ms. See Minimum Values for Advertisement and Query Intervals.
The size of the hash table used for storing receiver topic information used for topic resolution. This value should be a prime number.
Controls whether or not a source sends an advertisement upon creation. Turning off this advertisement speeds source creation and reduces the number of messages on your network through application initialization.
Scope: | source |
Type: | lbm_uint_t |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in LBM 4.0 |
Value | Description |
---|---|
1 | Source sends a topic advertisement immediately upon creation. Default for all. |
0 | Source does not send an advertisement upon creation. This setting does not affect the topic resolution phases you have configured, which execute as expected. See Disabling Aspects of Topic Resolution for information about altering topic resolution phase advertisements. |
The size of the hash table used for storing source topic information used by topic resolution. This value should be a prime number.
The hash function to use for hashing topic name strings for source and receiver topics. The application may choose from a list of defined hash functions or it may define its own hash function, as identified by the string value of this option. When setting a hash function, note that:
If set through a configuration file or a call to lbm_context_attr_str_setopt()
, only the string values classic
, djb2
, sdbm
, or murmur2
are valid. (If
retrieved by a call to lbm_context_attr_str_getopt()
, one
of these string values is returned.)
If set through a call to lbm_context_attr_setopt()
, you
must pass a pointer to a hash function. Use this method for hash functions other than the
four pre-defined functions.
Scope: | context |
Type: | lbm_str_hash_func_t |
Default value: | NULL |
When to Set: | Can only be set during object initialization. |
String value | Integer value | Description |
---|---|---|
classic |
A "classic" good string hash function. Works best when topic names have a constant prefix with a changing suffix. | |
djb2 |
The Dan Bernstein algorithm from comp.lang.c. Works best when topic names have a changing prefix with a constant suffix. | |
sdbm |
sdbm database library (used in Berkeley DB). A useful alternative to djb2. | |
murmur2 |
Good all-around hash function by Austin Appleby. Best for medium to long topic strings. Default for all. |
This option is similar to the resolver_string_hash_function above, except for the following differences:
This option can be set via only lbm_context_attr_setopt()
(not from a configuration file or lbm_context_attr_str_setopt()
). Hence, this also means you cannot
use the string options (classic
, etc).
You can pass a string length to the hash function, allowing it to then possibly run faster by operating on multiple-character strings at a time. Note that if -1 is passed in, you must use a strlen to calculate the length.
The hash function accepts a clientd pointer, which you can set as needed, and which is passed back in each time the function is called.
resolver_string_hash_function
and resolver_string_hash_function_ex
options set the same attributes,
hence, if you use both (not recommended) one will override the other. Maximum advertisement rate during the sustaining phase of topic advertisement. A value of 0 sets no rate limit on advertisements in the sustaining phase of topic advertisement.
Maximum number of advertisements sent within a one second period during the sustaining phase of topic advertisement. A value of 0 sets no rate limit on advertisements in the sustaining phase of topic advertisement.
Maximum number of queries sent within a one second period during the sustaining phase of topic querying. A value of 0 sets no rate limit on queries in the sustaining phase of topic querying.
Maximum query rate during the sustaining phase of topic querying. A value of 0 sets no rate limit on queries in the sustaining phase of topic querying.
Indicates the maximum time between messages from a unicast resolver daemon before UM declares it inactive and stops sending normal topic resolution traffic via that daemon. UM will still send keepalives to the daemon. A value of 0 will force all resolver daemons to be treated as permanently active.
Indicates how often UM will change to the next available resolver daemon specified using the. resolver_unicast_daemon configuration option. The actual value used is random, and is selected from the range (1/2*change_interval, 3/2*change_interval). If all resolver daemons have been marked inactive, UM enters a quick-change mode where it uses a random value from the range (1/4*change_interval, 3/4*change_interval) in order to more quickly locate an active daemon.
Indicates how often a UM checks for resolver activity in order to determine liveness. A value of 0 will disable activity checks. This setting only applies to the unicast resolver.
Indicates whether sources or receivers in this context should send keepalive messages to a configured Unicast Topic Resolver so they can receive topic resolution traffic.
Value | Description |
---|---|
1 | Send keepalive messages to the Unicast Topic Resolver every 5000ms, if this context has sent no topic resolution traffic during the interval. |
0 | Send keepalive messages to the Unicast Topic Resolver every 5000ms, regardless of whether this context has sent any other topic resolution traffic during the interval. Default for all. Default for all. |
Indicates how often keepalive messages should be sent to a resolver daemon. Keepalives are only sent if no other traffic has been sent since the last keepalive interval expired.
Copyright (c) 2004 - 2014 Informatica Corporation. All rights reserved.