7.3. JCR index in cluster mode


You are looking at documentation for an older release. Not what you want? See the current release documentation.


eXo Platform uses local JCR index by default. You can switch between local index and shared index by configuration.

The local indexing is defaulted for simplifying configuration. Each strategy has its pros and cons. Here is brief of their characteristics, but it is strongly recommended you read the given links for better understanding:

For LOCAL INDEXING, the index directory should be a local path for each node. In JBoss it is set already by default:

<property name="exo.jcr.index.data.dir" value="${exo.jcr.data.dir}/index"/>

But for Tomcat, you need to set it yourself, in exo.properties file:


If you want to use a SHARED INDEX for every node:

  1. Enable the profile cluster-index-shared.

    • In JBoss, edit $PLATFORM_JBOSS_HOME/standalone/configuration/standalone-exo-cluster.xml:

      <property name="exo.profiles" value="all,cluster,cluster-index-shared"/>
    • In Tomcat, edit setenv-customize.sh (.bat for Windows, see Customizing environment variables):

  2. Set the index directory (exo.jcr.index.data.dir) to a network sharing path.

    • In JBoss, edit $PLATFORM_JBOSS_HOME/standalone/configuration/standalone-exo-cluster.xml:

      <property name="exo.jcr.index.data.dir" value="${exo.shared.dir}/jcr/index"/>
    • In Tomcat, if you do not configure it, exo.jcr.index.data.dir is already set to a sub-folder of the shared directory EXO_DATA_DIR. It is done in setenv.*:

      CATALINA_OPTS="$CATALINA_OPTS -Dexo.jcr.index.data.dir=\"${EXO_DATA_DIR}/jcr/index\""

      You can override it in exo.properties:

Copyright ©. All rights reserved. eXo Platform SAS
blog comments powered byDisqus