To scale a deployment to a larger number of users and to increase the
availability, Oxygen XML Web Author can be deployed on a set of
load-balanced servers. This topic describes the required setup for such a
scenario.
Restriction: The
concurrent editing feature does not work if
Oxygen XML Web Author is deployed on multiple servers behind a load balancer.
Configure Session Stickiness
Every
Oxygen XML Web Author server keeps the state of the edited
documents in memory for performance reasons. This implies that every user should connect to
the same back-end server for the duration of an editing session. To achieve this result in a
load-balanced setting, you should enable
session
stickiness.
Note:
By default, Web Author uses the JSESSIONID cookie to track the
active sessions. Some load-balancers implement session stickiness by
modifying the JSESSIONID session cookie, which might break the Web Author's
session tracking mechanism.
In this case, you will have to change the name of the cookie
Oxygen XML Web Author uses to track sessions by changing the
WEB-INF/shiro.ini configuration file to
add:
sessionManager.sessionIdCookie.name = NAME
Configure Server Health Checks
To detect unhealthy servers, Oxygen XML Web Author offers a
health check REST API. The endpoint has the following interface:
- URL
- rest-public/status
- Response status code
- 200 for a healthy server and 503 for an unhealthy server.
- Response body
- For an unhealthy server, the response body contains a text description of the
problem.
Share Configuration Between All Instances
The configuration (including options, frameworks, and plugins) is stored
in the file system in a directory that can be changed using the oxygen.data.dir system property. For
all instances to use the same options, oxygen.data.dir
should point to the
same directory on a shared file system (for example, NFS).
To manage the configuration, you have two options:
- Use the Administration Page
of one of the instances to change these options and then restart all other instances so
that they pick up the new configuration.
- Create a custom Web Application Archive (WAR) that contains Oxygen XML Web Author
and all the configuration. Every time you want to change the configuration, create a new
version of the WAR file and deploy it again. Such a custom WAR can be built using the
Web Author Component integration project.