Author: tolusha
Date: 2012-02-08 07:52:03 -0500 (Wed, 08 Feb 2012)
New Revision: 5582
Added:
jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/ispn/
jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/ispn/ispn-integration.xml
Modified:
jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr.xml
Log:
EXOJCR-1735: ISPN integration chapter
Added:
jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/ispn/ispn-integration.xml
===================================================================
---
jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/ispn/ispn-integration.xml
(rev 0)
+++
jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/ispn/ispn-integration.xml 2012-02-08
12:52:03 UTC (rev 5582)
@@ -0,0 +1,362 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This document was created with Syntext Serna Free. -->
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<chapter id="ISPN.integration">
+ <?dbhtml filename="ispn-integration.html"?>
+
+ <title>Infinispan integration</title>
+
+ <para>eXo JCR can rely on distributed cache such as Infinispan. This article
+ describes the required configuration.</para>
+
+ <section>
+ <title>Components configuration requirements</title>
+
+ <programlisting><component>
+
<key>org.infinispan.transaction.lookup.TransactionManagerLookup</key>
+
<type>org.exoplatform.services.transaction.infinispan.JBossStandaloneJTAManagerLookup</type>
+</component>
+
+<component profiles="ispn">
+
<key>org.exoplatform.services.transaction.TransactionService</key>
+
<type>org.exoplatform.services.transaction.infinispan.JBossTransactionsService</type>
+ <init-params>
+ <value-param>
+ <name>timeout</name>
+ <value>3000</value>
+ </value-param>
+ </init-params>
+</component>
+
+<component profiles="ispn">
+ <key>org.exoplatform.services.rpc.RPCService</key>
+
<type>org.exoplatform.services.rpc.jgv3.RPCServiceImpl</type>
+ <init-params>
+ <value-param>
+ <name>jgroups-configuration</name>
+ <value>jar:/conf/udp-mux-v3.xml</value>
+ </value-param>
+ <value-param>
+ <name>jgroups-cluster-name</name>
+ <value>RPCService-Cluster</value>
+ </value-param>
+ <value-param>
+ <name>jgroups-default-timeout</name>
+ <value>0</value>
+ </value-param>
+ </init-params>
+</component>
+</programlisting>
+ </section>
+
+ <section>
+ <title>Workspaces configuration requirements</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>Cache configuration:</para>
+
+ <programlisting language="xml"><cache
enabled="true"
class="org.exoplatform.services.jcr.impl.dataflow.persistent.infinispan.ISPNCacheWorkspaceStorageCache">
+ <properties>
+ <property name="infinispan-configuration"
value="jar:/conf/portal/cluster/infinispan-data.xml" />
+ <property name="jgroups-configuration"
value="jar:/conf/udp-mux-v3.xml" />
+ <property name="infinispan-cluster-name"
value="JCR-cluster" />
+ </properties>
+</cache>
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>Indexer configuration</para>
+
+ <programlisting language="xml"><query-handler
class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
+ <properties>
+ <property name="index-dir"
value="${exo.jcr.parent.dir:..}/temp/jcrlucenedb/production" />
+ <property name="changesfilter-class"
value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter"
/>
+ <property name="infinispan-configuration"
value="jar:/conf/portal/cluster/infinispan-indexer.xml" />
+ <property name="jgroups-configuration"
value="jar:/conf/udp-mux-v3.xml" />
+ <property name="infinispan-cluster-name"
value="JCR-cluster" />
+ <property name="max-volatile-time" value="60"
/>
+ </properties>
+</query-handler>
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>Lock Manager configuration</para>
+
+ <programlisting language="xml"><lock-manager
class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
+ <properties>
+ <property name="time-out" value="15m" />
+ <property name="infinispan-configuration"
value="jar:/conf/portal/cluster/infinispan-lock.xml" />
+ <property name="jgroups-configuration"
value="jar:/conf/udp-mux-v3.xml" />
+ <property name="infinispan-cluster-name"
value="JCR-cluster" />
+ <property name="infinispan-cl-cache.jdbc.table.name"
value="lk" />
+ <property name="infinispan-cl-cache.jdbc.table.create"
value="true" />
+ <property name="infinispan-cl-cache.jdbc.table.drop"
value="false" />
+ <property name="infinispan-cl-cache.jdbc.id.column"
value="id" />
+ <property name="infinispan-cl-cache.jdbc.data.column"
value="data" />
+ <property name="infinispan-cl-cache.jdbc.timestamp.column"
value="timestamp" />
+ <property name="infinispan-cl-cache.jdbc.datasource"
value="jdbcjcr" />
+ <property name="infinispan-cl-cache.jdbc.connectionFactory"
value="org.infinispan.loaders.jdbc.connectionfactory.ManagedConnectionFactory"
/>
+ </properties>
+</lock-manager>^
+</programlisting>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Shipped Infinispan Cache configuration templates</title>
+
+ <para>eXo JCR implementation is shipped with ready-to-use Infinispan Cache
+ configuration templates for JCR's components. </para>
+
+ <section>
+ <title>Data container template</title>
+
+ <para>Data container template is
"infinispan-data.xml":</para>
+
+ <programlisting><infinispan
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance".
+ xsi:schemaLocation="urn:infinispan:config:5.1
http://www.infinispan.org/schemas/infinispan-config-5.1.xsd".
+ xmlns="urn:infinispan:config:5.1">
+
+ <global>
+ <evictionScheduledExecutor
factory="org.infinispan.executors.DefaultScheduledExecutorFactory">
+ <properties>
+ <property name="threadNamePrefix"
value="EvictionThread"/>
+ </properties>
+ </evictionScheduledExecutor>
+
+ <globalJmxStatistics jmxDomain="exo" enabled="true"
allowDuplicateDomains="true"/>
+
+ <transport
transportClass="org.infinispan.remoting.transport.jgroups.JGroupsTransport"
clusterName="${infinispan-cluster-name}" distributedSyncTimeout=
+ <properties>
+ <property name="configurationFile"
value="${jgroups-configuration}"/>
+ </properties>
+ </transport>
+ </global>
+
+ <default>
+ <clustering mode="replication">
+ <stateTransfer timeout="20000"
fetchInMemoryState="false" />
+ <sync replTimeout="20000"/>
+ </clustering>
+
+ <locking isolationLevel="READ_COMMITTED"
lockAcquisitionTimeout="20000" writeSkewCheck="false"
concurrencyLevel="500" useLockStriping="true"/>
+ <transaction
transactionManagerLookupClass="org.exoplatform.services.transaction.infinispan.JBossStandaloneJTAManagerLookup"
syncRollbackPhase="true" s
+ <jmxStatistics enabled="true"/>
+ <eviction strategy="LRU" threadPolicy="DEFAULT"
maxEntries="1000000"/>
+ <expiration wakeUpInterval="5000"/>
+ </default>
+</infinispan>
+</programlisting>
+
+ <table>
+ <title>Template variables</title>
+
+ <tgroup cols="1">
+ <tbody>
+ <row>
+ <entry>infinispan-cluster-name</entry>
+ </row>
+
+ <row>
+ <entry>jgroups-configuration</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+
+ <section>
+ <title>Lock manager template</title>
+
+ <para>Its template name is "infinispan-lock.xml"</para>
+
+ <programlisting language="xml"><infinispan
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance".
+ xsi:schemaLocation="urn:infinispan:config:5.1
http://www.infinispan.org/schemas/infinispan-config-5.1.xsd".
+ xmlns="urn:infinispan:config:5.1">
+
+ <global>
+ <evictionScheduledExecutor
factory="org.infinispan.executors.DefaultScheduledExecutorFactory">
+ <properties>
+ <property name="threadNamePrefix"
value="EvictionThread"/>
+ </properties>
+ </evictionScheduledExecutor>
+
+ <globalJmxStatistics jmxDomain="exo" enabled="true"
allowDuplicateDomains="true"/>
+
+ <transport
transportClass="org.infinispan.remoting.transport.jgroups.JGroupsTransport"
clusterName="${infinispan-cluster-name}" distributedSyncTimeout=
+ <properties>
+ <property name="configurationFile"
value="${jgroups-configuration}"/>
+ </properties>
+ </transport>
+ </global>
+
+ <default>
+ <clustering mode="replication">
+ <stateTransfer timeout="20000"
fetchInMemoryState="false" />
+ <sync replTimeout="20000"/>
+ </clustering>
+
+ <locking isolationLevel="READ_COMMITTED"
lockAcquisitionTimeout="20000" writeSkewCheck="false"
concurrencyLevel="500" useLockStriping="false"/>
+ <transaction
transactionManagerLookupClass="org.exoplatform.services.transaction.infinispan.JBossStandaloneJTAManagerLookup"
syncRollbackPhase="true" s
+ <jmxStatistics enabled="true"/>
+ <eviction strategy="NONE"/>
+
+ <loaders passivation="false" shared="true"
preload="true">
+ <loader
class="org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore"
fetchPersistentState="true" ignoreModifications="false" purgeOnStar
+ <properties>
+ <property name="stringsTableNamePrefix"
value="${infinispan-cl-cache.jdbc.table.name}"/>
+ <property name="idColumnName"
value="${infinispan-cl-cache.jdbc.id.column}"/>
+ <property name="dataColumnName"
value="${infinispan-cl-cache.jdbc.data.column}"/>
+ <property name="timestampColumnName"
value="${infinispan-cl-cache.jdbc.timestamp.column}"/>
+ <property name="idColumnType"
value="${infinispan-cl-cache.jdbc.id.type}"/>
+ <property name="dataColumnType"
value="${infinispan-cl-cache.jdbc.data.type}"/>
+ <property name="timestampColumnType"
value="${infinispan-cl-cache.jdbc.timestamp.type}"/>
+ <property name="dropTableOnExit"
value="${infinispan-cl-cache.jdbc.table.drop}"/>
+ <property name="createTableOnStart"
value="${infinispan-cl-cache.jdbc.table.create}"/>
+ <property name="connectionFactoryClass"
value="${infinispan-cl-cache.jdbc.connectionFactory}"/>
+ <property name="datasourceJndiLocation"
value="${infinispan-cl-cache.jdbc.datasource}"/>
+ </properties>
+ <async enabled="false"/>
+ </loader>
+ </loaders>
+ </default>
+
+</infinispan>
+</programlisting>
+
+ <table>
+ <title>Template variables</title>
+
+ <tgroup cols="1">
+ <tbody>
+ <row>
+ <entry>infinispan-cluster-name</entry>
+ </row>
+
+ <row>
+ <entry>jgroups-configuration</entry>
+ </row>
+
+ <row>
+ <entry>infinispan-cl-cache.jdbc.table.name</entry>
+ </row>
+
+ <row>
+ <entry>infinispan-cl-cache.jdbc.id.column</entry>
+ </row>
+
+ <row>
+ <entry>infinispan-cl-cache.jdbc.data.column</entry>
+ </row>
+
+ <row>
+ <entry>infinispan-cl-cache.jdbc.timestamp.column</entry>
+ </row>
+
+ <row>
+ <entry>infinispan-cl-cache.jdbc.id.type</entry>
+ </row>
+
+ <row>
+ <entry>infinispan-cl-cache.jdbc.data.type</entry>
+ </row>
+
+ <row>
+ <entry>infinispan-cl-cache.jdbc.timestamp.type</entry>
+ </row>
+
+ <row>
+ <entry>infinispan-cl-cache.jdbc.table.drop</entry>
+ </row>
+
+ <row>
+ <entry>infinispan-cl-cache.jdbc.table.create</entry>
+ </row>
+
+ <row>
+ <entry>infinispan-cl-cache.jdbc.connectionFactory</entry>
+ </row>
+
+ <row>
+ <entry>infinispan-cl-cache.jdbc.datasource</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+
+ <section>
+ <title>Query handler (indexer) template</title>
+
+ <para>Have a look at "infinispan-indexer.xml"</para>
+
+ <programlisting><infinispan
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance".
+ xsi:schemaLocation="urn:infinispan:config:5.1
http://www.infinispan.org/schemas/infinispan-config-5.1.xsd".
+ xmlns="urn:infinispan:config:5.1">
+
+ <global>
+ <evictionScheduledExecutor
factory="org.infinispan.executors.DefaultScheduledExecutorFactory">
+ <properties>
+ <property name="threadNamePrefix"
value="EvictionThread"/>
+ </properties>
+ </evictionScheduledExecutor>
+
+ <globalJmxStatistics jmxDomain="exo" enabled="true"
allowDuplicateDomains="true"/>
+
+ <transport
transportClass="org.infinispan.remoting.transport.jgroups.JGroupsTransport"
clusterName="${infinispan-cluster-name}" distributedSyncTimeout=
+ <properties>
+ <property name="configurationFile"
value="${jgroups-configuration}"/>
+ </properties>
+ </transport>
+ </global>
+
+ <default>
+ <clustering mode="replication">
+ <stateTransfer timeout="20000"
fetchInMemoryState="false" />
+ <sync replTimeout="20000"/>
+ </clustering>
+
+ <locking isolationLevel="READ_COMMITTED"
lockAcquisitionTimeout="20000" writeSkewCheck="false"
concurrencyLevel="500" useLockStriping="false"/>
+ <transaction
transactionManagerLookupClass="org.exoplatform.services.transaction.infinispan.JBossStandaloneJTAManagerLookup"
syncRollbackPhase="true" s
+ <jmxStatistics enabled="true"/>
+ <eviction strategy="NONE"/>
+
+ <loaders passivation="false" shared="false"
preload="false">
+ <loader class="${infinispan-cachestore-classname}"
fetchPersistentState="false" ignoreModifications="false"
purgeOnStartup="false">
+ <async enabled="false"/>
+ </loader>
+ </loaders>
+ </default>
+</infinispan>
+</programlisting>
+
+ <table>
+ <title>Template variable</title>
+
+ <tgroup cols="1">
+ <tbody>
+ <row>
+ <entry>infinispan-cluster-name</entry>
+ </row>
+
+ <row>
+ <entry>jgroups-configuration</entry>
+ </row>
+
+ <row>
+ <entry>infinispan-cachestore-classname</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ </section>
+</chapter>
Modified:
jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr.xml
===================================================================
---
jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr.xml 2012-02-08
08:15:12 UTC (rev 5581)
+++
jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr.xml 2012-02-08
12:52:03 UTC (rev 5582)
@@ -91,6 +91,9 @@
<xi:include href="jcr/transaction-manager-lookup.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include href="jcr/ispn/ispn-integration.xml"
+
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="jcr/repository-creation-service.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />