X.400 clients (User Agents) use the X.400 P7 protocol to access a Message Store. Isode's M-Store X.400 is an X.400 Message Store that supports X.400 P7, and also uses X.400 P3 to connect to an MTA (Message Transfer Agent) such as M-Switch X.400. It serves as an intermediary between User Agents and the Message Transfer Agent, accepting delivery of messages on the user's behalf and storing them for subsequent retrieval.

The Message Store provides facilities for searching and listing messages, to optimize retrieval. Messages may be deleted or retained online in the Message Store. Messages are submitted from a P7 client to the MTA through the message store (indirect submission) and M-Store X.400 can be configured to store these messages in an "out box" for subsequent client access. Message Store and client configuration management is integrated into the messaging infrastructure using the LDAP/X.500 directory.

Key Features

Robust and High-Performance

M-Store is a robust product that uses the underlying file store to ensure message and database integrity. Online backup of both submitted and delivered messages is supported. It includes support for failover clustering and Off Site Hot Standby and Disaster Recovery.

M-Store provides fast message access to mailboxes that may contain hundreds of thousands of messages and high throughput message submission and delivery with low latency.

Performance Optimization

X.400 P7 is a complex and flexible protocol that can be used in many ways. While M-Store X.400 supports a wide range of usage, it is optimized for certain types of use, as described here. Isode's X.400 Client API is designed so that calls will use M-Store X.400 in an efficient manner. Key optimizations:

  • Full message fetch. Few clients make use of the P7 capabilities to retrieve selected parts of messages.
  • Empty mailbox. Many systems operate with a "fetch message; process message; delete message" model.
  • Large mailboxes, that may contain hundreds of thousands of messages, with most fetched and cached. A common model (for both In Box and Out Box) is that messages are archived, often for a fixed period (e.g., 30 days). At the same time, new messages are fetched quickly, so only new messages are active. There are various optimizations in support of this model, including
    • Listing of new messages (to efficiently determine new messages in a large mailbox).
    • Systematic fetching of all messages in a large mailbox, to enable restore on local In Box and Out Box messages on a client.
  • Searching by message priority (precedence) and message size, which is useful for clients to control order of processing.
  • Delivery to clients using auto-alert and immediate fetch.

It is recommended to consider this information when configuring or designing clients to use M-Store X.400.

Message Auto Actions

Auto actions are an important feature of an X.400 Message Store. An auto action may be applied to all messages or to selected ones (e.g., to all high priority messages). M-Store supports the following auto actions:

  • Auto Alert. This sends an alert to the P7 client that a message has been delivered to the store, enabling the client to immediately fetch the new message.
  • Auto Forward. Message is forwarded on to another recipient, and the message originator notified with an Inter Personal Notification. A copy may be kept for the local user, and this variant is sometimes referred to as Auto Copy.
  • Delayed Auto Forward. Message is auto-forwarded if it is not fetched within a configured period. This mechanism can be useful to ensure that messages get processed promptly.

Message Precedence/Priority

M-Store is aware of message priority, including six level STANAG 4406 priority (precedence). Many actions are event driven, and so there is no "ordered queue" to precedence sorted. Clients can search for messages based on priority, and thus order their work to retrieve higher precedence messages first. For message delivery, M-Switch X.400's precedence ordered queuing will ensure that high precedence messages get delivered ahead of lower precedence messages.

Message Ageing

Both In Box and Out Box stores can be configured to delete messages after a certain period of time. This is useful as a mechanism to automatically clear out messages, and also in support of mandatory online archiving requirements, such as the ICAO (Aviation) requirements for two and thirty day archiving.


M-Store uses directory based configuration, which means that configuration and user agent information is stored in Isode's M-Vault directory. Use of directory for message store configuration gives a highly flexible approach, integrated with the configuration of the M-Switch X.400. This allows for client/server configuration management and sharing of configuration information between servers.

Isode's M-Console management GUI is used for both configuration management and operational management of M-Store.

Backup & Disaster Recovery

Because M-Store uses the file store to hold messages (and not a special database), standard backup techniques may be used on M-Store, including the message index.

M-Store provides a restore capability that will synchronize an index server to the message database, removing index entries not needed and creating missing ones. This will deal with the situation where the message and index backups are not aligned.

M-Store also provides built in backup and restore commands, which can be driven using the SOM protocol described below with a scripting interface. This backs up all or selected mailboxes to a specified file store location. Backup and restore can also be requested from the MConsole GUI.

M-Store X.400 provides and off site disaster recover capability that can be used as part of a full X.400 disaster recovery capability.