Hi Luis,

I don't really understand your problem but if you are using
MySQL DB for clustering the only SPOF i see is the database
itself.
Indeed, if the first node is down the repository is still alive and
is accessible from the second node, but if the database is down
both nodes will failed to access data.

So, to avoid this SPOF you need to setup a high availability
configuration for MySQL like using Heartbeat and DRDB.

--
Sébastien LAUNAY

Luis Leong wrote:
Dear, I have set up two cluster nodes which point to the same MySQL DB.
The point is, which is the best method for me to handle single point of
failure if one node is down? That means, can the repository will auto shift
to others nodes without changing in properties config manually?

Now I used RMI repository and the repository , here is node 1 configuration
node 2 just change the cluster node name to node_2

<?xml version="1.0"?>

<Repository>

        <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">

                <param name="driver" value="com.mysql.jdbc.Driver" />

                <param name="url"

value="jdbc:mysql://192.168.101.122:3306/repositorytest?useUnicode=true&amp;
characterEncoding=UTF-8&amp;autoReconnect=true" />

                <param name="user" value="luis" />

                <param name="password" value="luis" />

                <param name="schema" value="mysql" />

                <param name="schemaObjectPrefix" value="rep_" />

        </FileSystem>

        <Security appName="Jackrabbit">

                <AccessManager

class="org.apache.jackrabbit.core.security.SimpleAccessManager" />

                <LoginModule

class="org.apache.jackrabbit.core.security.SimpleLoginModule">

                        <param name="anonymousId" value="anonymous" />

                </LoginModule>

        </Security>

        <Workspaces rootPath="${rep.home}/wspHomes"

                defaultWorkspace="default" configRootPath="/wspConfigs" />

        <Workspace name="portal">

                <FileSystem

class="org.apache.jackrabbit.core.fs.db.DbFileSystem">

                        <param name="driver" value="com.mysql.jdbc.Driver"
/>

                        <param name="url"

value="jdbc:mysql://192.168.101.122:3306/repositorytest?useUnicode=true&amp;
characterEncoding=UTF-8&amp;autoReconnect=true" />

                        <param name="user" value="luis" />

                        <param name="password" value="luis" />

                        <param name="schema" value="mysql" />

                        <param name="schemaObjectPrefix"
value="JACKRABBIT_portal_" />

                </FileSystem>

                <!-- MySQL Server -->

                <PersistenceManager

class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager
">

                        <param name="driver" value="com.mysql.jdbc.Driver"
/>

                        <param name="url"

value="jdbc:mysql://192.168.101.122:3306/repositorytest?useUnicode=true&amp;
characterEncoding=UTF-8&amp;autoReconnect=true" />

                        <param name="user" value="luis" />

                        <param name="password" value="luis" />

                        <param name="schema" value="mysql" />

                        <param name="schemaObjectPrefix"
value="JACKRABBIT_portal_" />

                        <param name="externalBLOBs" value="false" />

                </PersistenceManager>

                <SearchIndex

class="org.apache.jackrabbit.core.query.lucene.SearchIndex">

                        <param name="path" value="${wsp.home}/index" />

                        <param name="useCompoundFile" value="true" />

                        <param name="minMergeDocs" value="100" />

                        <param name="volatileIdleTime" value="3" />

                        <param name="maxMergeDocs" value="100000" />

                        <param name="mergeFactor" value="10" />

                        <param name="bufferSize" value="10" />

                        <param name="cacheSize" value="1000" />

                        <param name="forceConsistencyCheck" value="false" />

                        <param name="autoRepair" value="true" />

                        <param name="analyzer"

value="org.apache.lucene.analysis.standard.StandardAnalyzer" />

                        <param name="queryClass"

value="org.apache.jackrabbit.core.query.QueryImpl" />

                        <param name="idleTime" value="-1" />

                        <!-- end of default values -->

                        <param name="textFilterClasses"

value="org.apache.jackrabbit.extractor.MsWordTextExtractor,org.apache.jackra
bbit.extractor.MsExcelTextExtractor,org.apache.jackrabbit.extractor.MsPowerP
ointTextExtractor,org.apache.jackrabbit.extractor.PdfTextExtractor,org.apach
e.jackrabbit.extractor.OpenOfficeTextExtractor,org.apache.jackrabbit.extract
or.RTFTextExtractor,org.apache.jackrabbit.extractor.HTMLTextExtractor,org.ap
ache.jackrabbit.extractor.XMLTextExtractor" />

                        <param name="extractorPoolSize " value="2" />

                        <param name="supportHighlighting" value="true" />

                        <param name="respectDocumentOrder" value="false" />

                </SearchIndex>

        </Workspace>

        <Versioning rootPath="${rep.home}/version">

                <FileSystem

class="org.apache.jackrabbit.core.fs.db.DbFileSystem">

                        <param name="driver" value="com.mysql.jdbc.Driver"
/>

                        <param name="url"

value="jdbc:mysql://192.168.101.122:3306/repositorytest?useUnicode=true&amp;
characterEncoding=UTF-8&amp;autoReconnect=true" />

                        <param name="user" value="luis" />

                        <param name="password" value="luis" />

                        <param name="schema" value="mysql" />

                        <param name="schemaObjectPrefix"
value="JACKRABBIT_portal_" />

                </FileSystem>

                <!-- MySQL Server -->

                <PersistenceManager

class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager
">

                        <param name="driver" value="com.mysql.jdbc.Driver"
/>

                        <param name="url"

value="jdbc:mysql://192.168.101.122:3306/repositorytest?useUnicode=true&amp;
characterEncoding=UTF-8&amp;autoReconnect=true" />

                        <param name="user" value="luis" />

                        <param name="password" value="luis" />

                        <param name="schema" value="mysql" />

                        <param name="schemaObjectPrefix"

                                value="JACKRABBIT_VERSION_" />

                        <param name="externalBLOBs" value="false" />

                </PersistenceManager>

        </Versioning>

        <Cluster id="node_1">

                <Journal

class="org.apache.jackrabbit.core.journal.DatabaseJournal">

                        <param name="revision" value="${rep.home}/revision"
/>

                        <param name="driver" value="com.mysql.jdbc.Driver"
/>

                        <param name="url"

value="jdbc:mysql://192.168.101.122:3306/repositorytest?useUnicode=true&amp;
characterEncoding=UTF-8&amp;autoReconnect=true" />

                        <param name="user" value="luis" />

                        <param name="password" value="luis" />

                        <param name="schema" value="mysql" />

                        <param name="schemaObjectPrefix" value="J_C_" />

                </Journal>

        </Cluster>

</Repository>

Best Wishes

Luis



Reply via email to