Guide for Persistence

Configuration Reference for Umestored

The operating parameters for `umestored` come from a Store configuration file that must be supplied on the command line (see Man Pages for Store). A Store Process contains a UM context and receivers that may be configured with default values through an LBM configuration file referenced in the XML configuration file. Default UM options my be overridden for each configured Store using the Store configuration file.

An overview of the file format can be seen in the umestored Configuration DTD.

You configure `umestored` to instantiate Stores with the Store configuration file, which Ultra Messaging reads at start up.

The Store configuration file for persistence has the following sections:

- Daemon section - holds administrative parameters for such things as the location of log files, the LBM Configuration File, etc.

- Stores section - holds parameters for any Persistent Stores and also the topics to be persisted.

High Level Store Configuration File:

<ume-store version="1.3">
<daemon>
Daemon configuration options
</daemon>
<stores>
<store attributes>
<topics>
<topic attributes>
<ume-attributes>
<option attributes/>
</ume-attributes>
</topic>
</topics>
</store>
</stores>
</ume-store>

# Share/Merge Store XML Files with XInclude <-

The XInclude mechanism can be used to merge or share XML files for UM library configuration, Store configuration, and DRO configuration. This is typically done to avoid duplicating groups of configuration options in multiple places.

To include an external file from a Store configuration file, use the following syntax:

<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="FILEPATH" />

Where FILEPATH can be a local file name, or a network path starting with "http:" or "ftp:". For example:

<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="/um/conf/TRD1.xml" />
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="http://myweb.mydomain.com/umconf/TRD1.xml" />
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="ftp://myftp.mydomain.com/umconf/TRD1.xml" />

Note that secure forms of network paths ("https:" or "sftp:") are not supported.

Files to be included must be formatted such that all elements are enclosed in a single container element.

Example of an invalid file:

<option type="store" name="repository-type" value="disk"/>
<option type="store" name="repository-size-threshold" value="75,000,000"/>
<option type="store" name="repository-size-limit" value="100,000,000"/>
...

Example of valid file:

<ume-attributes>
<option type="store" name="repository-type" value="disk"/>
<option type="store" name="repository-size-threshold" value="75,000,000"/>
<option type="store" name="repository-size-limit" value="100,000,000"/>
...
</ume-attributes>

## Common Store XInclude Use Case <-

Store configuration files do not support templates. It is common that groups of configuration options need to be repeated across many Store configurations.

For example consider the Store configuration file "store_conf.xml":

<stores>
<store name="store-a1" port="14570">
...
<topics>
<topic pattern="matching.output\.[0-9]$" type="PCRE">
<ume-attributes>
<option type="store" name="repository-type" value="disk"/>
<option type="store" name="repository-size-threshold" value="75,000,000"/>
<option type="store" name="repository-size-limit" value="100,000,000"/>
...
</ume-attributes>
</topic>
</topics>
</store>
<store name="store-a2" port="14571">
...
<topics>
<topic pattern="matching.output\.[0-9]$" type="PCRE">
<ume-attributes>
<option type="store" name="repository-type" value="disk"/>
<option type="store" name="repository-size-threshold" value="75,000,000"/>
<option type="store" name="repository-size-limit" value="100,000,000"/>
...
</ume-attributes>
</topic>
</topics>
</store>
...

This can be a lot of repeated content for the stores running in this daemon instance.

The XInclude feature can be used to reduce duplicate content by creating a second file "store_topic_attr.xml":

<ume-attributes>
<option type="store" name="repository-type" value="disk"/>
<option type="store" name="repository-size-threshold" value="75,000,000"/>
<option type="store" name="repository-size-limit" value="100,000,000"/>
...
</ume-attributes>

Now "store_conf.xml" can be coded as:

<stores>
<store name="store-a1" port="14570">
...
<topics>
<topic pattern="matching.output\.[0-9]$" type="PCRE">
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="./store_topic_attr.xml" />
</topic>
</topics>
</store>
<store name="store-a2" port="14571">
...
<topics>
<topic pattern="matching.output\.[0-9]$" type="PCRE">
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="./store_topic_attr.xml" />
</topic>
</topics>
</store>
...

# Store XML Configuration File Elements <-

## UMP Element "<ume-store>" <-

Container element that holds the configuration for the Persistent Store Process. Also defines the version of the configuration format used by the file.

- Children: <daemon>, <stores>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
version | Version number of Store XML DTD that the configuration file corresponds to. See umestored Configuration DTD for a description of the different versions. Users are encouraged to update their Store configuration files to correspond to the latest version supported by the Store software in use. | string | (no default; must be specified)

Example:

<?xml version="1.0"?>
<ume-store version="1.3">
...
</ume-store>

## UMP Element "<stores>" <-

Container element for one or more <store> elements. A Store Process can run multiple independent Store instances. Some users prefer to run multiple Store instances in a single process to reduce their process management complexity. Other users prefer to run multiple Store Processes, each with a single Store instance, to reduce the impact of a Store Process failing.

There should be little or no performance difference between multiple Store instances running in the same process vs. multiple Store Processes on the same host. However, for maximum Store performance, it is generally easier to pin Store threads to cores when each process is running a single Store instance.

It is NOT recommended for multiple Stores within a QC group to run in the same process, or even the same host, as this defeats the goal of reliability through redundancy.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <ume-store>
- Children: <store>

Example:

<?xml version="1.0"?>
<ume-store version="1.3">
<stores>
...
</stores>
...
</ume-store>

## UMP Element "<store>" <-

Configuration for a Store instance.

- Cardinality (number of times element can be supplied): 0 .. unbounded
- Parent: <stores>
- Children: <restore-last>, <publishing-interval>, <ume-attributes>, <topics>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
name | Identifies log messages for this Store instance in the Store Process log file, the Store Web Monitor, and Daemon Stats. Note: this is not the name that sources can use instead of a network address (see the context-name option). | attr_name | (no default; must be specified)
interface | Specifies the IP address over which Store Process accepts connection requests for this Store. You can specify a single IP address, such as 10.29.3.16, or a range of addresses, 10.29.3.16/25. See also Identifying Persistent Stores. | string | `"0.0.0.0"` (INADDR_ANY)
port | TCP port where Store Process should listen for connection requests to this Store. Starting with UM version 6.8, zero may be supplied. In that case, the Store will choose an available port in the range request_tcp_port_low (context) to request_tcp_port_high (context). This typically requires the use of named stores. | string | (no default; must be specified)

Example:

<?xml version="1.0"?>
<ume-store version="1.3">
<stores>
<store name="MyStore1" interface="10.1.2.3" port="12000">
...
</store>
...
</stores>
...
</ume-store>

## UMP Element "<topics>" <-

Container for <topic> elements. Defines the topics that this Store instance will persist.

- Parent: <store>
- Children: <topic>

Example:

<?xml version="1.0"?>
<ume-store version="1.3">
<stores>
<store name="MyStore1" interface="10.1.2.3" port="12000">
<topics>
...
</topics>
...
</store>
...
</stores>
...
</ume-store>

## UMP Element "<topic>" <-

Defines a topic pattern which the Store will use to find sources to persist. Also contains configuration information about those topics.

- Parent: <topics>
- Children: <restore-last>, <ume-attributes>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
pattern | A string that is used to discover sources to be persisted. The string can be a simple topic name (`type="direct"`), or it can be a regular expression (`type="pcre"`) which can match more than one topic. | string | (no default; must be specified)
type | How the `pattern` attribute should be interpreted. | `"direct"` - Topic name (exact string match) `"PCRE"` - Perl regular expression. `"regexp"` - Posix regular expression. Deprecated; do not use. | direct

Example:

In this example, the topic "NYSE.xyz" and all topics that start with "alert." are persisted in the "MyStore1" Store instance.

<?xml version="1.0"?>
<ume-store version="1.3">
<stores>
<store name="MyStore1" interface="10.1.2.3" port="12000">
<topics>
<topic pattern="NYSE.xyz" type="direct">
...
</topic>
<topic pattern="^alert\..*" type="pcre">
...
</topic>
...
</topics>
...
</store>
...
</stores>
...
</ume-store>

## UMP Element "<ume-attributes>" <-

Container for a set of <option> elements.

- Cardinality (number of times element can be supplied): 0 .. unbounded
- Parent: <store>, <topic>
- Children: <option>

Example:

In this example, some options are at the Store level and apply to all topics. Other options are specific to the topic "NYSE.xyz".

<?xml version="1.0"?>
<ume-store version="1.3">
<stores>
<store name="MyStore1" interface="10.1.2.3" port="12000">
<ume-attributes>
...
</ume-attributes>
<topics>
<topic pattern="NYSE.xyz" type="direct">
<ume-attributes>
...
</ume-attributes>
...
</topic>
...
</topics>
...
</store>
...
</stores>
...
</ume-store>

## UMP Element "<option>" <-

Set a configuration option of a particular type.

This element is used to set most of the operational parameters of the Store and its repositories.

There are many different options that can be set. See "<option>" Element Details for the full list.

An option element has a type attribute. The valid types depend on whether the option's ancestor element is "<store>" or "<topic>":

Ancestor | Valid `type` Attributes
--- | ---
<store> | type="store" type="lbm-context"
<topic> | type="store" type="lbm-receiver" type="lbm-source"

- Parent: <ume-attributes>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
type | Type of configuration option. | `"lbm-receiver"` - LBM configuration option of scope "receiver". `"lbm-context"` - LBM configuration option of scope "context". `"lbm-source"` - LBM configuration option of scope "source". `"store"` - Store configuration option. | (no default; must be specified)
name | Name of option. | attr_name | (no default; must be specified)
value | Value for option. | string | (no default; must be specified)

Example:

<?xml version="1.0"?>
<ume-store version="1.3">
<stores>
<store name="MyStore1" interface="10.1.2.3" port="12000">
<ume-attributes>
<option type="..." name="..." value="..."/>
...
</ume-attributes>
<topics>
<topic pattern="NYSE.xyz" type="direct">
<ume-attributes>
<option type="..." name="..." value="..."/>
...
</ume-attributes>
...
</topic>
...
</topics>
...
</store>
...
</stores>
...
</ume-store>

## UMP Element "<restore-last>" <-

Control how much saved message data is restored when a disk-based Store is restarted.

By default, when a disk-based Store is stopped and restarted, it will restore all messages in the cache file to rebuild its internal index. If the cache file is very large, this can take significant time.

Using this element, you can direct the Store to read only recent data. Note that it can be specific to a Store, or a topic within a Store.

If this element is supplied in both the "<store>" and "<topic>" levels, the "<topic>" setting will override the "<store>" setting.

See Limit Initial Restore with Restore-Last for use case.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <store>, <topic>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
behavior | Define how the value attribute is interpreted. | `"hours"` - Directs the Store to restore the most recent value number of hours worth of message data. NOTE: the message time is relative to the last (most recent) message in the cache, not the absolute time that the Store is restarted. For example, if the store is restarted on Sunday, but the most-recent message was sent the previous Friday afternoon, then value hours worth of messages sent on Friday will be restored. `"none"` - Directs the Store to ignore value, disabling the feature, resulting in the entire cache file being restored. | hours
value | Number of units worth of message data to restore. The units are defined by the "behavior" attribute. For units of "hours", the valid range is 0 - 336 (14 days). The special value "0" disables the feature, resulting in the entire cache file being restored. | string | 0 (disable)

Example: on restart, only restore the most recent 8 hours worth of messages.

<?xml version="1.0"?>
<ume-store version="1.3">
...
<stores>
<store name="test-store" port="14567">
<restore-last value="8" behavior="hours"/>
...
</store>
</stores>
</ume-store>

## UMP Element "<publishing-interval>" <-

DEPRECATED: Set how often the Store publishes its Daemon Stats. See daemonstatistics for general information on Daemon Statistics.

Informatica requests users to migrate to using the UM configuration file to enable automatic monitoring with Protocol Buffer monitoring format for Store and DRO by setting monitor_format (context) to "pb". See Automatic Monitoring.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <store>, <daemon-monitor>
- Children: <group>

Example:

Daemon Statistics are configured at both the daemon level and at the Store level.

<?xml version="1.0"?>
<ume-store version="1.3">
<daemon>
<daemon-monitor topic="bozo">
<publishing-interval>
...
</publishing-interval>
</daemon-monitor>
</daemon>
<stores>
<store name="MyStore1" interface="10.1.2.3" port="12000">
<publishing-interval>
...
</publishing-interval>
...
</store>
...
</stores>
...
</ume-store>

## UMP Element "<group>" <-

Configures the rate at which one particular grouping of Daemon Statistics messages are published. See daemonstatistics for general information on Daemon Statistics.

- Parent: <publishing-interval>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
name | Name of statistics group being configured. | `"default"` - Sets a default interval for all message types. `"store"` - Sets the interval for messages of type umestore_store_dmon_stat_msg_t. `"source"` - Sets the interval for messages of type umestore_repo_dmon_stat_msg_t. `"receiver"` - Sets the interval for messages of type umestore_rcv_dmon_stat_msg_t. `"disk"` - Sets the interval for messages of type umestore_disk_dmon_stat_msg_t. `"config"` - Sets the interval for messages of types umestore_*_dmon_config_msg_t. `"memory"` - Sets the interval for messages of type umestore_smart_heap_dmon_stat_msg_t. | (no default; must be specified)
ivl | Time, in seconds, between publishing the statistics group being configured. | string | (no default; must be specified)

Example:

Daemon Statistics are configured at both the daemon level and at the Store level.

<?xml version="1.0"?>
<ume-store version="1.3">
<daemon>
<daemon-monitor topic="bozo">
<publishing-interval>
<group name="default" ivl="10"/>
<group name="store" ivl="20"/>
...
</publishing-interval>
</daemon-monitor>
</daemon>
<stores>
<store name="MyStore1" interface="10.1.2.3" port="12000">
<publishing-interval>
<group name="default" ivl="10"/>
<group name="store" ivl="20"/>
...
</publishing-interval>
...
</store>
...
</stores>
...
</ume-store>

## UMP Element "<daemon>" <-

Container element for configuration elements that apply to the entire Store Process.

- Parent: <ume-store>
- Children: <log>, <uid>, <pidfile>, <gid>, <lbm-config>, <xml-config>, <lbm-license-file>, <web-monitor>, <daemon-monitor>

Example:

<?xml version="1.0"?>
<ume-store version="1.3">
<daemon>
...
</daemon>
...
</ume-store>

## UMP Element "<daemon-monitor>" <-

DEPRECATED: The daemon-monitor element configures the Store Process for Store Binary Daemon Statistics.

Informatica requests users to migrate to using the UM configuration file to enable automatic monitoring with Protocol Buffer monitoring format for Store and DRO by setting monitor_format (context) to "pb". See Automatic Monitoring.

- Parent: <daemon>
- Children: <lbm-config>, <publishing-interval>, <remote-snapshot-request>, <remote-config-changes-request>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
topic | Topic name for used to publish daemon statistics. | string | `"umestore.monitor"`

Example:

Daemon Statistics are configured at both the daemon level and at the Store level.

<?xml version="1.0"?>
<ume-store version="1.3">
<daemon>
<daemon-monitor topic="bozo">
<publishing-interval>
...
</publishing-interval>
</daemon-monitor>
</daemon>
...
</ume-store>

## UMP Element "<remote-config-changes-request>" <-

Controls if the daemon will respond to requests from monitoring applications. See Daemon Control Requests for general information, Store Daemon Control Requests for Store-specific requests.

Warning
  If misused, the Daemon Control Requests feature allows a user to interfere with the messaging infrastructure in potentially disruptive ways. By default, this feature is disabled. However, especially if you have enabled the UMP Element "<remote-config-changes-request>", Informatica recommends Securing Daemon Control Requests.

- Parent: <daemon-monitor>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
allow | Enables handling requests. | `"0"` - Disable request handling. `"1"` - Enable request handling. | `"0"`

Example:

Daemon Statistics are configured at both the daemon level and at the Store level.

<?xml version="1.0"?>
<ume-store version="1.3">
<daemon>
<daemon-monitor topic="bozo">
<remote-config-changes-request allow="1"/>
...
</publishing-interval>
</daemon-monitor>
</daemon>
...
</ume-store>

## UMP Element "<remote-snapshot-request>" <-

Controls if the daemon will respond to requests from monitoring applications. See Daemon Control Requests.

- Parent: <daemon-monitor>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
allow | Enables handling requests. | `"0"` - Disable request handling. `"1"` - Enable request handling. | `"0"`

Example:

Daemon Statistics are configured at both the daemon level and at the Store level.

<?xml version="1.0"?>
<ume-store version="1.3">
<daemon>
<daemon-monitor topic="bozo">
<remote-snapshot-request allow="1"/>
...
</publishing-interval>
</daemon-monitor>
</daemon>
...
</ume-store>

## UMP Element "<lbm-config>" <-

Pathname for LBM configuration file to be used when the Store creates UM objects (context, receivers, sources).

When used as a child element of <daemon-monitor>, configures the UM objects used for publishing Store Binary Daemon Statistics.

Note that starting with UM version 6.13, if one or more errors are discovered in the LBM configuration file, the errors are written to the log file and the Store continues running. I.e. errors in the LBM configuration file are treated as warnings. See Configuration Error Handling for an explanation.

- Parent: <daemon>, <daemon-monitor>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
xml:space | Specifies how whitespace (tabs, spaces, linefeeds) are handled in the element content. See xml:space Attribute. | `"default"` - Trim whitespace. `"preserve"` - Retain whitespace exactly as entered. | default

Example:

<?xml version="1.0"?>
<ume-store version="1.3">
<daemon>
<lbm-config>/etc/ump/store0.cfg</lbm-config>
...
<daemon-monitor topic="bozo">
<lbm-config>/etc/ump/store0_dmon.cfg</lbm-config>
...
</daemon-monitor>
</daemon>
...
</ume-store>

## UMP Element "<web-monitor>" <-

Address and port for the Store web-based monitor. Format is "Address:Port", where "Address" is either an IP address of one of the host's interfaces, or is "*" which allows the use of any interface. See Store Web Monitor for more information.

If omitted, the web monitor is disabled.

- Parent: <daemon>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
xml:space | Specifies how whitespace (tabs, spaces, linefeeds) are handled in the element content. See xml:space Attribute. | `"default"` - Trim whitespace. `"preserve"` - Retain whitespace exactly as entered. | default

Example:

<?xml version="1.0"?>
<ume-store version="1.3">
<daemon>
<web-monitor>*:8080</web-monitor>
...
</daemon>
...
</ume-store>

## UMP Element "<lbm-license-file>" <-

Pathname for UM license file. NOTE: starting with UM version 6.8, a license key is no longer required for Store operation. This element is retained for backwards compatibility.

- Parent: <daemon>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
xml:space | Specifies how whitespace (tabs, spaces, linefeeds) are handled in the element content. See xml:space Attribute. | `"default"` - Trim whitespace. `"preserve"` - Retain whitespace exactly as entered. | default

## UMP Element "<xml-config>" <-

Pathname for LBM configuration file (in XML format) to be used when the Store creates UM objects (context, receivers, sources). I.e. options that control the UM library.

See XML Configuration Files for general information on XML-based LBM configuration files.

See also <lbm-config>.

- Parent: <daemon>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
xml:space | Specifies how whitespace (tabs, spaces, linefeeds) are handled in the element content. See xml:space Attribute. | `"default"` - Trim whitespace. `"preserve"` - Retain whitespace exactly as entered. | default
application-name | Allows the user to select an "application name" for the Store Process, which can then used by the LBM XML configuration file to target a configuration to that Store using UM Element "<application>". See XML Application Names for more information on application names. | string | `"umestored"`

Example:

<?xml version="1.0"?>
<ume-store version="1.3">
<daemon>
<xml-config>/etc/ump/store01_um.xml</xml-config>
...
</daemon>
...
</ume-store>

## UMP Element "<gid>" <-

Specifies a Group ID (GID) for daemon process (if run as root).

- Parent: <daemon>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
xml:space | Specifies how whitespace (tabs, spaces, linefeeds) are handled in the element content. See xml:space Attribute. | `"default"` - Trim whitespace. `"preserve"` - Retain whitespace exactly as entered. | default

Example:

<?xml version="1.0"?>
<ume-store version="1.3">
<daemon>
<gid>1234</gid>
...
</daemon>
...
</ume-store>

## UMP Element "<pidfile>" <-

Contains the pathname for daemon process ID (PID) file.

- Parent: <daemon>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
xml:space | Specifies how whitespace (tabs, spaces, linefeeds) are handled in the element content. See xml:space Attribute. | `"default"` - Trim whitespace. `"preserve"` - Retain whitespace exactly as entered. | default

Example:

<?xml version="1.0"?>
<ume-store version="1.3">
<daemon>
<pidfile>/var/run/store01.pid</pidfile>
...
</daemon>
...
</ume-store>

## UMP Element "<uid>" <-

Specifies a User ID (UID) for daemon process (if run as root).

- Parent: <daemon>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
xml:space | Specifies how whitespace (tabs, spaces, linefeeds) are handled in the element content. See xml:space Attribute. | `"default"` - Trim whitespace. `"preserve"` - Retain whitespace exactly as entered. | default

Example:

<?xml version="1.0"?>
<ume-store version="1.3">
<daemon>
<uid>1234</uid>
...
</daemon>
...
</ume-store>

## UMP Element "<log>" <-

Contains the path name of the Store log file. See Store Rolling Logs for more information.

If omitted, log messages are written to standard output.

- Parent: <daemon>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
type | Where to write log messages. | `"file"` - Write log messages to a file. `"console"` - Write log messages to standard output. | `"console"`
frequency | Time-frame by which to roll the log file. | `"disable"` - Do not roll the log file based on time. `"daily"` - Roll the log file at midnight. `"hourly"` - Roll log file after approximately an hour, but is not exact and can drift significantly over a period of time. `"test"` - For internal Informatica use only. Do not use. | `"disable"`
size | Size (in MB, i.e. 2**20, or 1,048,576) of current log file at which it is rolled. Specify 0 to disable rolling by log file size. | string | `"10"`
xml:space | Specifies how whitespace (tabs, spaces, linefeeds) are handled in the element content. See xml:space Attribute. | `"default"` - Trim whitespace. `"preserve"` - Retain whitespace exactly as entered. | default

Example:

<?xml version="1.0"?>
<ume-store version="1.3">
<daemon>
<log type="file" size="23" frequency="daily">/var/log/store01.log</log>
...
</daemon>
...
</ume-store>

# umestored Configuration DTD <-

The DTD for UM Store configuration has evolved over time:

DTD Version | Release Date | Product Version | Supported Features
--- | --- | --- | ---
1.0 | Feb. 2007 | UME 1.0 | Persistent Stores
1.1 | April 2010 | UME 3.0.1 / UMQ 1.0 | Persistent Stores, Queues and Ultra Load Balancing (ULB)
1.2 | March 2011 | UME 3.2 / UMQ 2.1 | Persistent Stores, Queues, Ultra Load Balancing (ULB), Dead Letter Queue, Indexed Queuing and Indexed ULB
1.3 | November 2016 | UM 6.10 | Addition of '`<xml-config>`' element (under '`<daemon>`').

To assist the user with upgrades, a more-recent version of the Store will accept an older version of the Store configuration file. For example, if your Store configuration file starts with this:

<?xml version="1.0"?>
<ume-store version="1.0">

the Store will parse the file according to DTD 1.0. If you wish to use Store configuration settings that were not available in 1.0, you will need to upgrade to a later DTD version. Contact UM Support if you have trouble.

Here is the current DTD version:

<!ELEMENT ume-store (daemon, stores?)>
<!ATTLIST ume-store version CDATA #REQUIRED>
<!ELEMENT daemon (log | uid | pidfile | gid | lbm-config | xml-config | lbm-license-file | web-monitor | daemon-monitor)*>
<!ELEMENT log ( #PCDATA )>
<!ATTLIST log type (file | console) "console">
<!ATTLIST log frequency (disable | daily | hourly | test) "disable">
<!ATTLIST log size CDATA #IMPLIED>
<!ATTLIST log xml:space (default | preserve) "default">
<!ELEMENT pidfile ( #PCDATA )>
<!ATTLIST pidfile xml:space (default | preserve) "default">
<!ELEMENT uid ( #PCDATA )>
<!ATTLIST uid xml:space (default | preserve) "default">
<!ELEMENT gid ( #PCDATA )>
<!ATTLIST gid xml:space (default | preserve) "default">
<!ELEMENT lbm-config ( #PCDATA )>
<!ATTLIST lbm-config xml:space (default | preserve) "default">
<!ELEMENT xml-config ( #PCDATA )>
<!ATTLIST xml-config xml:space (default | preserve) "default">
<!ATTLIST xml-config application-name CDATA #IMPLIED>
<!ELEMENT lbm-license-file ( #PCDATA )>
<!ATTLIST lbm-license-file xml:space (default | preserve) "default">
<!ELEMENT web-monitor ( #PCDATA )>
<!ATTLIST web-monitor xml:space (default | preserve) "default">
<!ELEMENT stores (store*)>
<!ELEMENT store (restore-last?, publishing-interval?, ume-attributes+, topics+)>
<!ATTLIST store name CDATA #REQUIRED>
<!ATTLIST store interface CDATA #IMPLIED>
<!ATTLIST store port CDATA #REQUIRED>
<!ELEMENT restore-last EMPTY>
<!ATTLIST restore-last behavior (hours | none) #IMPLIED>
<!ATTLIST restore-last value CDATA #REQUIRED>
<!ELEMENT topics (topic+)>
<!ELEMENT topic (restore-last?, ume-attributes*)>
<!ATTLIST topic pattern CDATA #REQUIRED>
<!ATTLIST topic type (direct | PCRE | regexp) #IMPLIED>
<!ELEMENT ume-attributes (option+)>
<!ELEMENT option EMPTY>
<!ATTLIST option type (lbm-receiver | lbm-context | lbm-source | store) #IMPLIED>
<!ATTLIST option name CDATA #REQUIRED>
<!ATTLIST option value CDATA #REQUIRED>
<!ELEMENT daemon-monitor (lbm-config | publishing-interval | remote-snapshot-request | remote-config-changes-request)*>
<!ATTLIST daemon-monitor topic CDATA "umestore.monitor">
<!ELEMENT publishing-interval (group+)>
<!ELEMENT group EMPTY>
<!ATTLIST group name (default | store | source | receiver | disk | config | memory) #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">

# Store Configuration Example <-

Store Process with one Store.

<?xml version="1.0"?>
<ume-store version="1.3">
<daemon>
<log>stored.log</log>
<pidfile>stored.pid</pidfile>
<web-monitor>*:15304</web-monitor>
</daemon>
<stores>
<store name="test-store" port="14567">
<ume-attributes>
<option type="store" name="disk-cache-directory" value="cache"/>
<option type="store" name="disk-state-directory" value="state"/>
<option type="store" name="context-name" value="remote-store"/>
</ume-attributes>
<topics>
<topic pattern="test.*" type="PCRE">
<ume-attributes>
<option type="store" name="repository-type" value="disk"/>
<option type="store" name="repository-size-threshold" value="2048"/>
<option type="store" name="repository-size-limit" value="209715200"/>
<option type="store" name="repository-disk-file-size-limit" value="1073741824"/>
<option type="store" name="source-activity-timeout" value="120000"/>
<option type="store" name="receiver-activity-timeout" value="120000"/>
<option type="store" name="retransmission-request-forwarding" value="0"/>
</ume-attributes>
</topic>
</topics>
</store>
</stores>
</ume-store>