midb_agent — Service plugin for conversing with midb(8gx)

Configuration directives

The usual config file location is /etc/gromox/midb_agent.cfg.

The number of connections to keep open towards every midb target.
Default: 5
Enables and sets the size of a memory pool (in object count; the actual size is 256 bytes * context_num * context_average_mem). imap(8gx) and pop3(8gx) require this to be non-zero for full functionality.
Default: 1024
Certain midb commands can produce large results (such as P-SRHU with "ALL"). To avoid unbounded memory allocation, the result set is limited in size. If midb responds with a larger result, the midb connection is terminated and midb_agent returns an error to e.g. IMAP/POP. The default of 256K is good for a result set of around 24000 to 32000 messages.
Default: 256K

Multiserver map

The SQL column users.homedir specifies a home directory location in an abstract namespace. This abstract namespace is shared between all Gromox programs, and can be used to divide users into custom subsets and steer connections to different servers.

midb_list.txt specifies how to map from this namespace to midb servers. Each line in this file consists of 3 columns separated by whitespace:

  • Initial prefix to match a user's exmdb home directory on. The pattern should almost always end in a '/' character, otherwise a prefix of "/home" is able to match a userdir of "/home2/username" as well, which may be undesired.

  • The IPv6 (or v4-mapped) address of the midb server to use for this prefix.

  • The port number.

In the absence of midb_list.txt, an implicit default entry is used:

/ ::1 5555


  • config_file_path/instance.cfg: configuration file for the instance of midb_agent. (Instance is usually midb_agent, as there is not much point in loading midb_agent twice.)

  • config_file_path/midb_list.txt: midb multiserver map

config_file_path is determined by the configuration of the program that loaded the midb_agent plugin.

See also