UMDS User Guide
UMDS Server Configuration

You configure the UMDS Server with four files:

  1. The UMDS Server Configuration File (in xml format). Required and typically specified on the UMDS Server program command line.

  2. The UM License File (in Ultra Messaging license format). Optional and specified in the UMDS Server configuration file.

  3. 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.

  4. The Basic Authentication File (in xml format). Optional and specified in the UMDS Server configuration file.


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>


UMDS Element "<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>


UMDS Element "<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>


UMDS Element "<tls>"  <-

Contains elements to configure client link encryption.

For more information, see Using UMDS Client Encryption.

Example:

<?xml version="1.0" encoding="UTF-8" ?>
<umds-daemon version="1.1">
<daemon>
<tls>
<certificate>test.crt<certificate>
<certificate-key>test.key<certificate-key>
<certificate-key-password>
CorrectHorseBatteryStaple
</certificate-key-password>
<trusted-certificates>peers.crt<trusted-certificates>
</tls>
...
</daemon>
</umds-daemon>


UMDS Element "<cipher-suites>"  <-

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.

  • Cardinality: 0 .. 1
  • Parent: <tls>

Example:

<?xml version="1.0" encoding="UTF-8" ?>
<umds-daemon version="1.1">
<daemon>
<tls>
<cipher-suites>TLS_DHE_RSA_WITH_AES_256_GCM_SHA384<cipher-suites>
...
</tls>
...
</daemon>
</umds-daemon>


UMDS Element "<trusted-certificates>"  <-

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.

  • Cardinality: 0 .. 1
  • Parent: <tls>

Example:

<?xml version="1.0" encoding="UTF-8" ?>
<umds-daemon version="1.1">
<daemon>
<tls>
<trusted-certificates>peers.crt<trusted-certificates>
...
</tls>
...
</daemon>
</umds-daemon>


UMDS Element "<certificate-key-password>"  <-

Specifies the passphrase needed to decrypt the server private key file specified by <certificate-key>.

For more information, see Using UMDS Client Encryption.

  • Cardinality: 0 .. 1
  • Parent: <tls>

Example:

<?xml version="1.0" encoding="UTF-8" ?>
<umds-daemon version="1.1">
<daemon>
<tls>
<certificate-key-password>
CorrectHorseBatteryStaple
</certificate-key-password>
...
</tls>
...
</daemon>
</umds-daemon>


UMDS Element "<certificate-key>"  <-

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:

<?xml version="1.0" encoding="UTF-8" ?>
<umds-daemon version="1.1">
<daemon>
<tls>
<certificate-key>test.key<certificate-key>
...
</tls>
...
</daemon>
</umds-daemon>


UMDS Element "<certificate>"  <-

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:

<?xml version="1.0" encoding="UTF-8" ?>
<umds-daemon version="1.1">
<daemon>
<tls>
<certificate>test.crt<certificate>
...
</tls>
...
</daemon>
</umds-daemon>


UMDS Element "<topics>"  <-

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>


UMDS Element "<topic>"  <-

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>


UMDS Element "<umds-attributes>"  <-

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>


UMDS Element "<option>"  <-

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:

  • Types "lbm-receiver", "lbm-wildcard-receiver", "lbm-source", and "lbm-context" are used to specify LBM configuration options, as described in the UM Configuration Guide.
  • Type "umds-receiver" is used to specify UMDS-specific receiver configuration options, as described in section UMDS Receiver Topic Options.
  • Type "umds-source" is used to specify UMDS-specific receiver configuration options, as described in section UMDS Source Topic Options.

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>


UMDS Element "<monitor>"  <-

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>


UMDS Element "<application-id>"  <-

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>


UMDS Element "<format>"  <-

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>


UMDS Element "<transport>"  <-

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>


UMDS Element "<daemon-monitor>"  <-

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>


UMDS Element "<lbm-config>"  <-

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>


UMDS Element "<remote-config-changes-request>"  <-

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>


UMDS Element "<remote-snapshot-request>"  <-

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>


UMDS Element "<publishing-interval>"  <-

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>


UMDS Element "<group>"  <-

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>


UMDS Element "<web-monitor>"  <-

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>


UMDS Element "<authentication>"  <-

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>


UMDS Element "<basic>"  <-

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>


UMDS Element "<none>"  <-

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>


UMDS Element "<permissions>"  <-

This option is deprecated. Setting values has no effect.

Do not use.



UMDS Element "<can-reqresp>"  <-

This option is deprecated. Setting values has no effect.

Do not use.



UMDS Element "<can-stream>"  <-

This option is deprecated. Setting values has no effect.

Do not use.



UMDS Element "<can-send>"  <-

This option is deprecated. Setting values has no effect.

Do not use.



UMDS Element "<client>"  <-

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>


UMDS Element "<compression>"  <-

Enable compression between the UMDS Server and its clients. Valid values are

  • none
  • lz4

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>


UMDS Element "<server-reconnect>"  <-

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>


UMDS Element "<client-nodelay>"  <-

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>


UMDS Element "<client-sndbuf>"  <-

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>


UMDS Element "<client-rcvbuf>"  <-

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>


UMDS Element "<server-nodelay>"  <-

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>


UMDS Element "<server-sndbuf>"  <-

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>


UMDS Element "<server-rcvbuf>"  <-

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>


UMDS Element "<server-ka-threshold>"  <-

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>


UMDS Element "<client-ka-interval>"  <-

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>


UMDS Element "<client-ka-threshold>"  <-

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>


UMDS Element "<server-ka-interval>"  <-

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>


UMDS Element "<server-list>"  <-

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>


UMDS Element "<server>"  <-

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 "normal" is for UM streaming (non-persistent) sources. Value "source-session-id" is for UM persistent sources, and instructs the UMDS Server to potentially create multiple message caches for the same topic, keyed by the persistent source's session ID. See UMDS Persistence uses Session IDs

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>


UMDS Element "<lbm-license-file>"  <-

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>


UMDS Element "<pidfile>"  <-

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>


UMDS Element "<gid>"  <-

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>


UMDS Element "<uid>"  <-

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>


UMDS Element "<log>"  <-

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>


UMDS Receiver Topic Options  <-

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.

default

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.

1048576

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 0 (Off).

1 (On)

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.

1

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.

0 (immediate)

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)


UMDS Source Topic Options  <-

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.


UM License File  <-

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.


UM Configuration File  <-

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)


Basic Authentication File  <-

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>


UMDS application Element  <-

Optional. Name of application to associate client operating parameters.

Attribute

Values

name

Name is limited to 31 characters.


UMDS user Element  <-

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.


UMDS Configuration DTD  <-

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 )>


Example UMDS Configuration Files  <-

This section presents the following example UMDS Server configuration files, which contain comments that explain sections of the xml files.


Minimum Configuration File  <-

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>


Typical Configuration File  <-

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>


Complete Configuration File  <-

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>


Sample UM Configuration File  <-

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


Sample Authentication File  <-

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>