shuber 2005/11/29 16:28:48 CET
Modified files:
core/src/webapp/html/startup howto_cluster.html
Log:
- Added time sync instructions for clustering
- Added some formatting.
Revision Changes Path
1.14 +40 -27 jahia/core/src/webapp/html/startup/howto_cluster.html
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/webapp/html/startup/howto_cluster.html.diff?r1=1.13&r2=1.14&f=h
Index: howto_cluster.html
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/webapp/html/startup/howto_cluster.html,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- howto_cluster.html 28 Nov 2005 18:19:46 -0000 1.13
+++ howto_cluster.html 29 Nov 2005 15:28:48 -0000 1.14
@@ -35,6 +35,18 @@
font-size : 14px;
color : #999999;
}
+h3 {
+ font-size: 12px;
+ font-family: Arial, Helvetica, sans-serif;
+ font-weight: bold;
+}
+h4 {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-weight: normal;
+ list-style-type: lower-roman;
+ list-style-position: outside;
+}
DIV.box { width : 150px;
color : #666666;
font-family : Arial, Helvetica, sans-serif;
@@ -91,6 +103,10 @@
font-size : 11px;
}
span.red { color : #B42C29; }
+.main .maincontent ol li {
+ padding-bottom: 0.5em;
+ padding-top: 0.5em;
+}
-->
</style>
</head>
@@ -136,21 +152,23 @@
This howto describe the procedure when
2 Jahia nodes are setup in cluster; if more nodes are used, follow the same
<br/>
<ol>
- <li>Install the first instance
as for a stand-alone configuration.<br/>
- During the
configuration wizard, select "in base content storing" if you prefer to store
all
+ <li>Make sure that all the
machine's internal clock are properly synchronized, because some internal Jahia
caches use time-based events. One way to do this is to configure every machine
to sync with an Network Time Protocol (<a
href="http://www.ntp.org/">http://www.ntp.org/</a>) server. Windows and Mac OS
X offers this in standard, as do most linux distributions. </li>
+ <li>Install the first instance
as for a stand-alone configuration.<br/>
+ During the configuration
wizard, select "in base content storing" if you prefer to store all
data in the
database. After configuration wizard is completed and installaton successful,
shutdown this instance of
- Jahia.</li><br/>
+ Jahia.<br/>
+ </li>
<li>Delete all the tables
created during the installation of the first instance of Jahia. Depending on
the database
used and if more
convenient, you may drop the database used and re-create an empty database with
the same name. When
doing this, make
sure that the database login used during the installation of the first instance
has the same rights to the
- newly created
database.</li><br/>
- <li>Install the second
instance as for a stand-alone configuration, using the SAME database as for the
first
+ newly created
database.<br/>
+ </li><li>Install the second
instance as for a stand-alone configuration, using the SAME database as for the
first
instance. If you
chosed "in base content storage" during the installation of the first instance,
select it also for this
instance.<br/>If you
are installing this second instance on the same server as the first, you will
need to change the port used
by tomcat as well as
the shutdown port. This should be changed in the <i>tomcat/conf/server.xml</i>
file.<br/>
After configuration
wizard is completed and installaton successful, shutdown this second instance of
- Jahia.</li><br/>
- <li>If you have not selected
in base content storage, you will need to have the directories containing the
large text files and
+ Jahia.<br/>
+ </li><li>If you have not
selected in base content storage, you will need to have the directories
containing the large text files and
the files uploaded
through Jahia on a shared disk space. At least the following directories will
need to be shared amongst
all Jahia instances:
<br/>
<br/>
@@ -180,18 +198,16 @@
<br/>
You can
also configure if a Jahia node should process or not some operations that may
require some heavy processing like
import/export, cut/paste or linked copy. To change the beahviour, you need to
mdoify the <i>processingServer</i> parameter
- in
jahia.properties : </br><br/>
-<pre class="code">
-### Scheduler config ################
+ in
jahia.properties :
+ <pre
class="code">### Scheduler config ################
# Path to scheduler configuration
schedulerConfigFile = $context/WEB-INF/etc/config/quartz.properties
ramSchedulerConfigFile =
$context/WEB-INF/etc/config/quartz-ram.properties
processingServer = true
</pre>
When set to
"true", the Jahia node WILL process these kinds of operations. If set to
"false", these operations will be handled
- to another
Jahia node which has been configured as a processing server. By default this
parameter is set to "true".<br/><br/><br/>
- Then, for each
instance of Jahia, you will need to make the following modifications in the
Jahia configuration files:<br/><br/>
- <li>Modify the
<i>jahia/WEB-INF/classes/treecache.xml</i> file and replace the following line
:<br/>
+ to another
Jahia node which has been configured as a processing server. By default this
parameter is set to "true".<br/><br/>
+ Then, for each
instance of Jahia, you will need to make the following modifications in the
Jahia configuration files:<li>Modify the
<i>jahia/WEB-INF/classes/treecache.xml</i> file and replace the following line
:<br/>
<p class="code"><attribute
name="CacheMode">LOCAL</attribute></p>
<p>with the line </p>
<p class="code"><attribute
name="CacheMode">REPL_ASYNC</attribute></p>
@@ -208,10 +224,8 @@
</props>
</property>
</bean></pre>
- </li>
- <li>Modify the
<i>jahia/WEB-INF/etc/spring/applicationcontext-dao.xml</i> and set the value of
the parameter <property name="clusterActivated"> to <b>true</b>
in the <i>idGeneratorDAO</i> bean <br/>
+ Modify the
<i>jahia/WEB-INF/etc/spring/applicationcontext-dao.xml</i> and set the value of
the parameter <property name="clusterActivated"> to <b>true</b>
in the <i>idGeneratorDAO</i> bean <br/>
(<i><bean
id="idGeneratorDAO"
class="org.jahia.hibernate.dao.IDGeneratorDAO"
init-method="start" destroy-method="stop"></i>).<br />
- <br />
</li>
<li>By default, the clustering
service uses UDP multicast to communicate with other instances of Jahia running
in the
same local network. This means
that <span class="red"> all Jahia installations in the same local network which
have the clustering
@@ -241,16 +255,16 @@
the output console when starting each
jahia node :<br/>
<br/>
<p class="code">GMS: address is
ip_address:port</p>
- <p>where <i>ip_address</i> is the
local IP address of the node, and <i>port</i> the port used to communicate
+ <p>where <i>ip_address</i> is the local IP address of the node, and
<i>port</i> the port used to communicate
with other Jahia nodes.<br/>
<br/>
- <span class="red">Make sure
that if you have a firewall installed, it does not have filering enabled for
the ports used to send
+ <span class="red">Make sure that if you have a firewall installed, it
does not have filering enabled for the ports used to send
and receive the
packets. The following error in the console may indicate such problem :<br/>
- <br/>
-
[org.jgroups.protocols.UDP] ERROR - exception=java.net.BindException: Cannot
assign requested address: Datagram send failed, msg=[ds
+<br/>
+ [org.jgroups.protocols.UDP]
ERROR - exception=java.net.BindException: Cannot assign requested address:
Datagram send failed, msg=[ds
1.12.21.133:45000, src:
192.168.2.130:1664 (2 headers), size = 0 bytes], mcast_addr=231.12.21.133:45000
</span>
- <br/><br>
- <h4>Sticky sessions</h3>
+
+ <h4>Sticky sessions</h4>
If you are using an
hardware or software loadbalancer in front of Jahia to handle distribution of
load amongst all Jahia nodes in
the cluster, you will
need to activate "sticky sessions" on Tomcat and the load balancer. This is
required to force an open session to
make all requests on
the same server for the time of the session.<br/>
@@ -260,13 +274,12 @@
<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">
-->
</pre>
- <br/>
- where <i>jvm1</i> is the name of the worker as
declared in the load-balancer.<br/>
+ where <i>jvm1</i> is the name of the worker as declared in the
load-balancer.<br/>
</p>
</p>
<h2>III - To setup and activate
transactions</h2>
- <p>Introduction
</p>
- <p>Jahia can now be configured to use transactions, and will soon
require this in order to guarantee data integrity. Clustering setups also
<strong>require</strong> transactions to be setup properly. This howto explains
how to setup transactions with Tomcat, but it is also possible to use the
default transaction manager of a J2EE application server, such as Apache
Geronimo or JBoss. This guide only explains the steps to configure transactions
with Tomcat.</p>
+ <h3>Introduction
</h3>
+ <p>Jahia can now be configured to use
transactions, and will soon require this in order to guarantee data integrity.
Clustering setups also <strong>require</strong> transactions to be setup
properly. This howto explains how to setup transactions with Tomcat, but it is
also possible to use the default transaction manager of a J2EE application
server, such as Apache Geronimo or JBoss. This guide only explains the steps to
configure transactions with Tomcat.</p>
<p><span class="red">Warning</span> : the portlet service has not yet
been integrated with transactions. Using portlets with transactions will most
likely fail. </p>
<p>Requirements : </p>
<ul>
@@ -327,7 +340,7 @@
<pre class="code"><prop
key="hibernate.transaction.factory_class">
org.hibernate.transaction.JTATransactionFactory
</prop></pre>
- </li>
+ </li>
<li> In
tomcat/webapps/jahia/WEB-INF/etc/spring/applicationcontext-hibernate.xml,
uncomment the following lines :<br />
<br />
<pre class="code"><bean
id="transactionManager"