UMDS User Guide
|
You configure the UMDS Server with four files:
The UMDS Server Configuration File (in xml format). Required and typically specified on the UMDS Server program command line.
The UM License File (in Ultra Messaging license format). Optional and specified in the UMDS Server configuration file.
The UM Configuration File that affects the Ultra Messaging Context running on the same host as the UMDS Server. Does not directly affect the activity between UMDS Server and Client Applications. See the Ultra Messaging Configuration Guide. Optional and specified in the UMDS Server configuration file.
The following example shows the element structure of the xml configuration file that you use for the umdsd UMDS Server daemon.
<?xml version="1.0" encoding="UTF-8"?> <umds-daemon version="1.1"> <daemon> <log type="file" xml:space="preserve">umdsd.log</log> <uid>12345</uid> <gid>23456</gid> <pidfile xml:space="preserve">example.pid</pidfile> <lbm-license-file>example.lic</lbm-license-file> <lbm-config>example.lbmcfg</lbm-config>
<server bind-addr="*:14701" num-workers="3" msg-age-limit="1000" msg-q-size-limit="1048576"/> <client> <server-list client-write="yes">LIST</server-list> <server-ka-interval client-write="range" min="0" max="2147483648">2000</server-ka-interval> <client-ka-threshold client-write="range" min="0" max="2147483648">3000</client-ka-threshold> <client-ka-interval client-write="range" min="0" max="2147483648">10000</client-ka-interval> <server-ka-threshold client-write="yes">11000</server-ka-threshold> <server-rcvbuf client-write="yes">0</server-rcvbuf> <server-sndbuf client-write="yes">0</server-sndbuf> <server-nodelay client-write="yes">0</server-nodelay> <client-rcvbuf client-write="yes">0</client-rcvbuf> <client-sndbuf client-write="yes">0</client-sndbuf> <client-nodelay client-write="yes">0</client-nodelay> <server-reconnect client-write="yes">0</server-reconnect> </client> <authentication> <basic xml:space="preserve">BASIC_FILE</basic> </authentication> <web-monitor>172.16.254.1:8080</web-monitor> <monitor object="source" interval="7"> <transport module="lbm" options="string"/> <format module="csv" options="string"/> <application-id xml:space="preserve">STRING</application-id> </monitor> <topics> <topic pattern="BEW.xyz.*" type="PCRE"> <umds-attributes> <option type="umds-receiver" name="receiver-queue-type" value="topic" /> <option type="umds-receiver" name="topic-queue-size-limit" value="200000" /> </umds-attributes> </topic> <topic pattern="BEW.xyz" type="direct"> <umds-attributes> <option type="umds-receiver" name="receiver-queue-type" value="default" /> <option type="umds-receiver" name="topic-queue-size-limit" value="200000" /> </umds-attributes> </topic> </topics> </daemon> </umds-daemon>
Container element which holds the UMDS Server's configuration. Also defines the version of the configuration format used by the file.
Required.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
version | Version number of user's configuration file. | "1.1" - Initial version | "1.0" |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> ... </umds-daemon>
Container element which holds the UMDS Server's configuration.
Required.
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> ... </daemon> </umds-daemon>
Contains elements to configure client link encryption.
For more information, see Using UMDS Client Encryption.
Example:
Defines the list of one or more (comma separated) names of cipher suites that the UMDS Server will accept. See OpenSSL's Cipher Suite Names for the full list of suite names. When configuring UM, use the OpenSSL names (with dashes), not the IANA names (with underscores).
If more than one suite name is supplied, they should be in descending order of preference. When a client negotiates encrypted TCP, the two sides must find a cipher suite in common, otherwise the connection will be canceled.
The default is highly secure and is recommended.
For more information, see Using UMDS Client Encryption.
Example:
Specifies the path to a file containing one or more OpenSSL-compatible PEM-formatted TLS client certificates and certificate authorities. If this element is not supplied, the default behavior is to use the system-level trusted certificates and certificate authorities (operating-system dependent). The TLS server uses these trusted certificates to verify the identity of connecting clients.
If a client connects and presents a certificate which is not in the server's trusted certificates file, the connection will be canceled.
For more information, see Using UMDS Client Encryption.
Example:
Specifies the passphrase needed to decrypt the server private key file specified by <certificate-key>.
For more information, see Using UMDS Client Encryption.
Example:
Specifies the path to a file containing the private key associated with the "server" certificate specified by <certificate>. Note that this private key must be protected from intruders. For that reason, when the certificate and private key files are generated, the private key file is typically encrypted with a passphrase. The passphrase is supplied using <certificate-key-password>.
For more information, see Using UMDS Client Encryption.
Example:
Specifies the path to a file containing an OpenSSL-compatible PEM-formatted certificate that will be presented as the TLS server certificate when a TLS connection is established by a client.
For more information, see Using UMDS Client Encryption.
Example:
Container element for topics that the UMDS Server forwards to UMDS client applications. Use this element to apply UMS Configuration Options to individual topics or topic patterns. You can also configure topics and topic patterns to have individual message queues, which can mitigate possible message loss.
Optional. If omitted, topics use the UMDS Server default message queue, and these topics do not use specific UMS configuration options.
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <topics> ... </topics> ... </daemon> </umds-daemon>
Holds the configuration for a specific set of topics.
Required, if UMDS Element "<topics>" is present.
Note: if type "direct"
is used, the pattern must exactly match the entire topic string. For example, pattern="x.y" type="direct"
will only match the topic "x.y"
. Topcis "x.yz"
and "zx.y"
and will be excluded. However, if the type is a regular expression, no assumption is made regarding the start or end of the topic name. The user is expected to make use of anchor metacharacters "</tt>^<tt>" and "</tt>$<tt>" if needed. For example, pattern="x" type="PCRE"
will match topics "x"
, "xyz"
, "zyx"
, and "axe"
. If it is desired to match only topics that start with "x", use pattern="^x" type="PCRE"
. That will match "x"
and "xyz"
, but exclude "zyx"
and "axe"
. Also remember that a period ("."
) is a metacharacter which matches any character, and must be escaped if an actual period is desired. For example, pattern="^NASD\." type="PCRE"
will match topics "NASD.a", "NASD.a.b", and "NASD.", but will exclude "NASDa.b" and "XNASD.a".
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
pattern | Specifies a pattern used to match topic names. Used to select incoming topics to apply the configuration. | string | (no default; must be specified) |
type | Specifies how the pattern should be interpreted. | "direct" - Exact match for full topic name. "PCRE" - Regular expression match using PCRE syntax. "regexp" - (Not recommended.) Regular expression match using POSIX extended regular expressions syntax. | "direct" |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <topics> <topic pattern="^NASD\..*" type="PCRE"> ... </topic> ... </topics> ... </daemon> </umds-daemon>
Container for one or more UMDS Element "<option>" elements which configure the topic(s) matching the parent UMDS Element "<topic>".
Optional, but there is no use case for omission.
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <topics> <topic pattern="^NASD\..*" type="PCRE"> <umds-attributes> ... </umds-attributes> </topic> ... </topics> ... </daemon> </umds-daemon>
Specifies a configuration option for the topic(s) matching the parent UMDS Element "<topic>".
Required, if UMDS Element "<umds-attributes>" is present.
Each option supplied is of one of six types:
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
type | Specifies the scope of the configuration option being set. | "lbm-receiver" - UM configuration option of "receiver" scope. See UM Configuration Guide. "lbm-wildcard-receiver" - UM configuration option of "wildcard_receiver" scope. See UM Configuration Guide. "lbm-context" - UM configuration option of "context" scope. See UM Configuration Guide. "lbm-source" - UM configuration option of "source" scope. See UM Configuration Guide. "umds-receiver" - Configuration option specific to UMDS client-side receivers. See UMDS Receiver Topic Options. "umds-source" - Configuration option specific to UMDS client-side sources. See UMDS Source Topic Options. | (no default; must be specified) |
name | Specifies the name of the configuration option being set. | attr_name | (no default; must be specified) |
value | Specifies the desired value for the configuration option being set. | string | (no default; must be specified) |
Example:
In this example, the server will configure its wildcard receiver for topics such as "NASD.X" and "NASD.Y" to not stop topic resolution queries using the UM configuration option resolver_query_minimum_duration_wildcard (receiver).
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <topics> <topic pattern="^NASD\..*" type="PCRE"> <umds-attributes> <option type="lbm-wildcard-receiver" name="resolver_query_minimum_duration" value="0"/> ... </umds-attributes> </topic> ... </topics> ... </daemon> </umds-daemon>
Enables and configures the UM transport statistics monitoring function. Multiple instances of this element are typically supplied to enable monitoring of the different types of UM objects created by the UMDS Server during its operation.
Opional. If omitted, no monitoring takes place.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
object | The UM object type to monitor. | "context" - Monitor UM contexts. "source" - Monitor UM sources. "receiver" - Monitor UM receivers. | (no default; must be specified) |
interval | The time, in seconds, that monitoring statistics are sampled and published. | string | "5" |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <monitor object="context" interval="60"> ... </monitor> <monitor object="receiver" interval="30"> ... </monitor> ... </daemon> </umds-daemon>
Identification string, used by monitoring applications to identify the application (where the UMDS Server itself is the application in this case).
Optional. If omitted, application ID is not used.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
xml:space | Controls how XML handles spaces in the value string. | "default" - Trims most whitespace. "preserve" - Retains whitespace as entered. | "default" |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <monitor object="context" interval="60"> <application-id> UMDS Server 123 </application-id> ... </monitor> ... </daemon> </umds-daemon>
Configures the data formatting module for publishing monitoring statistics.
Optional. If omitted, uses csv format.
This element is normally not supplied since there is only one supported format, "csv"
, and UMDS defaults to that format. The element is defined in the DTD for future expansion.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
module | Specifies the formatting module to use. Currently, only "csv" is supported. | "csv" - Formatting module which produces delimiter-separated values. | "csv" |
options | Options string to be passed to the formatting module. | string | (null string) |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <monitor object="context" interval="60"> <format module="csv"/> ... </monitor> ... </daemon> </umds-daemon>
Configures the data transmission module for publishing monitoring statistics.
Optional. If omitted, uses lbm transport.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
module | Specifies the transmission module to use. | "lbm" - Use normal UM source to publish. "udp" - Use a simple UDP socket to publish. | "lbm" |
options | Options string to be passed to the transport module. | string | (null string) |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <monitor object="context" interval="60"> <transport module="lbm"/> ... </monitor> ... </daemon> </umds-daemon>
Configures the Daemon Statistics feature. See Daemon Statistics for information on Daemon Statistics.
Optional. If omitted, Daemon Statistics are not published.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
topic | Topic name to use for publishing Daemon Statistics. | string | "umdsd.monitor" |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <daemon-monitor> ... </daemon-monitor> ... </daemon> </umds-daemon>
Specifies the file that contains UM configuration options associated with the parent element.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
xml:space | Controls how XML handles spaces in the value string. | "default" - Trims most whitespace. "preserve" - Retains whitespace as entered. | "default" |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <daemon-monitor> <lbm-config> /etc/umds_dmon.cfg </lbm-config> ... </daemon-monitor> ... </daemon> </umds-daemon>
Configures whether the UMDS Server will respond to monitoring apps requests to change the rate at which Daemon Statistics messages are published.
Optional. If omitted, change requests will be ignored.
See Daemon Statistics for information on Daemon Statistics.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
allow | Enable or disable change requests. | "0" - UMDS will ignore change requests. "1" - UMDS will respond to change requests. | "0" |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <daemon-monitor> <remote-config-changes-request allow="1"/> ... </daemon-monitor> ... </daemon> </umds-daemon>
Configures whether the UMDS Server will respond to monitoring apps requests to send on-demand snapshots of daemon statistics.
Optional. If omitted, snapshot requests will be ignored.
See Daemon Statistics for information on Daemon Statistics.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
allow | Enable or disable snapshot requests. | "0" - UMDS will ignore snapshot requests. "1" - UMDS will respond to snapshot requests. | "0" |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <daemon-monitor> <remote-snapshot-request allow="1"/> ... </daemon-monitor> ... </daemon> </umds-daemon>
Configures the rate at which Daemon Statistics messages are published.
Optional. If omitted, default publishing intervals will be used (see children elements for defaults).
See Daemon Statistics for information on Daemon Statistics.
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <daemon-monitor> <publishing-interval> ... </publishing-interval> ... </daemon-monitor> ... </daemon> </umds-daemon>
Configures the rate at which one particular grouping of Daemon Statistics messages are published.
Optional. If omitted, the group publishes at its default rate.
See Daemon Statistics for information on Daemon Statistics.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
name | Statistics group to set. | "default" - Sets interval for those statistics groups which are not explicity set by other <group> elements. "malloc-info-ivl" - Sets interval for message type umdsd_dstat_mallinfo_msg_stct. "worker-details-ivl" - Sets interval for worker detail reports, which consists of a set of UMDS_DSTATTYPE_WORKER messages, one per worker, and a set of UMDS_DSTATTYPE_CLIENTPERMS, UMDS_DSTATTYPE_PERTOPIC, UMDS_DSTATTYPE_TOPICTOTALS, UMDS_DSTATTYPE_RECEIVER, UMDS_DSTATTYPE_SOURCE, and UMDS_DSTATTYPE_CLIENTATTRS messages. "worker-summary-ivl" - Sets interval for worker summery reports, which consists of a set of UMDS_DSTATTYPE_WORKER messages, one per worker, and a set of UMDS_DSTATTYPE_CONNSUMMARY messages, one for each connection. | (no default; must be specified) |
ivl | Time, in seconds, between publishing the statistics group. | string | (no default; must be specified) |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <daemon-monitor> <publishing-interval> <group name="default" ivl="5"> <group name="worker-details-ivl" ivl="30"> ... </publishing-interval> ... </daemon-monitor> ... </daemon> </umds-daemon>
Enables the web-based server monitoring and control functions, and configures the IP address and port to listen on. Value is in IP:PORT format. An IP value of * indicates any interface (for example: *:8080
).
Optional. If omitted, the web monitor is disabled.
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <web-monitor> 172.16.254.1:8080 </web-monitor> ... </daemon> </umds-daemon>
Determines if UMDS clients use authentication. If empty (<authentication>
), no authentication occurs.
Required.
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <authentication> ... </authentication> ... </daemon> </umds-daemon>
Enables basic authentication of the client with the server, and supplies the name of the authentication file. See Basic Authentication File.
Optional.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
xml:space | Controls how XML handles spaces in the value string. | "default" - Trims most whitespace. "preserve" - Retains whitespace as entered. | "default" |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <authentication> <basic> /etc/umds_basic_auth.txt </basic> </authentication> ... </daemon> </umds-daemon>
No authentication is done.
Optional.
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <authentication> <none/> </authentication> ... </daemon> </umds-daemon>
This option is deprecated. Setting values has no effect.
Do not use.
This option is deprecated. Setting values has no effect.
Do not use.
This option is deprecated. Setting values has no effect.
Do not use.
This option is deprecated. Setting values has no effect.
Do not use.
Sets optional client operating parameters.
Required.
Each client child element can be configured to be overwritten by a client application with the client-write attribute. Some client elements (keep-alive, receive and send socket buffers) can also restrict the ability of a client application to overwrite a client element by specifying a range of acceptable values from the client application.
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <client> ... </client> ... </daemon> </umds-daemon>
Enable compression between the UMDS Server and its clients. Valid values are
See Client Compression for more information.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
client-write | Specify if the client application is allowed to override the server setting for this element. As of UMDS version 6.14, this attribute cannot be set to "yes". | "no" - Client is not allowed to override. | "no" |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <client> <compression> lz4 </compression> ... </client> ... </daemon> </umds-daemon>
Indicates whether the client should attempt to reconnect to the server if the connection fails.
Optional. If omitted, reconnection is enabled.
Value of 1 turns on reconnect. The client then tries to reconnect to a server in the UMDS Element "<server-list>". A value of 0 prevents the client from reconnecting to any server after connection failure.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
client-write | Specify if the client application is allowed to override the server setting for this element. | "yes" - Client is allowed to override. "no" - Client is not allowed to override. | "yes" |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <client> <server-reconnect client-write="no"> 1 </server-reconnect> ... </client> ... </daemon> </umds-daemon>
Specify if the UMDS client's TCP connection to the server should set the TCP_NODELAY socket option, which disables Nagle's algorithm.
Optional. If omitted, TCP_NODELAY is not set (Nagle's algorithm is retained).
This option should be set if the lowest-possible latency is desired. Leaving it unset permits more-efficient use of network resources.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
client-write | Specify if the client application is allowed to override the client setting for this element. | "yes" - Client is allowed to override. "no" - Client is not allowed to override. | "yes" |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <client> <client-nodelay client-write="yes"> 1 </client-nodelay> ... </client> ... </daemon> </umds-daemon>
Specify the UMDS client's TCP's SO_SNDBUF (send-side socket buffer size) in its connection to the server.
Optional. If omitted, client's operating system sets it.
It is usually recommended not to set this option.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
client-write | Specify if the client application is allowed to override the server setting for this element. | "yes" - Client is allowed to override. "no" - Client is not allowed to override. "range" - Client is allowed to override within a given range of values. If range attribute is used, must also supply min and max attributes. | "yes" |
min | Client's override must be at least this value. | string | "0" |
max | Client's override must be no more than this value. | string | "2147483648" |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <client> <client-sndbuf client-write="yes"> 524288 </client-sndbuf> ... </client> ... </daemon> </umds-daemon>
Specify the UMDS client's TCP's SO_RCVBUF (receive-side socket buffer size) in its connection to the server.
Optional. If omitted, client's operating system sets it.
It is usually recommended not to set this option.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
client-write | Specify if the client application is allowed to override the server setting for this element. | "yes" - Client is allowed to override. "no" - Client is not allowed to override. "range" - Client is allowed to override within a given range of values. If range attribute is used, must also supply min and max attributes. | "yes" |
min | Client's override must be at least this value. | string | "0" |
max | Client's override must be no more than this value. | string | "2147483648" |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <client> <client-rcvbuf client-write="yes"> 524288 </client-rcvbuf> ... </client> ... </daemon> </umds-daemon>
Specify if the UMDS Server's TCP connection to the client should set the TCP_NODELAY socket option, which disables Nagle's algorithm.
Optional. If omitted, TCP_NODELAY is not set (Nagle's algorithm is retained).
This option should be set if the lowest-possible latency is desired. Leaving it unset permits more-efficient use of network resources.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
client-write | Specify if the client application is allowed to override the server setting for this element. | "yes" - Client is allowed to override. "no" - Client is not allowed to override. | "yes" |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <client> <server-nodelay client-write="yes"> 1 </server-nodelay> ... </client> ... </daemon> </umds-daemon>
Specify the UMDS Server's TCP's SO_SNDBUF (send-side socket buffer size) in its connection to the client.
Optional. If omitted, server's operating system sets it.
It is usually recommended not to set this option.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
client-write | Specify if the client application is allowed to override the server setting for this element. | "yes" - Client is allowed to override. "no" - Client is not allowed to override. "range" - Client is allowed to override within a given range of values. If range attribute is used, must also supply min and max attributes. | "yes" |
min | Client's override must be at least this value. | string | "0" |
max | Client's override must be no more than this value. | string | "2147483648" |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <client> <server-sndbuf client-write="yes"> 524288 </server-sndbuf> ... </client> ... </daemon> </umds-daemon>
Specify the UMDS Server's TCP's SO_RCVBUF (receive-side socket buffer size) in its connection to the client.
Optional. If omitted, server's operating system sets it.
It is usually recommended not to set this option.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
client-write | Specify if the client application is allowed to override the server setting for this element. | "yes" - Client is allowed to override. "no" - Client is not allowed to override. "range" - Client is allowed to override within a given range of values. If range attribute is used, must also supply min and max attributes. | "yes" |
min | Client's override must be at least this value. | string | "0" |
max | Client's override must be no more than this value. | string | "2147483648" |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <client> <server-rcvbuf client-write="yes"> 524288 </server-rcvbuf> ... </client> ... </daemon> </umds-daemon>
Number of milliseconds of silence to wait before connection is declared dead.
Optional. If omitted, defaults to 11000
n the absence of message or keep-alive traffic for the threshold, the server declares the connection dead. This value should be at least one second (1000 ms) greater than the UMDS Element "<client-ka-interval>". See also Keep Alive Timers During Idle Periods.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
client-write | Specify if the client application is allowed to override the server setting for this element. | "yes" - Client is allowed to override. "no" - Client is not allowed to override. "range" - Client is allowed to override within a given range of values. If range attribute is used, must also supply min and max attributes. | "yes" |
min | Client's override must be at least this value. | string | "0" |
max | Client's override must be no more than this value. | string | "2147483648" |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <client> <server-ka-threshold client-write="yes"> 12000 </server-ka-threshold> ... </client> ... </daemon> </umds-daemon>
Milliseconds between keep-alive messages from the client.
Optional. If omitted, defaults to 10000
In the absence of message traffic, the client sends keep-alive messages at this interval. This value should be at least one second (1000 ms) less than UMDS Element "<server-ka-threshold>" Element. See also Keep Alive Timers During Idle Periods.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
client-write | Specify if the client application is allowed to override the server setting for this element. | "yes" - Client is allowed to override. "no" - Client is not allowed to override. "range" - Client is allowed to override within a given range of values. If range attribute is used, must also supply min and max attributes. | "yes" |
min | Client's override must be at least this value. | string | "0" |
max | Client's override must be no more than this value. | string | "2147483648" |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <client> <client-ka-interval client-write="yes"> 8000 </client-ka-interval> ... </client> ... </daemon> </umds-daemon>
Number of milliseconds of silence to wait before connection is declared dead.
Optional. If omitted, defaults to 3000
In the absence of message or keep-alive traffic for the threshold, the client declares the connection dead and attempts to reconnect. This value should be at least one second (1000 ms) greater than the UMDS Element "<server-ka-interval>". See also Keep Alive Timers During Idle Periods.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
client-write | Specify if the client application is allowed to override the server setting for this element. | "yes" - Client is allowed to override. "no" - Client is not allowed to override. "range" - Client is allowed to override within a given range of values. If range attribute is used, must also supply min and max attributes. | "yes" |
min | Client's override must be at least this value. | string | "0" |
max | Client's override must be no more than this value. | string | "2147483648" |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <client> <client-ka-threshold client-write="yes"> 4000 </client-ka-threshold> ... </client> ... </daemon> </umds-daemon>
Milliseconds between keep-alive messages from the client.
Optional. If omitted, defaults to 2000
In the absence of message traffic, the client sends keep-alive messages at this interval. This value should be at least one second (1000 ms) less than UMDS Element "<client-ka-threshold>" Element. See also Keep Alive Timers During Idle Periods.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
client-write | Specify if the client application is allowed to override the server setting for this element. | "yes" - Client is allowed to override. "no" - Client is not allowed to override. "range" - Client is allowed to override within a given range of values. If range attribute is used, must also supply min and max attributes. | "yes" |
min | Client's override must be at least this value. | string | "0" |
max | Client's override must be no more than this value. | string | "2147483648" |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <client> <server-ka-interval client-write="yes"> 3000 </server-ka-interval> ... </client> ... </daemon> </umds-daemon>
Comma-separated list of UMDS Server addresses (IP:Port) that the client should use.
Optional. If omitted, the client uses the server list in its own configuration.
This allows a server to be used as a "redirection" service. I.e. a client can be initially configured to connect to UMDS Server A, which re-directs the client to the production server.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
client-write | Specify if the client application is allowed to override the server setting for this element. | "yes" - Client is allowed to override. "no" - Client is not allowed to override. | "yes" |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <client> <server-list client-write="no"> 10.11.12.13:14701,10.11.12.14:14701 </server-list> ... </client> ... </daemon> </umds-daemon>
Configure the operating parameters of the UMDS Server with the attributes supplied.
Required.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
bind-addr | IP/Port that the UMDS Server listens on for client connections. | string | "*:14701" |
num-workers | Number of workers to create to service clients. See Worker Configuration Guidelines. | string | "3" |
msg-age-limit | Maximum age in milliseconds before umdsd deletes the oldest messages when it reaches this limit. To remove this limit, set this attribute to zero. | string | "1000" (1 sec) |
msg-q-size-limit | Maximum size in bytes of the default message queue (does not apply to per-topic queues). Umdsd deletes the oldest messages when it reaches this limit. Zero is a special value which disables checking the default queue size. | string | "1048576" |
total-q-size-limit | Maximum size in bytes consumed by all message queues, including the default queue and all per-topic queues (if any). Zero is a special value which disables checking the total size. | string | "0" |
message-cache-type | Sets the UMDS Server's usage of the internal message caches. Value The full server instance must either use persistence or non-persistence. See Using UMDS Persistence. | string | "normal" (streaming) |
allow-shutdown-via-webmon | Control if the UMDS web monitor offers a "Quit Server" button in the main page, and a "Disconnect this Client" button in the Client Details page. Value "0" disables the buttons. Value "1" enables the buttons. | string | "0" (disable) |
request-timeout | Duration for each request to remain open (accepting responses). | string | "10,000" (10 sec) |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <server bind-addr="*.14701" num-workers="3" msg-age-limit="1000" msg-q-size-limit="1048576" request-timeout="10000" allow-shutdown-via-webmon="0" \> ... </daemon> </umds-daemon>
Specifies the pathname where the the user has placed their UM license file.
Optional. if omitted, the license must be supplied via an environment variable.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
xml:space | Controls how XML handles spaces in the value string. | "default" - Trims most whitespace. "preserve" - Retains whitespace as entered. | "default" |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <lbm-licnese-file>/etc/umdsd.lic</lbm-licnese-file> ... </daemon> </umds-daemon>
Specifies the pathname where the UMDS Server stores its Process ID (PID).
Optional. If omitted, the server does not store its PID in a file.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
xml:space | Controls how XML handles spaces in the value string. | "default" - Trims most whitespace. "preserve" - Retains whitespace as entered. | "default" |
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <pidfile>/var/run/umdsd.pid</pidfile> ... </daemon> </umds-daemon>
Specifies the Group ID (GID) for the server process (if run as root).
Optional. If omitted, the GID of the parent process is inherited.
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <gid>5555</gid> ... </daemon> </umds-daemon>
Specifies the User ID (UID) for the server process (if run as root).
Optional. If omitted, the UID of the parent process is inherited.
Example:
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <uid>5555</uid> ... </daemon> </umds-daemon>
Configures UMDS Server's logging behavior. The value contained within the <log>...</log>
is a file name, but is only used if the "type" attribute is set to "file".
Optional. If omitted, logs are written to Standard Out.
The size of the log file can be controlled using the "frequency" and/or "size" attributes. See Log Handling for more information.
XML Attributes:
Attribute | Description | Valid Values | Default Value |
---|---|---|---|
type | Specifies the method of logging. | "file" - Logs to a text file. "syslog" - Logs to the Unix SYSLOG facility. "console" - Logs to standard output. | "console" |
xml:space | Controls how XML handles spaces in the value string. | "default" - Trims most whitespace. "preserve" - Retains whitespace as entered. | "default" |
frequency | Period by which the current log file is closed and a new log file created (log file "rolling"). See Log Handling. | "disable" - Do not roll log file. "daily" - Roll log file when the UMDS Server has been running for a multiple of 24 hours since it was started. "hourly" - Roll log file when the UMDS Server has been running for a multiple of 60 minutes since it was started. "test" - For internal Informatica testing only. | "disable" |
size | Roll log file at the given number of megabytes of file size. See Log Handling. | string | "0" (disable) |
Example 1: (write log messages to Standard Out)
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <log type="console"/> ... </daemon> </umds-daemon>
Example 2: (write log messages to "umds.log" file)
<?xml version="1.0" encoding="UTF-8" ?> <umds-daemon version="1.1"> <daemon> <log type="file" frequency="daily">umds.log</log> ... </daemon> </umds-daemon>
Available options for UMDS Element "<option>", type "umds-receiver":
Option | Description | Default Value |
---|---|---|
receiver-queue-type | topic or default . The value topic creates a queue for the topic. The value default places messages for the topic in the client's default queue. |
|
topic-queue-size-limit | Maximum size in bytes of topic message queue. UMDS Server deletes oldest messages when the queue reaches this configured limit. A value of 0 (zero) means no limit. |
|
use-late-join | Controls whether UMDS receivers use Late Join for this topic. This should be done for normal Late Join functionality (see Using UMDS Late Join) and for UMDS persistence (see Using UMDS Persistence). To disable Late Join for UMDS receivers, set this option to |
|
message-cache-size | Specifies the size, in number of messages, of the Late Join message cache for this topic. This applies to both Late Join and Persistence functions. See Using UMDS Late Join and Using UMDS Persistence for more information. |
|
message-cache-deletion-delay | Indicates a period of time (in milliseconds) that a message cache is maintained for a topic after the last client receiver for that topic is deleted. This applies to both Late Join and Persistence functions. The default value of 0 (zero) deletes the message cache immediately upon deletion of the last client receiver for the topic. See Using UMDS Late Join and Using UMDS Persistence for more information. |
|
ignore-unique-receiver-attributes | Indicates which set of lbm-receiver options a UMDS Client application uses when it discovers a source/topic that matches a wildcard receiver pattern. Both the wildcard pattern and the individual topic might have lbm-receiver options. The default value of 1 ignores the lbm-receiver individual topic options, and instead uses the options configured for the wildcard pattern. This value can provide more efficient control over options for all receivers. Setting this option to 0 (zero) instructs the UMDS Client application to use lbm-receiver options configured for the individual topic. | 1 (Ignore) |
Available options for UMDS Element "<option>", type "umds-source":
At this time, there are no source-specific UMDS topic options defined. The option type "umds-source" is defined for future expansion.
The Ultra Messaging license file contains the Ultra Messaging license key. The file name is specified with the UMDS Element "<lbm-license-file>". If omitted from the UMDS Server Configuration File, umdsd looks for the environment variables, LBM_LICENSE_INFO or LBM_LICENSE_FILENAME.
This file is optional. You specify this file in the UMDS Server Configuration File with the UMDS Element "<lbm-config>". The Ultra Messaging Configuration File contains configuration options for the UMDS Server's Ultra Messaging context. If omitted, Ultra Messaging uses the factory default values. See the Ultra Messaging Configuration Guide for complete details.
Do not include the following options in the Ultra Messaging configuration file when you use it with the umdsd daemon. UMDS ignores these options if they appear in the file.
operational_mode
(context) mim_ordered_delivery
(context) ordered_delivery
(receiver) use_transport_thread
(receiver) use_late_join
(receiver) ume_use_store
(receiver) umq_queue_participation
(receiver) umq_queue_name
(source)
The Basic Authentication File specifies user and application records which contain client operational parameters. You optionally specify this file in the UMDS Server Configuration File. If the Basic Authentication File is omitted, umdsd does not perform Basic Authentication.
The format of the Basic Authentication File is xml. The <client>
child elements of both the Application and User elements are identical to those specified for the umdsd Configuration File. Values in a Basic Authentication File override those in the umdsd Configuration File. The following example shows a Basic Authentication File:
<?xml version="1.0" encoding="UTF-8" ?> <umds-authentication-basic="1.0"> <application name="NAME"> <client> ... </client> </application> <user name="NAME" password="PASW"> <client> ... </client> </user> </umds-authentication-basic>
Optional. Name of application to associate client operating parameters.
Attribute | Values |
---|---|
name | Name is limited to 31 characters.
|
Optional. Name and password for an application user. Client operating parameters can be set for individual users.
Attribute | Values |
---|---|
name | Name is limited to 31 characters. |
password | Password used to authenticate user. Password is limited to 31 characters and is stored in plain text. |
Here is the umdsd server's configuration DTD, used to validate the user's XML file:
<!ELEMENT umds-daemon (daemon?)> <!ATTLIST umds-daemon version (1.1) #REQUIRED > <!ELEMENT daemon (log?, uid?, gid?, pidfile?, lbm-license-file?, lbm-config?, server, client, permissions?, authentication, web-monitor?, daemon-monitor?, monitor?, topics?, tls?)> <!ELEMENT log ( #PCDATA )> <!ATTLIST log type (file | syslog | console) "console" xml:space (default | preserve) "default" frequency (disable | daily | hourly | test) "disable" size CDATA "0" > <!ELEMENT uid ( #PCDATA )> <!ELEMENT gid ( #PCDATA )> <!ELEMENT pidfile ( #PCDATA )> <!ATTLIST pidfile xml:space (default | preserve) "default" > <!ELEMENT lbm-license-file ( #PCDATA )> <!ATTLIST lbm-license-file xml:space (default | preserve) "default" > <!ELEMENT lbm-config ( #PCDATA )> <!ATTLIST lbm-config xml:space (default | preserve) "default" > <!ELEMENT server EMPTY> <!ATTLIST server bind-addr CDATA "*:14701" num-workers CDATA "3" msg-age-limit CDATA "1000" msg-q-size-limit CDATA "(1024*1024)" total-q-size-limit CDATA "(0)" message-cache-type CDATA "normal" allow-shutdown-via-webmon CDATA "0" request-timeout CDATA "10000" > <!ELEMENT client (server-list | server-ka-interval | client-ka-threshold | client-ka-interval | server-ka-threshold | server-rcvbuf | server-sndbuf | server-nodelay | client-rcvbuf | client-sndbuf | client-nodelay | server-reconnect | compression)* > <!ELEMENT server-list ( #PCDATA ) > <!ATTLIST server-list client-write (yes | no) "yes" > <!ELEMENT server-ka-interval ( #PCDATA ) > <!ATTLIST server-ka-interval client-write (yes | no | range) "yes" min CDATA "0" max CDATA "2147483648" > <!ELEMENT client-ka-threshold ( #PCDATA ) > <!ATTLIST client-ka-threshold client-write (yes | no | range) "yes" min CDATA "0" max CDATA "2147483648" > <!ELEMENT client-ka-interval ( #PCDATA ) > <!ATTLIST client-ka-interval client-write (yes | no | range) "yes" min CDATA "0" max CDATA "2147483648" > <!ELEMENT server-ka-threshold ( #PCDATA ) > <!ATTLIST server-ka-threshold client-write (yes | no | range) "yes" min CDATA "0" max CDATA "2147483648" > <!ELEMENT server-rcvbuf ( #PCDATA ) > <!ATTLIST server-rcvbuf client-write (yes | no | range) "yes" min CDATA "0" max CDATA "2147483648" > <!ELEMENT server-sndbuf ( #PCDATA ) > <!ATTLIST server-sndbuf client-write (yes | no | range) "yes" min CDATA "0" max CDATA "2147483648" > <!ELEMENT server-nodelay ( #PCDATA ) > <!ATTLIST server-nodelay client-write (yes | no) "yes" > <!ELEMENT client-rcvbuf ( #PCDATA ) > <!ATTLIST client-rcvbuf client-write (yes | no | range) "yes" min CDATA "0" max CDATA "2147483648" > <!ELEMENT client-sndbuf ( #PCDATA ) > <!ATTLIST client-sndbuf client-write (yes | no | range) "yes" min CDATA "0" max CDATA "2147483648" > <!ELEMENT client-nodelay ( #PCDATA ) > <!ATTLIST client-nodelay client-write (yes | no) "yes" > <!ELEMENT server-reconnect ( #PCDATA ) > <!ATTLIST server-reconnect client-write (yes | no) "yes" > <!ELEMENT compression ( #PCDATA ) > <!ATTLIST compression client-write (no) "no" > <!ELEMENT permissions (can-send?, can-stream?, can-reqresp? ) > <!ELEMENT can-send ( #PCDATA ) > <!ELEMENT can-stream ( #PCDATA ) > <!ELEMENT can-reqresp ( #PCDATA ) > <!ELEMENT authentication (none?, basic?)> <!ELEMENT none EMPTY> <!ELEMENT basic ( #PCDATA )> <!ATTLIST basic xml:space (default | preserve) "default" > <!ELEMENT web-monitor ( #PCDATA )> <!ELEMENT monitor (transport | format | application-id)*> <!ATTLIST monitor object (context | source | receiver) "context" interval CDATA "5" > <!ELEMENT topics (topic+)> <!ELEMENT topic (umds-attributes?)> <!ATTLIST topic pattern CDATA #REQUIRED type (direct | PCRE | regexp) #IMPLIED > <!ELEMENT umds-attributes (option+)> <!ELEMENT option EMPTY> <!ATTLIST option type (lbm-receiver | lbm-wildcard-receiver | lbm-context | lbm-source | umds-receiver | umds-source) #IMPLIED> <!ATTLIST option name CDATA #REQUIRED> <!ATTLIST option value CDATA #REQUIRED> <!ELEMENT transport EMPTY> <!ATTLIST transport module (lbm | udp) "lbm" options CDATA #IMPLIED > <!ELEMENT format EMPTY> <!ATTLIST format module (csv) "csv" options CDATA #IMPLIED > <!ELEMENT application-id ( #PCDATA )> <!ATTLIST application-id xml:space (default | preserve) "default" > <!ELEMENT daemon-monitor (publishing-interval?, remote-snapshot-request?, remote-config-changes-request?, lbm-config?)> <!ATTLIST daemon-monitor topic CDATA "umdsd.monitor"> <!ELEMENT publishing-interval (group+)> <!ELEMENT group EMPTY> <!ATTLIST group name (default | malloc-info-ivl | worker-details-ivl | worker-summary-ivl ) #REQUIRED> <!ATTLIST group ivl CDATA #REQUIRED> <!ELEMENT remote-snapshot-request EMPTY> <!ATTLIST remote-snapshot-request allow (0 | 1) "0"> <!ELEMENT remote-config-changes-request EMPTY> <!ATTLIST remote-config-changes-request allow (0 | 1) "0"> <!ELEMENT tls (certificate, certificate-key, certificate-key-password?, trusted-certificates?, cipher-suites? )> <!ELEMENT cipher-suites ( #PCDATA )> <!ELEMENT certificate ( #PCDATA )> <!ELEMENT certificate-key ( #PCDATA )> <!ELEMENT certificate-key-password ( #PCDATA )> <!ELEMENT trusted-certificates ( #PCDATA )>
This section presents the following example UMDS Server configuration files, which contain comments that explain sections of the xml files.
The following sample UMDS Server Configuration File contains the minimum configuration information required to start the UMDS Server umdsd
daemon. The daemon uses default values for the empty elements.
<?xml version="1.0" encoding="UTF-8"?> <umds-daemon version="1.1"> <daemon> <!-- This line is required. Defaults are: bind-addr="*:14701" num-workers="3" --> <!-- msg-age-limit= "1000" msg-q-size-limit="1048576" --> <server/>
<!-- This line is required. --> <client/>
<!-- This line is required. Default is "none" --> <authentication/> </daemon> </umds-daemon>
The second example is a typical starting point for most users. It relies on example.lic
(which contains the Ultra Messaging license information and is not shown), Sample UM Configuration File, and Sample Authentication File. The UMDS Server generates the file named example.log
.
<?xml version="1.0" encoding="UTF-8"?> <umds-daemon version="1.1"> <daemon> <!-- Write log messages to a file --> <log type="file" xml:space="preserve">example.log</log>
<!-- License contains your Informatica license key --> <!-- <lbm-license-file>example.lic</lbm-license-file> -->
<!-- Override LBM configuration parameters. --> <lbm-config>example.lbmcfg</lbm-config>
<!-- Select a unique port and set the other parameters. --> <server bind-addr="*:17500" num-workers="2" msg-age-limit= "7000" msg-q-size-limit="4000000" />
<!-- Select reasonable defaults and prevent users from overriding. --> <!-- (Specific users can override via the authentication file.) --> <client> <!-- Pick default server-list settings --> <server-list/>
<!-- Server sends a keep alive msg every 5 seconds --> <server-ka-interval client-write="no">5000</server-ka-interval>
<!-- Client times-out if no keep alive received in 12 seconds --> <client-ka-threshold client-write="no">12000</client-ka-threshold>
<!-- Client sends a keep alive msg every 9 seconds --> <client-ka-interval client-write="no">9000</client-ka-interval>
<!-- Server times-out if no keep alive received in 20 seconds --> <server-ka-threshold client-write="no">20000</server-ka-threshold>
<!-- Set buffers to 1/2 megabyte --> <server-rcvbuf client-write="no">524288</server-rcvbuf> <server-sndbuf client-write="no">524288</server-sndbuf> <!-- Do not change TCP nodelay from OS default --> <server-nodelay client-write="no">0</server-nodelay>
<!-- Set client side to same as server side --> <client-rcvbuf client-write="no">524288</client-rcvbuf> <client-sndbuf client-write="no">524288</client-sndbuf> <client-nodelay client-write="no">0</client-nodelay>
<!-- Do not allow client to automatically reconnect to the server --> <server-reconnect client-write="no">0</server-reconnect> </client>
<!-- Block unathorized users. --> <authentication> <basic>authentication.xml</basic> </authentication>
<!-- Web monitoring can be a valuable feature --> <web-monitor>*:8080</web-monitor> </daemon> </umds-daemon>
This sample UMDS Server Configuration File contains values for all configuration elements.
<?xml version="1.0" encoding="UTF-8"?> <umds-daemon version="1.1"> <daemon> <!-- This line is optional. Default sends log information to the screen --> <log type="file" xml:space="preserve">example.log</log>
<!-- These lines are optional. To set UID and GID, you need to be root --> <!-- <uid>12345</uid> <gid>23456</gid> -->
<!-- This line is optional. If omitted, no PID file is created --> <pidfile xml:space="preserve">example.pid</pidfile>
<!-- This line is optional; it is not the only way to designate a license. --> <!-- <lbm-license-file>example.lic</lbm-license-file> -->
<!-- Sets Ultra Messaging configuration options for contexts used by UMDS. --> <lbm-config>example.lbmcfg</lbm-config>
<!-- This line is required. --> <server/>
<!-- All client attributes and their defaults appear below. --> <!-- Attributes must be listed in this order --> <client> <server-list client-write="yes">0.0.0.0:14701</server-list>
<!-- Server sends keep alive at interval...client times out at threshold --> <server-ka-interval client-write="range" min="0" max="2147483648">2000</server-ka-interval> <client-ka-threshold client-write="range" min="0" max="2147483648">3000</client-ka-threshold>
<!-- Client sends keep alive at interval...server times out at threshold --> <client-ka-interval client-write="range" min="0" max="2147483648">10000</client-ka-interval> <server-ka-threshold client-write="range" min="0" max="2147483648">11000</server-ka-threshold>
<!-- Zero means use the OS default settings --> <server-rcvbuf client-write="range" min="0" max="2147483648">0</server-rcvbuf> <server-sndbuf client-write="range" min="0" max="2147483648">0</server-sndbuf>
<!-- Zero means don't enable TCP_NODELAY (improves network efficiency) --> <server-nodelay client-write="yes">0</server-nodelay>
<!-- Zero means use the OS default settings --> <client-rcvbuf client-write="range" min="0" max="2147483648">0</client-rcvbuf> <client-sndbuf client-write="range" min="0" max="2147483648">0</client-sndbuf>
<!-- Zero means don't enable TCP_NODELAY --> <client-nodelay client-write="yes">0</client-nodelay>
<!-- Zero indicates that the client will not attempt to reconnect --> <!-- to the server after connection is lost --> <server-reconnect client-write="yes">0</server-reconnect> </client>
<!-- This line is required. An empty element specifies the default "none" --> <authentication/>
<!-- This line is optional. Web monitoring can be a valuable feature --> <web-monitor>*:8080</web-monitor>
<!-- Enables and configures the UM transport statistics monitoring functionality. --> <!-- See the Informatica Ultra Messaging Concepts Guide. --> <monitor object="context" interval="5"> <transport module="lbm" options=""/> <format module="csv" options=""/> <application-id xml:space="preserve"></application-id> </monitor>
<topics> <topic pattern="BEW.xyz.*" type="PCRE"> <!-- This configures a message queue for a wildcard topic pattern. --> <umds-attributes> <option type="umds-receiver" name="receiver-queue-type" value="topic" /> <option type="umds-receiver" name="topic-queue-size-limit" value="200000" /> </umds-attributes> </topic> <topic pattern="BEW.xyz" type="direct"> <!-- This directs the topic, BEW.xyz, to use the default message queue. --> <umds-attributes> <option type="umds-receiver" name="receiver-queue-type" value="default" /> <option type="umds-receiver" name="topic-queue-size-limit" value="200000" /> </umds-attributes> </topic> <topic pattern="wild.*" type="direct"> <!-- This is a direct match for a wildcard to set explicit wildcard and receiver attributes --> <umds-attributes> <option type="lbm-wildcard-receiver" name="resolver_no_source_linger_timeout" value="30000"/> <option type="lbm-receiver" name="use_late_join" value="0" /> <option type="umds-receiver" name="ignore-unique-receiver-attributes" value="1" /> </umds-attributes> </topic> </topics> </daemon> </umds-daemon>
The following sample UMS configuration file contains override values used by the UMDS Server for the specified UMS options. You use the UMDS Element "<lbm-config>" to specify a file such as this.
context transport_tcp_receiver_socket_buffer 4000000 source transport_tcp_sender_socket_buffer 4000000
context transport_lbtrm_receiver_socket_buffer 4000000 context transport_lbtrm_source_socket_buffer 4000000
context transport_lbtru_receiver_socket_buffer 4000000 context transport_lbtru_source_socket_buffer 4000000
context mim_implicit_batching_minimum_length 8192
context transport_lbtrm_data_rate_limit 400000000 context transport_lbtrm_retransmit_rate_limit 40000000
The following sample authentication file specifies settings for a master application, a set of users who can only monitor prices, a second set of users who can post trades and monitor prices, and settings for an administrative user. You specify this file with the UMDS Element "<authentication>".
<?xml version="1.0" encoding="UTF-8" ?> <umds-authentication-basic version="1.0">
<application name="master_app"> <client> <!-- Allow application "master_app" to reconnect and give ability to override this setting --> <server-reconnect client-write="yes">0</server-reconnect> </client> </application>
<!-- users allowed to only monitor prices...except when using master_app --> <user name="john_doe" password="id1" /> <user name="jane_doe" password="id2" /> <user name="jim_doe" password="id3" /> <user name="jackie_doe" password="id4" /> <user name="john_smith" password="id5" /> <user name="jane_smith" password="id6" /> <user name="jim_smith" password="id7" /> <user name="jackie_smith" password="id8" /> <!-- This list could be 1,000's of users -->
<!-- users allowed to monitor prices and post trades --> <user name="rob_smith" password="priv1"> </user> <user name="rose_smith" password="priv2"> </user> <user name="rod_smith" password="priv3"> </user> <!-- This list could be 100's or even 1,000's of users -->
<user name="patel" password="admin"> <client> <!-- allow this user to override any setting --> <server-ka-interval client-write="yes">5000</server-ka-interval> <client-ka-threshold client-write="yes">12000</client-ka-threshold> <client-ka-interval client-write="yes">9000</client-ka-interval> <server-ka-threshold client-write="yes">20000</server-ka-threshold> <server-rcvbuf client-write="yes">524288</server-rcvbuf> <server-sndbuf client-write="yes">524288</server-sndbuf> <server-nodelay client-write="yes">0</server-nodelay> <client-rcvbuf client-write="yes">524288</client-rcvbuf> <client-sndbuf client-write="yes">524288</client-sndbuf> <client-nodelay client-write="yes">0</client-nodelay> <server-reconnect client-write="yes">0</server-reconnect> </client>
</user> <!-- This list would probably be limited -->
</umds-authentication-basic>