OpenMeetings 2.1 or later is required to use clustering. One database is used for all OpenMeetings servers, so all database tables are shared across OM instances. Certain folders should be shared between all servers to allow access to the files/recording.


  • Multiple OM servers should be set up as described in Installation
  • All servers should be configured to have same Time zone (To avoid Schedulers to drop user sessions as outdated)
  • All servers should be configured to use the same DB


Multicast should be set up on all servers
Here are the steps for *nix like systems Reference article

  1. Check your network interface supports multicast by running the following command in a terminal window:
    ifconfig -a
    When you see MULTICAST against your network interface, it means your kernel is complied with Multicast option and your network interface supports it.
  2. Check if multicast routing is configured:
    netstat -nr
    If you don’t see an IP in the range of – in the first table, it means you need to add your desired mutlicast address to your routes table.
  3. To add the multicast address:
    sudo route add -net netmask dev eth0
    NOTE: ensure eth0 corresponds to your network interface name
    Make sure you run this command on all servers you want to be multicast enabled.
  4. Using netstat check if the multicast IP is visible in your route table (see step 2.)
  5. Using tcpdump and ping check if your server is able to multicast.
    Run the following command on all the servers.
    sudo tcpdump -ni en0 host
    Run the following command on any server.
    ping -t 1 -c 2
    Check all servers receiving pings
  6. Run
    sudo route -v delete -net netmask
    to disable multicast


All servers should be configured to use the same database. It can be on the server or on the one node of the cluster.
NOTE: Db other than Derby should be used
  • Add users who can connect to the database remotely
  • Update /opt/red5/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml set correct server address, login and password. Also uncomment following line:
    <property name="openjpa.RemoteCommitProvider" value="tcp(Addresses=" />

File systems

If files and recordings using the same physical folders the files and recordings will be available for each node. You can do this using Samba or NFS, for example. For using NFS do the following:

  • Install NFS to the data server. In the file /etc/exports add the following lines:
    Here - is node ip for NFS remote access. Add these lines for all nodes except node with folders.
  • Install NFS common tools to other nodes. In the file /etc/fstab do the following:
    /opt/red5/webapps/openmeetings/upload nfs timeo=50,hard,intr
    /opt/red5/webapps/openmeetings/streams nfs timeo=50,hard,intr
    Here – data server ip. And run the command:
    mount -a

OM nodes configuration

  1. In the file /opt/red5/webapps/openmeetings/WEB-INF/classes/hazelcast.xml:

    • Set instance-name for each server to unique value
    • Comment out/delete following block:
      		<multicast enabled="false"/>
      		<tcp-ip enabled="false"/>
      		<aws enabled="false"/>
    • In case there are more than one network interface with multicast support and/or additional hazelcast configuration is required Based on the following documentation:
  2. In the file /opt/red5/webapps/root/crossdomain.xml:

    • Update policy to allow requests from other servers (the guide)
      Here is example of very permissive policy (not recommended)
      	<allow-access-from domain="*" />

Ensure everything works as expected

  • Set up the cluster and loggin with two users, go to the same room (also check before room entering that the status page with the room list shows the correct number of participants before entering the room). You should login to the same server initially, the server will redirect you for the conference room to the appropriate server automatically. Both users should be in the same room.
  • Do the same with only two users but go to _different_ rooms. The calculation should send both users to different servers, cause based on the calculation two different rooms on a cluster with two nodes should go exactly one room for each node. You can now loggin really to node1 and node2 of your cluster while those users are loggedin and go to Administration > Connections and check in the column "Server Name" where they are located. They should be on different server.
    Additionally client details, available on click, should show different servers tcUrl for clients with "Stream ID"

Back to top

Apache OpenMeetings, OpenMeetings, Apache, the Apache feather, and the Apache OpenMeetings project logo

are trademarks of the Apache Software Foundation.