= Distributed James Server &mdash; Operate the Distributed server
:navtitle: Operate the Distributed server

The following pages detail how to operate the Distributed server.

Once you have a Distributed James server up and running you then need to ensure it operates correctly and has a decent performance.
You may also need to perform some operation maintenance or recover from incidents. This section covers
these topics.

Read more about xref:operate/logging.adoc[Logging].

The xref:operate/webadmin.adoc[WebAdmin Restfull administration API] is the
recommended way to operate the Distributed James server. It allows managing and interacting with most
server components.

The xref:operate/cli.adoc[Command line interface] allows to interact with some
server components. However it relies on JMX technologies and its use is discouraged.

The xref:operate/metrics.adoc[metrics] allows to build latency and throughput
graphs, that can be visualized, for instance in *Grafana*.

We did put together a xref:operate/guide.adoc[detailed guide] for
distributed James operators. We also propose a xref:operate/performanceChecklist.adoc[performance checklist].

We also included a guide for xref:operate/migrating.adoc[migrating existing data] into the distributed server.

Read more about xref:operate/cassandra-migration.adoc[Cassandra data migration].

== Upgrading

This section sums up and links upgrade instructions for people willing to upgrade their Distributed server to newer versions.

.Upgrade path
|===
| Upgrade from | Recommended upgrade path to 3.7.4

| 3.7.0 - 3.7.3
| Rolling upgrade to 3.7.3. No specific upgrade instructions to perform.

| 3.6.2
| Rolling upgrade to 3.7.4. No specific upgrade instructions to perform.

| 3.6.1
| Rolling upgrade to 3.7.4. No specific upgrade instructions to perform.

| 3.6.0
| Rolling upgrade to 3.7.4. No specific upgrade instructions to perform.

| 3.5.0
| 1. Upgrade, and apply link:https://github.com/apache/james-project/blob/master/upgrade-instructions.md#360-version[3.6.0 upgrade instructions]

Note: Because of ElasticSearch upgrade (6.3 -> 7.10) this migration cannot be done in a rolling fashion manner.

2. Rolling upgrade to 3.7.4. No specific upgrade instructions to perform.


| 3.4.0
| 1. Rolling upgrade to 3.5.0, and apply link:https://github.com/apache/james-project/blob/master/upgrade-instructions.md#350-version[3.5.0 upgrade instructions]

2. Upgrade to 3.6.0, and apply link:https://github.com/apache/james-project/blob/master/upgrade-instructions.md#360-version[3.6.0 upgrade instructions]

Note: Because of ElasticSearch upgrade (6.3 -> 7.10) this migration cannot be done in a rolling fashion manner.

3. Rolling upgrade to 3.7.4. No specific upgrade instructions to perform.

| 3.3.0
| 1. upgrade to 3.4.0, and apply link:https://github.com/apache/james-project/blob/master/upgrade-instructions.md#340-version[3.4.0 upgrade instructions]

Note: Because of ElasticSearch upgrade (2.2 ->  6.3) this migration cannot be done in a rolling fashion manner.

2. Rolling upgrade to 3.5.0, and apply link:https://github.com/apache/james-project/blob/master/upgrade-instructions.md#350-version[3.5.0 upgrade instructions]

3. Upgrade to 3.6.0, and apply link:https://github.com/apache/james-project/blob/master/upgrade-instructions.md#360-version[3.6.0 upgrade instructions]

Note: Because of ElasticSearch upgrade (6.3 -> 7.10) this migration cannot be done in a rolling fashion manner.

4. Rolling upgrade to 3.7.4. No specific upgrade instructions to perform.

|===
