midb(8gx)

Name
midb — Message Index database daemon

Synopsis
midb [-c config]

Description
midb is used by imap(8gx) and pop3(8gx) to generate and keep track of folder and message summaries. In particular, it enumerates messages to give them their IMAP UID and have at all times a suitable UIDNEXT value for folders ready. midb also caches the Message-Id, modification date, message flags, subject and sender to facilitate IMAP listings.

Options

-c config
    Read configuration directives from the given file. If this option is not specified, /etc/gromox/gromox.cfg and /etc/gromox/midb.cfg will be read.

--version
    Output version information and exit.

-?  Display option summary.

All time-based command-line options and configuration file directives are subject to the syntax described in gromox(7), section "Duration specifications".

Configuration directives (gromox.cfg)
The following directives are recognized when reading from /etc/gromox/gromox.cfg, or when the -c option is used to specify a custom file:

daemons_fd_limit
    In gromox-midb, this is treated as an alias for midb_fd_limit.

midb_fd_limit
    Request that the file descriptor table be at least this large. The magic value 0 indicates that the system default hard limit (rlim_max, cf. setrlimit(2)) should be used.
    Default: 0

midb_listen
    A space-separated list of bind address specifiers to expose the MIDB service on.
    Default: [::1]:5555

Configuration directives (midb.cfg)
The following directives are recognized when reading from /etc/gromox/midb.cfg, or when the -c option is used to specify a custom file:

config_file_path
    Colon-separated list of directories which will be scanned when locating further configuration files, especially those used by subcomponent instances. (For example, mysql_adaptor(4gx) would be directed to look at /etc/gromox/midb/mysql_adaptor.cfg before /etc/gromox/mysql_adaptor.cfg.)
    Default: /etc/gromox/midb:/etc/gromox

data_file_path
    Colon-separated list of directories which will be scanned when locating data files.
    Default: /usr/share/gromox/midb

midb_cache_interval
    The time after the last use of a particular midb.sqlite3 that the sqlite gets unloaded.
    Default: 30minutes

midb_cmd_debug
    Log every incoming MIDB command and the return code of the operation in a minimal fashion to stderr (not midb_log_file!). Level 1 emits commands with a failure return code, level 2 emits all commands. Logs are written to stderr only.
    Default: 0

midb_hosts_allow
    A space-separated list of individual host addresses that are allowed to converse with the midb service. The addresses must conform to gromox(7) § "Host addresses". No networks and no CIDR notations are permitted. This option deprecates the /etc/gromox/midb_acl.txt file used before Gromox 2.8.
    Default: ::1

midb_listen_ip
    Deprecated in favor of gromox.cfg:midb_listen.

midb_listen_port
    Deprecated in favor of gromox.cfg:midb_listen.

midb_log_file
    Target for log messages here. Special values: "-" (stderr/syslog depending on parent PID) or "syslog" are recognized.
    Default: - (auto)

midb_log_level
    Maximum verbosity of logging. 1=crit, 2=error, 3=warn, 4=notice, 5=info, 6=debug.
    Default: 4 (notice)

midb_reload_interval
    The time after a midb.sqlite3 was first loaded that it will be unloaded.
    Default: 60min

midb_schema_upgrades
    This directive controls whether database schemas are automatically upgraded when a message index database (midb.sqlite) is loaded. During this time, that DB is unavailable and operations on it will be delayed. Connection aborts, if any, would be due to timeouts in components other than midb. (The file can temporarily grow to double its size, so ample disk space may be required.)
    Default: yes

midb_table_size
    Default: 5000

midb_threads_num
    The exact number of client processing threads to keep around. This also controls the maximum number of concurrent connections by external clients towards midb.
    Default: 100

rpc_proxy_connection_num
    For every exmdb server in exmdb_list.txt, establish and keep this many number of outbound connections for sending commands. (There is at most one additional connection, for async notification, alive per server.)
    Default: 10

sqlite_debug
    If set to 1, every query given to SQLite prepare/execute is logged. If set to 0, only failed queries are logged. (It cannot be made completely silent, since our queries ought to never fail.)
    Default: 0

x500_org_name
    Default: (unspecified)

Files

•   config_file_path/exmdb_list.txt: exmdb multiserver selection map.

See also
gromox(7)