Version Warning

The content below is for Apache Syncope <= 1.2 - for later versions the Reference Guide is available.

Introduction

Clustering setup heavily depends on the JEE container.

Note: Run Syncope in real environments is a prerequisite for this page.

Core

OpenJPA Remote Event Notification

When deploying multiple Syncope instances insisting on a single database or database cluster, it is of fundamental importance that the contained OpenJPA instances are correctly configured for remote event notification.

Such configuration, in fact, allows OpenJPA's data cache to remain synchronized when deployed in multiple JVMs, thus enforcing data consistency across all Syncope instances.

The default configuration, in core/src/main/resources/persistenceContextEMFactory.xml is

<entry key="openjpa.RemoteCommitProvider" value="sjvm"/>

which is suited for single JVM installations; with multiple instances, more options like as TCP or JMS are available; see OpenJPA's documentation for reference.

OpenJPA documentation refers to direct configuration under META-INF/persistence.xml; for example:

<property name="openjpa.RemoteCommitProvider" value="tcp(Addresses=10.0.1.10;10.0.1.11)"/>

for usage in core/src/main/resources/persistenceContextEMFactory.xml this becomes:

<entry key="openjpa.RemoteCommitProvider" value="tcp(Addresses=10.0.1.10;10.0.1.11)"/>


Console

Apache Tomcat 7

Having this as special reference,

  1. Add <distributable> in console/src/main/webapp/WEB-INF/web.xml
  2. Be sure that all cluster nodes have time aligned (via NTP or other)
  3. Enable Tomcat 7 clustering (session replication is not needed)
  4. Deploy your WAR artifacts to all cluster nodes