How to prepare before enabling Collaborative Editing on a production system
Platform Notice: Server and Data Center Only - This article only applies to Atlassian products on the server and data center platforms.
Enabling Collaborative Editing is a high-impact change and it can cause issues if not planned correctly.
In this guide, we will cover a few preparation steps that can help in the process and avoid some common problems. Please make sure to test this first on a staging instance before attempting it in production.
As a first step, you need to check if Collaborative Editing was enabled and used in the past. If you are not sure, run the following query:
select * from content where contenttype = 'PAGE' and content_status = 'draft';
If any result is returned, it means CE was indeed enabled in the past. That query finds Shared Drafts on the database, so it confirms the feature was used. In that scenario, its preferable to clean up that old content and start fresh as follows:
Selecting a deployment option (Data Center only)
Since Confluence 6.12, Synchrony can be deployed in two modes on Data Center:
- Self-managed - Recommended
Although the Standalone mode offers more flexibility in terms of node count and location, it requires much more administrative effort. That is why we recommend using Standalone mode, more details here:
Since Synchrony is a separate JVM, it uses a few other ports, especially in Data Center. Before moving forward, ensure the following ports are open in the internal network:
Reverse proxy or Load Balancer setup
If using Self-managed mode in DC or running Confluence Server, there is an internal entity called synchrony-proxy to forward the requests to Synchrony. It was created so you wouldn't need to change the network configuration. However, to reduce latency and improve the editor performance, we recommend setting up a direct connection to Synchrony and also ensuring WebSockets are allowed. More details here:
Although it only mentions the server deployment, the same can be achieved in Data Center self-managed mode by configuring up the Load Balancer to communicate directly to Synchrony. Here you can find a list of documents about this setup:
- Running Confluence behind NGINX with SSL
- Proxying Atlassian server applications with Apache HTTP Server (mod_proxy_http)
- Proxying Atlassian server applications with Microsoft Internet Information Services (IIS)
To avoid a few common issues, check the following items before moving forward:
If running Data Center in clustered mode, make sure the following property is present in <Confluence-home>/confluence.cfg.xml and set to the correct network interface. You can double-check with the ifconfig command:
Java temporary directory
To avoid the problem covered in this KB, edit the file <confluence-local-home>/synchrony-args.properties and set the java.io.tmpdir property to use the temp folder from the installation directory, as follows:
Lastly, for production, we recommend setting the following property on <Confluence-Install>/bin/setenv.sh:
The default memory allocation for Synchrony is 1g, which might not be enough. For large-scale instances, we recommend setting the Synchrony heap between 4 to 6g. Make sure there is enough physical memory available on the server. We don't recommend allocating more than 50% of the total memory in heap space (Confluence and Synchrony combined).
With all those steps completed and tested in staging, enabling Collaborative Editing in production should be a smooth operation. We still recommend scheduling a maintenance window since it triggers several background tasks to complete it. Reach out to Atlassian Support if you need any clarification on those recommendations.