Distributed James Server — Configuration

This section presents how to configure the Distributed server.

The Distributed Server relies on separated files for configuring various components. Some files follow a xml format and some others follow a property format. Some files can be omitted, in which case the functionality can be disabled, or rely on reasonable defaults.

The following configuration files are exposed:

For protocols

By omitting these files, the underlying protocols will be disabled.

For storage dependencies

Except specific documented cases, these files are required, at least to establish a connection with the storage components.

For core components

By omitting these files, sane default values are used.

For extensions

By omitting these files, no extra behaviour is added.

System properties

Some tuning can be done via system properties. This includes:

Table 1. System properties
Property name explanation

james.message.memory.threshold

(Optional). String (size, integer + size units, example: 12 KIB, supported units are bytes KIB MIB GIB TIB). Defaults to 100KIB. This governs the threshold MimeMessageInputStreamSource relies on for storing MimeMessage content on disk. Below, data is stored in memory. Above data is stored on disk. Lower values will lead to longer processing time but will minimize heap memory usage. Modern SSD hardware should however support a high throughput. Higher values will lead to faster single mail processing at the cost of higher heap usage.

james.message.usememorycopy

Optional. Boolean. Defaults to false. Recommended value is false. Should MimeMessageWrapper use a copy of the message in memory? Or should bigger message exceeding james.message.memory.threshold be copied to temporary files?