Author: dkatayev
Date: 2010-02-16 12:02:49 -0500 (Tue, 16 Feb 2010)
New Revision: 1842
Added:
jcr/trunk/docs/reference/en/src/main/docbook/en-us/modules/cluster-config.xml
Log:
EXOJCR-490 article describing launching JCR in cluster added
Added: jcr/trunk/docs/reference/en/src/main/docbook/en-us/modules/cluster-config.xml
===================================================================
--- jcr/trunk/docs/reference/en/src/main/docbook/en-us/modules/cluster-config.xml
(rev 0)
+++
jcr/trunk/docs/reference/en/src/main/docbook/en-us/modules/cluster-config.xml 2010-02-16
17:02:49 UTC (rev 1842)
@@ -0,0 +1,251 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+"http://www.oasis-open.org/docbook/xml/4.3b2/docbookx.dtd">
+<article>
+ <articleinfo>
+ <title>Configuring JBoss AS with eXo JCR in cluster</title>
+ </articleinfo>
+
+ <sect1>
+ <title>Launching Cluster</title>
+
+ <sect2>
+ <title>Deploying eXo JCR to JBoss As</title>
+
+ <para>To deploy eXo JCR to JBoss As follow next steps:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Dowload the latest version of eXo JCR ear distribution from
+ [LINK THERE]</para>
+ </listitem>
+
+ <listitem>
+ <para>Copy <jcr.ear> into
+ <%jboss_home%/server/default/deploy></para>
+ </listitem>
+
+ <listitem>
+ <para>Put exo-configuration.xml to the root
+ <%jboss_home%/exo-configuration.xml></para>
+ </listitem>
+
+ <listitem>
+ <para>Configure JAAS by inserting XML fragment shown below into
+ <%jboss_home%/server/default/conf/login-config.xml></para>
+
+ <programlisting><application-policy
name="exo-domain">
+ <authentication>
+ <login-module
code="org.exoplatform.services.security.j2ee.JbossLoginModule"
flag="required"></login-module>
+ </authentication>
+</application-policy></programlisting>
+ </listitem>
+
+ <listitem>
+ <para>Start server:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>bin/run.sh for Unix</para>
+ </listitem>
+
+ <listitem>
+ <para>bin/run.bat for Windows</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>Try accessing <ulink
+
url="http://localhost:8080/browser">http://localhost:8080/browser</ulink>
+ with root/exo as login/password if you have done everything right,
+ you'll get access to repository browser.</para>
+ </listitem>
+ </orderedlist>
+ </sect2>
+
+ <sect2>
+ <title>Configuring JCR to use external configuration</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>To manually configure repository create a new configuration
+ file (f.e. exo-jcr-configuration.xml). For details see <ulink
+
url="http://wiki.exoplatform.org/xwiki/bin/view/JCR/#HConfiguration&...
+ Configuration</ulink>. Your configuration must look like:</para>
+
+ <programlisting><repository-service
default-repository="repository1">
+ <repositories>
+ <repository name="repository1" system-workspace="ws1"
default-workspace="ws1">
+ <security-domain>exo-domain</security-domain>
+ <access-control>optional</access-control>
+
<authentication-policy>org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator</authentication-policy>
+ <workspaces>
+ <workspace name="ws1">
+ <container
class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
+ <properties>
+ <property name="source-name"
value="jdbcjcr" />
+ <property name="dialect" value="oracle"
/>
+ <property name="multi-db" value="false"
/>
+ <property name="update-storage"
value="false" />
+ <property name="max-buffer-size"
value="200k" />
+ <property name="swap-directory"
value="../temp/swap/production" />
+ </properties>
+ <value-storages>
+ see "Value storage configuration" part.
+ </value-storages>
+ </container>
+ <initializer
class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer">
+ <properties>
+ <property name="root-nodetype"
value="nt:unstructured" />
+ </properties>
+ </initializer>
+ <cache enabled="true"
class="org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.JBossCacheWorkspaceStorageCache">
+ see "Cache configuration" part.
+ </cache>
+ <query-handler
class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
+ see "Indexer configuration" part.
+ </query-handler>
+ <lock-manager
class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManagerImpl">
+ see "Lock Manager configuration" part.
+ </lock-manager>
+ </workspace>
+ <workspace name="ws2">
+ ...
+ </workspace>
+ <workspace name="wsN">
+ ...
+ </workspace>
+ </workspaces>
+ </repository>
+ </repositories>
+</repository-service> </programlisting>
+ </listitem>
+
+ <listitem>
+ <para>and update RepositoryServiceConfiguration configuration in
+ exo-configuration.xml to use this
file:<programlisting><component>
+
<key>org.exoplatform.services.jcr.config.RepositoryServiceConfiguration</key>
+
<type>org.exoplatform.services.jcr.impl.config.RepositoryServiceConfigurationImpl</type>
+ <init-params>
+ <value-param>
+ <name>conf-path</name>
+ <description>JCR configuration file</description>
+ <value>exo-jcr-configuration.xml</value>
+ </value-param>
+ </init-params>
+</component></programlisting></para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+ </sect1>
+
+ <sect1>
+ <title>Requirements</title>
+
+ <sect2>
+ <title>Enviorenment requirements</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>Every node of cluster MUST have the same mounted Network File
+ System with read and write permissions on it.</para>
+
+ <para>"/mnt/tornado" - path to the mounted Network File System
(all
+ cluster nodes must use the same NFS)</para>
+ </listitem>
+
+ <listitem>
+ <para>Every node of cluster MUST use the same database</para>
+ </listitem>
+
+ <listitem>
+ <para>Same Clusters on different nodes MUST have the same cluster
+ names (f.e if Indexer cluster in workspace production on the first
+ node has name "production_indexer_cluster", then indexer clusters in
+ workspace production on all other nodes MUST have the same name
+ "production_indexer_cluster" )</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Enviorenment requirements</title>
+
+ <para>Configuration of every workspace in repository must contains of
+ such parts:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Value Storage configuration:</para>
+
+ <programlisting><value-storages>
+ <value-storage id="system"
class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
+ <properties>
+ <property name="path"
value="/mnt/tornado/temp/values/production" /> - path within NFS
where ValueStorage will hold it's data
+ </properties>
+ <filters>
+ <filter property-type="Binary" />
+ </filters>
+ </value-storage>
+</value-storages></programlisting>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <listitem>
+ <para>Cache configuration:</para>
+
+ <programlisting><cache enabled="true"
class="org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.JBossCacheWorkspaceStorageCache">
+ <properties>
+ <property name="jbosscache-configuration"
value="jar:/conf/portal/test-jbosscache-data.xml" /> - path to
JBoss Cache configuration for data storage
+ <property name="jgroups-configuration"
value="jar:/conf/portal/udp-mux.xml" /> - path to
JGroups configuration
+ <property name="jbosscache-cluster-name"
value="JCR_Cluster_cache_production" /> - JBoss
Cache data storage cluster name
+ <property name="jgroups-multiplexer-stack" value="true"
/>
+ </properties>
+</cache> </programlisting>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <listitem>
+ <para>Indexer configuration:</para>
+
+ <programlisting><query-handler
class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
+ <properties>
+ <property name="changesfilter-class"
value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter"
/>
+ <property name="index-dir"
value="/mnt/tornado/temp/jcrlucenedb/production" />
- path within NFS where ValueStorage will hold it's data
+ <property name="jbosscache-configuration"
value="jar:/conf/portal/test-jbosscache-indexer.xml" /> - path to
JBoss Cache configuration for indexer
+ <property name="jgroups-configuration"
value="jar:/conf/portal/udp-mux.xml" /> - path
to JGroups configuration
+ <property name="jbosscache-cluster-name"
value="JCR_Cluster_indexer_production" /> - JBoss
Cache indexer cluster name
+ <property name="jgroups-multiplexer-stack" value="true"
/>
+ </properties>
+</query-handler> </programlisting>
+ </listitem>
+
+ <listitem>
+ <para>Lock Manager configuration:</para>
+
+ <programlisting><lock-manager
class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManagerImpl">
+ <properties>
+ <property name="time-out" value="15m" />
+ <property name="jbosscache-configuration"
value="jar:/conf/portal/test-jbosscache-lock.xml" /> - path to
JBoss Cache configuration for lock manager
+ <property name="jgroups-configuration"
value="jar:/conf/portal/udp-mux.xml" /> - path
to JGroups configuration
+ <property name="jgroups-multiplexer-stack" value="true"
/>
+ <property name="jbosscache-cluster-name"
value="JCR_Cluster_lock_production" /> - JBoss
Cache locks cluster name
+
+ <property name="jbosscache-cl-cache.jdbc.table.name"
value="jcrlocks_production"/> - the name of the DB
table where lock's data will be stored
+ <property name="jbosscache-cl-cache.jdbc.table.create"
value="true"/>
+ <property name="jbosscache-cl-cache.jdbc.table.drop"
value="false"/>
+ <property name="jbosscache-cl-cache.jdbc.table.primarykey"
value="jcrlocks_production_pk"/>
+ <property name="jbosscache-cl-cache.jdbc.fqn.column"
value="fqn"/>
+ <property name="jbosscache-cl-cache.jdbc.node.column"
value="node"/>
+ <property name="jbosscache-cl-cache.jdbc.parent.column"
value="parent"/>
+ <property name="jbosscache-cl-cache.jdbc.datasource"
value="jdbcjcr"/>
+ </properties>
+</lock-manager></programlisting>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+ </sect1>
+</article>