
[[_standalone-ha-mode]]

=== Standalone Clustered Mode

Standalone clustered operation mode is for when you want to run {{book.project.name}} within a cluster.  This mode
requires that you have a copy of the {{book.project.name}} distribution on each machine you want to run a server instance.
This mode can be very easy to deploy initially, but can become quite cumbersome. To make a configuration change
you'll have to modify each distribution on each machine.  For a large cluster this can become time consuming and error prone.

==== Standalone Clustered Configuration

The distribution has a mostly pre-configured app server configuration file for running within a cluster.  It has all the specific
infrastructure settings for networking, databases, caches, and discovery.  This file resides
in _.../standalone/configuration/standalone-ha.xml_.  There's a few things missing from this configuration.
You can't run {{book.project.name}} in a cluster without a configuring a shared database connection.  You also need to
deploy some type of load balancer in front of the cluster.  The <<fake/../../clustering.adoc#_clustering,clustering>> and
<<fake/../../database.adoc#_database,database>> sections of this guide walk you though these things.

.Standalone HA Config
image:../../{{book.images}}/standalone-ha-config-file.png[]

WARNING: Any changes you make to this file while the server is running will not take effect and may even be overwritten
      by the server.  Instead use the the command line scripting or the web console of {{book.appserver.name}}.  See
      the link:{{book.appserver.admindoc.link}}[{{book.appserver.admindoc.name}}] for more information.

==== Standalone Clustered Boot Script

You use the same boot scripts to start {{book.project.name}} as you do in standalone mode.  The difference is that
you pass in an additional flag to point to the HA config file.

.Standalone Clustered Boot Scripts
image:../../{{book.images}}/standalone-boot-files.png[]

To boot the server:

.Linux/Unix
[source]
----
$ .../bin/standalone.sh --server-config=standalone-ha.xml
----

.Windows
[source]
----
> ...\bin\standalone.bat --server-config=standalone-ha.xml
----