GateIn Clustering

Version 3

    Getting started

    Environment

    JBoss Community

    • JBoss Application Server 5.1
    • JBoss Cache 3.2 in the all configuration replacing JBoss Cache 3.1 that ships by default with AS 5.1

    Enterprise Application Platform

    GateIn clustering is developed against JBoss EAP 5.

    Shared file system

    The JCR server requires to share a portion of its state via the file system. The shared state are the JCR value storage and the JCR index. In order to properly cluster JCR, a shared file system needs to be setup among the cluster nodes.

    Configuration setup

    The default configuration located in the jar file exo.portal.component.common-3.0.0-XYZ.jar under the path conf/configuration-jboss.xml must be copied and edited for clustering setup. The same file is used for the various cluster nodes, let's name it cluster.properties.

    Replicated JCR configuration

    Value storage configuration

    The property gatein.jcr.storage.data.dir must be updated with the path of the shared value storage directory root.

    Index configuration

    The property gatein.jcr.index.data.dir must be updated with the part of the shared index directory root.

    Filter class configuration

    The property gatein.jcr.changefilterclass must be changed to the value org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter.

    Configuration type

    The property gatein.jcr.config.type must be changed to the value cluster.

    Database configuration

    The cluster needs to use the same shared database configuration. This applies to the JCR datasource as well as the identity datasource. This setup is done at the JNDI level as the gatein datasource is bound by default under the java:jdbcjcr and java:jdbcidm JNDI binding.

    Runtime configuration

    • The all configuration must be used, that is achieved with the configuration switch of JBoss AS.
    • The cluster setup requires the activation of the cluster profile. Note that we are talking about GateIn profile and not about JBoss AS profile notion. The system property exo.profiles needs to contain the cluster value.
    • GateIn needs to use the alternative configuration that was setup in the configuration setup section. The system property exo.properties.url must point to the location of the configuration

     

    run.sh -c all -Dexo.profiles=cluster -Dexo.properties.url=/cluster.properties