History | Edit

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.

Configure Session Stickyness

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 stickyness.
Note: By default, Web Author does not use the Servlet container session management implementation. Some load-balancers that implement session stickyness by modifying the JSESSIONID session cookie, may not work with this setup. In this case, you can change the WEB-INF/shiro.ini configuration file to enable the Servlet container session manager:
sessionManager = org.apache.shiro.web.session.mgt.ServletContainerSessionManager

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.

Configure the License Server

All Oxygen XML Web Author servers can use the same pool of floating licenses. To this end, they all need to be configured to use the same license server.

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 Oxygen XML SDK project.