blob: 218727b388eac58e6021990ff09385ae379b9d05 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
Copyright 1999-2004 The Apache Software Foundation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- Content Stylesheet for Site -->
<!-- start the processing -->
<!-- ====================================================================== -->
<!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
<!-- Main Page Section -->
<!-- ====================================================================== -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="author" content="
OpenMeetings Team
">
<meta name="email" content="solomax@apache.org">
<title>Apache OpenMeetings - Clustering</title>
<link rel="stylesheet" type="text/css" href="css/openmeetings.css">
<link rel="stylesheet" type="text/css" href="css/jquery-ui.css">
<link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
<link rel="stylesheet" type="text/css" href="css/colorbox.css" />
<!-- Add jQuery library -->
<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
<!-- Add coinslider plugins -->
<script type="text/javascript" src="js/coin-slider.min.js"></script>
<!-- Add colorbox plugin -->
<script type="text/javascript" src="js/jquery.colorbox.js"></script>
<script src="js/jquery.ui.core.js"></script>
<script src="js/jquery.ui.widget.js"></script>
<script src="js/jquery.ui.accordion.js"></script>
<script>
$(function() {
$( "#accordion" ).accordion({
autoHeight: false,
navigation: true,
navigationFilter: function () {
var sidebarHrefArray = this.href.split("/");
var sideBarLastString = sidebarHrefArray[sidebarHrefArray.length - 1].toLowerCase();
if (sideBarLastString.indexOf("#") == -1) {
return false;
}
/* document.location.href */
var currentSection = "";
var currentLocation = "";
var currentLink = "";
if (false) {
}
else if (document.location.href.indexOf("/index.html") > 0) {
currentLocation = "General";
currentLink = "/index.html".substr(1, "/index.html".length);
}
else if (document.location.href.indexOf("/license.html") > 0) {
currentLocation = "General";
currentLink = "/license.html".substr(1, "/license.html".length);
}
else if (document.location.href.indexOf("http://www.apache.org/") > 0) {
currentLocation = "General";
currentLink = "http://www.apache.org/".substr(1, "http://www.apache.org/".length);
}
else if (document.location.href.indexOf("/downloads.html") > 0) {
currentLocation = "General";
currentLink = "/downloads.html".substr(1, "/downloads.html".length);
}
else if (document.location.href.indexOf("/commercial-support.html") > 0) {
currentLocation = "General";
currentLink = "/commercial-support.html".substr(1, "/commercial-support.html".length);
}
else if (document.location.href.indexOf("/installation.html") > 0) {
currentLocation = "InstallationandUpgrade";
currentLink = "/installation.html".substr(1, "/installation.html".length);
}
else if (document.location.href.indexOf("/Upgrade.html") > 0) {
currentLocation = "InstallationandUpgrade";
currentLink = "/Upgrade.html".substr(1, "/Upgrade.html".length);
}
else if (document.location.href.indexOf("https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools") > 0) {
currentLocation = "InstallationandUpgrade";
currentLink = "https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools".substr(1, "https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools".length);
}
else if (document.location.href.indexOf("/CommandLineAdmin.html") > 0) {
currentLocation = "InstallationandUpgrade";
currentLink = "/CommandLineAdmin.html".substr(1, "/CommandLineAdmin.html".length);
}
else if (document.location.href.indexOf("/get-involved.html") > 0) {
currentLocation = "Community";
currentLink = "/get-involved.html".substr(1, "/get-involved.html".length);
}
else if (document.location.href.indexOf("/team-list.html") > 0) {
currentLocation = "Community";
currentLink = "/team-list.html".substr(1, "/team-list.html".length);
}
else if (document.location.href.indexOf("/mail-lists.html") > 0) {
currentLocation = "Community";
currentLink = "/mail-lists.html".substr(1, "/mail-lists.html".length);
}
else if (document.location.href.indexOf("http://cwiki.apache.org/confluence/display/OPENMEETINGS/") > 0) {
currentLocation = "Community";
currentLink = "http://cwiki.apache.org/confluence/display/OPENMEETINGS/".substr(1, "http://cwiki.apache.org/confluence/display/OPENMEETINGS/".length);
}
else if (document.location.href.indexOf("/svn.html") > 0) {
currentLocation = "Development";
currentLink = "/svn.html".substr(1, "/svn.html".length);
}
else if (document.location.href.indexOf("http://issues.apache.org/jira/browse/OPENMEETINGS") > 0) {
currentLocation = "Development";
currentLink = "http://issues.apache.org/jira/browse/OPENMEETINGS".substr(1, "http://issues.apache.org/jira/browse/OPENMEETINGS".length);
}
else if (document.location.href.indexOf("/dependencies.html") > 0) {
currentLocation = "Development";
currentLink = "/dependencies.html".substr(1, "/dependencies.html".length);
}
else if (document.location.href.indexOf("/BuildInstructions.html") > 0) {
currentLocation = "Development";
currentLink = "/BuildInstructions.html".substr(1, "/BuildInstructions.html".length);
}
else if (document.location.href.indexOf("/JUnitTesting.html") > 0) {
currentLocation = "Development";
currentLink = "/JUnitTesting.html".substr(1, "/JUnitTesting.html".length);
}
else if (document.location.href.indexOf("/ManualTesting.html") > 0) {
currentLocation = "Development";
currentLink = "/ManualTesting.html".substr(1, "/ManualTesting.html".length);
}
else if (document.location.href.indexOf("/ReleaseGuide.html") > 0) {
currentLocation = "Development";
currentLink = "/ReleaseGuide.html".substr(1, "/ReleaseGuide.html".length);
}
else if (document.location.href.indexOf("/WebsiteGuide.html") > 0) {
currentLocation = "Development";
currentLink = "/WebsiteGuide.html".substr(1, "/WebsiteGuide.html".length);
}
else if (document.location.href.indexOf("/SoapRestAPI.html") > 0) {
currentLocation = "Integration";
currentLink = "/SoapRestAPI.html".substr(1, "/SoapRestAPI.html".length);
}
else if (document.location.href.indexOf("/RestAPISample.html") > 0) {
currentLocation = "Integration";
currentLink = "/RestAPISample.html".substr(1, "/RestAPISample.html".length);
}
else if (document.location.href.indexOf("/LdapAndADS.html") > 0) {
currentLocation = "Integration";
currentLink = "/LdapAndADS.html".substr(1, "/LdapAndADS.html".length);
}
else if (document.location.href.indexOf("/voip-sip-integration.html") > 0) {
currentLocation = "Integration";
currentLink = "/voip-sip-integration.html".substr(1, "/voip-sip-integration.html".length);
}
else if (document.location.href.indexOf("/ErrorsTable.html") > 0) {
currentLocation = "Integration";
currentLink = "/ErrorsTable.html".substr(1, "/ErrorsTable.html".length);
}
else if (document.location.href.indexOf("/MoodlePlugin.html") > 0) {
currentLocation = "Plugins";
currentLink = "/MoodlePlugin.html".substr(1, "/MoodlePlugin.html".length);
}
else if (document.location.href.indexOf("/SakaiPlugin.html") > 0) {
currentLocation = "Plugins";
currentLink = "/SakaiPlugin.html".substr(1, "/SakaiPlugin.html".length);
}
else if (document.location.href.indexOf("/JiraPlugin.html") > 0) {
currentLocation = "Plugins";
currentLink = "/JiraPlugin.html".substr(1, "/JiraPlugin.html".length);
}
else if (document.location.href.indexOf("/JoomlaPlugin.html") > 0) {
currentLocation = "Plugins";
currentLink = "/JoomlaPlugin.html".substr(1, "/JoomlaPlugin.html".length);
}
else if (document.location.href.indexOf("/DrupalPlugin.html") > 0) {
currentLocation = "Plugins";
currentLink = "/DrupalPlugin.html".substr(1, "/DrupalPlugin.html".length);
}
else if (document.location.href.indexOf("/BitrixPlugin.html") > 0) {
currentLocation = "Plugins";
currentLink = "/BitrixPlugin.html".substr(1, "/BitrixPlugin.html".length);
}
else if (document.location.href.indexOf("/ConfluencePlugin.html") > 0) {
currentLocation = "Plugins";
currentLink = "/ConfluencePlugin.html".substr(1, "/ConfluencePlugin.html".length);
}
else if (document.location.href.indexOf("/SugarCRMPlugin.html") > 0) {
currentLocation = "Plugins";
currentLink = "/SugarCRMPlugin.html".substr(1, "/SugarCRMPlugin.html".length);
}
else if (document.location.href.indexOf("/RedminePlugin.html") > 0) {
currentLocation = "Plugins";
currentLink = "/RedminePlugin.html".substr(1, "/RedminePlugin.html".length);
}
else if (document.location.href.indexOf("/ApacheDerbyConfig.html") > 0) {
currentLocation = "Configuration";
currentLink = "/ApacheDerbyConfig.html".substr(1, "/ApacheDerbyConfig.html".length);
}
else if (document.location.href.indexOf("/IBMDB2Config.html") > 0) {
currentLocation = "Configuration";
currentLink = "/IBMDB2Config.html".substr(1, "/IBMDB2Config.html".length);
}
else if (document.location.href.indexOf("/OracleConfig.html") > 0) {
currentLocation = "Configuration";
currentLink = "/OracleConfig.html".substr(1, "/OracleConfig.html".length);
}
else if (document.location.href.indexOf("/MySQLConfig.html") > 0) {
currentLocation = "Configuration";
currentLink = "/MySQLConfig.html".substr(1, "/MySQLConfig.html".length);
}
else if (document.location.href.indexOf("/PostgresConfig.html") > 0) {
currentLocation = "Configuration";
currentLink = "/PostgresConfig.html".substr(1, "/PostgresConfig.html".length);
}
else if (document.location.href.indexOf("/MSSQLConfig.html") > 0) {
currentLocation = "Configuration";
currentLink = "/MSSQLConfig.html".substr(1, "/MSSQLConfig.html".length);
}
else if (document.location.href.indexOf("/Internationalisation.html") > 0) {
currentLocation = "Configuration";
currentLink = "/Internationalisation.html".substr(1, "/Internationalisation.html".length);
}
else if (document.location.href.indexOf("/LanguageEditor.html") > 0) {
currentLocation = "Configuration";
currentLink = "/LanguageEditor.html".substr(1, "/LanguageEditor.html".length);
}
else if (document.location.href.indexOf("/TimeZoneHandling.html") > 0) {
currentLocation = "Configuration";
currentLink = "/TimeZoneHandling.html".substr(1, "/TimeZoneHandling.html".length);
}
else if (document.location.href.indexOf("/EditTemplates.html") > 0) {
currentLocation = "Configuration";
currentLink = "/EditTemplates.html".substr(1, "/EditTemplates.html".length);
}
else if (document.location.href.indexOf("/PortSettings.html") > 0) {
currentLocation = "Configuration";
currentLink = "/PortSettings.html".substr(1, "/PortSettings.html".length);
}
else if (document.location.href.indexOf("/JVMPerformanceTuning.html") > 0) {
currentLocation = "Configuration";
currentLink = "/JVMPerformanceTuning.html".substr(1, "/JVMPerformanceTuning.html".length);
}
else if (document.location.href.indexOf("/themes-and-branding.html") > 0) {
currentLocation = "Configuration";
currentLink = "/themes-and-branding.html".substr(1, "/themes-and-branding.html".length);
}
else if (document.location.href.indexOf("/Dashboard.html") > 0) {
currentLocation = "Configuration";
currentLink = "/Dashboard.html".substr(1, "/Dashboard.html".length);
}
else if (document.location.href.indexOf("/WebcamResolutions.html") > 0) {
currentLocation = "Configuration";
currentLink = "/WebcamResolutions.html".substr(1, "/WebcamResolutions.html".length);
}
else if (document.location.href.indexOf("/ConferenceRoomLayoutOptions.html") > 0) {
currentLocation = "Configuration";
currentLink = "/ConferenceRoomLayoutOptions.html".substr(1, "/ConferenceRoomLayoutOptions.html".length);
}
else if (document.location.href.indexOf("/HotKeys.html") > 0) {
currentLocation = "Configuration";
currentLink = "/HotKeys.html".substr(1, "/HotKeys.html".length);
}
else if (document.location.href.indexOf("/WebappNamePath.html") > 0) {
currentLocation = "Configuration";
currentLink = "/WebappNamePath.html".substr(1, "/WebappNamePath.html".length);
}
else if (document.location.href.indexOf("/Navigation.html") > 0) {
currentLocation = "Configuration";
currentLink = "/Navigation.html".substr(1, "/Navigation.html".length);
}
else if (document.location.href.indexOf("/CalendarAndTimezone.html") > 0) {
currentLocation = "Configuration";
currentLink = "/CalendarAndTimezone.html".substr(1, "/CalendarAndTimezone.html".length);
}
else if (document.location.href.indexOf("/CustomRoomTypeHowTo.html") > 0) {
currentLocation = "Configuration";
currentLink = "/CustomRoomTypeHowTo.html".substr(1, "/CustomRoomTypeHowTo.html".length);
}
else if (document.location.href.indexOf("/CustomCryptMechanism.html") > 0) {
currentLocation = "Configuration";
currentLink = "/CustomCryptMechanism.html".substr(1, "/CustomCryptMechanism.html".length);
}
else if (document.location.href.indexOf("/GeneralConfiguration.html") > 0) {
currentLocation = "Configuration";
currentLink = "/GeneralConfiguration.html".substr(1, "/GeneralConfiguration.html".length);
}
else if (document.location.href.indexOf("/RestrictedAccess.html") > 0) {
currentLocation = "Configuration";
currentLink = "/RestrictedAccess.html".substr(1, "/RestrictedAccess.html".length);
}
else if (document.location.href.indexOf("/RTMPSAndHTTPS.html") > 0) {
currentLocation = "Configuration";
currentLink = "/RTMPSAndHTTPS.html".substr(1, "/RTMPSAndHTTPS.html".length);
}
else if (document.location.href.indexOf("/OpenOfficeConverter.html") > 0) {
currentLocation = "Configuration";
currentLink = "/OpenOfficeConverter.html".substr(1, "/OpenOfficeConverter.html".length);
}
else if (document.location.href.indexOf("/FFMPEGVersionSwitch.html") > 0) {
currentLocation = "Configuration";
currentLink = "/FFMPEGVersionSwitch.html".substr(1, "/FFMPEGVersionSwitch.html".length);
}
else if (document.location.href.indexOf("/Clustering.html") > 0) {
currentLocation = "Configuration";
currentLink = "/Clustering.html".substr(1, "/Clustering.html".length);
}
else if (document.location.href.indexOf("/GetVersionInfo.html") > 0) {
currentLocation = "Configuration";
currentLink = "/GetVersionInfo.html".substr(1, "/GetVersionInfo.html".length);
}
currentLink = currentLink.toLowerCase();
currentLocation = currentLocation.toLowerCase();
return sideBarLastString == currentLink+"#"+currentLocation;
}
});
});
</script>
<script type="text/javascript">
$(document).ready(function() {
$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
$('#accordion a').each(function() {
var a = $(this);
var href = a.attr("href");
if (href.indexOf("#") == -1) {
var compareIt = href.substr(2, href.length);
if (document.location.href.indexOf(compareIt)!= -1) {
a.addClass('active');
}
}
});
$('#coin-slider').coinslider({ width: 640,height: 400, delay: 4000 });
});
</script>
<style type="text/css">
.fancybox-custom .fancybox-outer {
box-shadow: 0 0 50px #222;
}
</style>
</head>
<body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">
<div class="mainbody" style="width: 100%;">
<div class="superbody" style="width: 100%;">
<table border="0" width="100%" cellspacing="0">
<!-- TOP IMAGE -->
<tr>
<td align="left">
<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
</td>
<td width="80%" align="right" valign="top" >
<a href="demo.html">Demo</a>
<span>|</span>
<a href="downloads.html" target="_PARENT">Download</a>
<span>|</span>
<a href="installation.html" target="_PARENT">Installation</a>
<span>|</span>
<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
<span>&nbsp;</span>
</td>
</tr>
</table>
<table border="0" width="100%" cellspacing="4">
<tr><td colspan="2">
<hr noshade="noshade" size="1"/>
</td></tr>
<tr>
<!-- LEFT SIDE NAVIGATION -->
<td width="20%" valign="top" nowrap="nowrap">
<!-- special ACon Logo - leave here for next time
<a href="http://apachecon.com/2005/US/">
<img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
width="125" border="0" alt="ApacheCon US 2005" />
</a> -->
<!-- regular menu -->
<!-- ============================================================ -->
<div id="accordion" style="width: 100%">
<h3><a href="#General">General</a></h3>
<div>
<a href="./index.html">Home</a>
<br/>
<a href="./license.html">License</a>
<br/>
<a href="http://www.apache.org/">ASF</a>
<br/>
<a href="./downloads.html">Downloads</a>
<br/>
<a href="./commercial-support.html">Commercial Support</a>
<br/>
</div>
<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
<div>
<a href="./installation.html">Installation</a>
<br/>
<a href="./Upgrade.html">Upgrade</a>
<br/>
<a href=".https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
<br/>
<a href="./CommandLineAdmin.html">Command Line Admin</a>
<br/>
</div>
<h3><a href="#Community">Community</a></h3>
<div>
<a href="./get-involved.html">Get Involved</a>
<br/>
<a href="./team-list.html">Committers</a>
<br/>
<a href="./mail-lists.html">Mailing Lists</a>
<br/>
<a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
<br/>
</div>
<h3><a href="#Development">Development</a></h3>
<div>
<a href="./svn.html">Source Code</a>
<br/>
<a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
<br/>
<a href="./dependencies.html">Dependencies</a>
<br/>
<a href="./BuildInstructions.html">Build Instructions</a>
<br/>
<a href="./JUnitTesting.html">JUnit Testing</a>
<br/>
<a href="./ManualTesting.html">Manual Testing</a>
<br/>
<a href="./ReleaseGuide.html">Release Guide</a>
<br/>
<a href="./WebsiteGuide.html">Website Guide</a>
<br/>
</div>
<h3><a href="#Integration">Integration</a></h3>
<div>
<a href="./SoapRestAPI.html">SOAP/REST API</a>
<br/>
<a href="./RestAPISample.html">REST API Sample</a>
<br/>
<a href="./LdapAndADS.html">Ldap and ADS</a>
<br/>
<a href="./voip-sip-integration.html">VoIP and SIP</a>
<br/>
<a href="./ErrorsTable.html">Errors table</a>
<br/>
</div>
<h3><a href="#Plugins">Plugins</a></h3>
<div>
<a href="./MoodlePlugin.html">Moodle Plugin</a>
<br/>
<a href="./SakaiPlugin.html">Sakai Plugin</a>
<br/>
<a href="./JiraPlugin.html">Jira Plugin</a>
<br/>
<a href="./JoomlaPlugin.html">Joomla Plugin</a>
<br/>
<a href="./DrupalPlugin.html">Drupal Plugin</a>
<br/>
<a href="./BitrixPlugin.html">Bitrix Plugin</a>
<br/>
<a href="./ConfluencePlugin.html">Confluence Plugin</a>
<br/>
<a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
<br/>
<a href="./RedminePlugin.html">Redmine Plugin</a>
<br/>
</div>
<h3><a href="#Configuration">Configuration</a></h3>
<div>
<b>DB Sample Configurations</b><br/>
<a href="./ApacheDerbyConfig.html">Apache Derby</a>
<br/>
<a href="./IBMDB2Config.html">IBM DB2</a>
<br/>
<a href="./OracleConfig.html">Oracle</a>
<br/>
<a href="./MySQLConfig.html">MySQL</a>
<br/>
<a href="./PostgresConfig.html">Postgres</a>
<br/>
<a href="./MSSQLConfig.html">MSSQL</a>
<br/>
<b>Localization and languages</b><br/>
<a href="./Internationalisation.html">Internationalisation</a>
<br/>
<a href="./LanguageEditor.html">LanguageEditor</a>
<br/>
<a href="./TimeZoneHandling.html">TimeZoneHandling</a>
<br/>
<a href="./EditTemplates.html">EditTemplates</a>
<br/>
<b>NAT Port Settings</b><br/>
<a href="./PortSettings.html">Port settings</a>
<br/>
<b>Performance</b><br/>
<a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
<br/>
<b>User Interface</b><br/>
<a href="./themes-and-branding.html">Themes</a>
<br/>
<a href="./Dashboard.html">Dashboard</a>
<br/>
<a href="./WebcamResolutions.html">Webcam resolutions</a>
<br/>
<a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
<br/>
<a href="./HotKeys.html">Hot Keys</a>
<br/>
<b>Customization</b><br/>
<a href="./WebappNamePath.html">Webapp name/path</a>
<br/>
<a href="./Navigation.html">Navigation</a>
<br/>
<a href="./CalendarAndTimezone.html">Calendar and timezone</a>
<br/>
<a href="./CustomRoomTypeHowTo.html">Custom room type</a>
<br/>
<a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
<br/>
<a href="./GeneralConfiguration.html">General Configuration</a>
<br/>
<b>Security</b><br/>
<a href="./RestrictedAccess.html">Restricted Access</a>
<br/>
<a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
<br/>
<b>Converters</b><br/>
<a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
<br/>
<a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
<br/>
<b>Clustering</b><br/>
<a href="./Clustering.html">Clustering</a>
<br/>
<b>Misc</b><br/>
<a href="./GetVersionInfo.html">Get version info</a>
<br/>
</div>
</div>
<br/>
</td>
<td width="80%" align="left" valign="top">
<table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
<tr><td ><!-- bgcolor="#EEEEEE" -->
<font color="#000000" face="verdana,arial,helvetica,sanserif">
<a name="Description"><strong>Description</strong></a>
</font>
<hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
</td></tr>
<tr><td>
<blockquote>
<p>
OpenMeetings 2.1 or later is required to use clustering. One database is used for all OpenMeetings
servers, so all database tables are shared across OM instances. Certain folders should be shared
between all servers to allow access to the files/recording.</p>
</blockquote>
</td></tr>
<tr><td><br/></td></tr>
</table>
<table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
<tr><td ><!-- bgcolor="#EEEEEE" -->
<font color="#000000" face="verdana,arial,helvetica,sanserif">
<a name="Configuration"><strong>Configuration</strong></a>
</font>
<hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
</td></tr>
<tr><td>
<blockquote>
<ul>
<li>
Multiple OM servers should be set up as described in
<a href="installation.html" target="_BLANK">
<b>Installation</b>
</a>
</li>
<li>All servers should be configured to have same Time zone (To avoid
Schedulers to drop user sessions as outdated)
</li>
<li>All servers should be configured to use the same DB</li>
<li>Servers should be added in Administration -&gt; Servers section</li>
</ul>
</blockquote>
</td></tr>
<tr><td><br/></td></tr>
</table>
<table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
<tr><td ><!-- bgcolor="#EEEEEE" -->
<font color="#000000" face="verdana,arial,helvetica,sanserif">
<a name="Database"><strong>Database</strong></a>
</font>
<hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
</td></tr>
<tr><td>
<blockquote>
<ul>
<li>Add users who can connect to the database remotely</li>
<li>Update <tt>/opt/red5/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml</tt>
set correct server address, login and password. Also add the following section:
<div class="xmlcode">&lt;property name="openjpa.RemoteCommitProvider" value="tcp(Addresses=10.1.1.1;10.1.1.2)" /&gt;</div>
Instead of the 10.1.1.1 and 10.1.1.2 set semicolon separated IPs of all nodes of the cluster.
</li>
</ul>
</blockquote>
</td></tr>
<tr><td><br/></td></tr>
</table>
<table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
<tr><td ><!-- bgcolor="#EEEEEE" -->
<font color="#000000" face="verdana,arial,helvetica,sanserif">
<a name="File systems"><strong>File systems</strong></a>
</font>
<hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
</td></tr>
<tr><td>
<blockquote>
<ul>
<li>Install NFS to the data server. In the file <tt>/etc/exports</tt> add the following lines:
<div class="xmlcode">
/opt/red5/webapps/openmeetings/upload 10.1.1.2(rw,sync,no_subtree_check,no_root_squash)<br />
/opt/red5/webapps/openmeetings/streams 10.1.1.2(rw,sync,no_subtree_check,no_root_squash)
</div>
Here 10.1.1.2 - is node ip for NFS remote access. Add these lines for all nodes except node with
folders.
</li>
<li>
Install NFS common tools to other nodes. In the file <tt>/etc/fstab</tt> do the following:
<div class="xmlcode">
10.1.1.1:/opt/red5/webapps/openmeetings/upload/<br />
/opt/red5/webapps/openmeetings/upload nfs timeo=50,hard,intr<br />
10.1.1.1:/opt/red5/webapps/openmeetings/streams/<br />
/opt/red5/webapps/openmeetings/streams nfs timeo=50,hard,intr
</div>
Here 10.1.1.1 – data server ip. And run the command:
<div class="xmlcode">
mount -a
</div>
</li>
</ul>
</blockquote>
</td></tr>
<tr><td><br/></td></tr>
</table>
<table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
<tr><td ><!-- bgcolor="#EEEEEE" -->
<font color="#000000" face="verdana,arial,helvetica,sanserif">
<a name="OM nodes configuration"><strong>OM nodes configuration</strong></a>
</font>
<hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
</td></tr>
<tr><td>
<blockquote>
<tt>/opt/red5/webapps/openmeetings/WEB-INF/openmeetings-applicationContext.xml</tt>
<ul>
<li>
For each node uncomment line:
<div class="xmlcode">
&lt;!-- Need to be uncommented and set to the real ID if in cluster mode--&gt;<br />
&lt;property name="serverId" value="1" /&gt;
</div>
and input the unique value for each node.
</li>
<li>
Replace <tt>&lt;ref bean="openmeetings.HashMapStore" /&gt; &lt;!-- Memory based session cache by default --&gt;</tt><br />
with <tt>&lt;ref bean="openmeetings.DatabaseStore" /&gt;</tt>
(Currently commented out with following comment: <tt>"The following section should be used in clustering mode"</tt>)
</li>
</ul>
</blockquote>
</td></tr>
<tr><td><br/></td></tr>
</table>
<table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
<tr><td ><!-- bgcolor="#EEEEEE" -->
<font color="#000000" face="verdana,arial,helvetica,sanserif">
<a name="Configuring cluster in Administration"><strong>Configuring cluster in Administration</strong></a>
</font>
<hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
</td></tr>
<tr><td>
<blockquote>
<ul>
<li>Go to the <tt>Administration -&gt; Users</tt> and create Webservice user (only access via SOAP).</li>
<li>
Go to the <tt>Administration -&gt; Servers</tt> and add all cluster nodes with the following settings:
<div class="xmlcode">
Server Name = node name;<br />
Active = check the checkbox. If the checkbox is checked it means node is active and you can use this node;<br />
Server Address = node ip;<br />
HTTP Port = 5080 - port for http part of Openmeetings;<br />
User (SOAP Access) = login of Webservice user from the previous step;<br />
Password = password of Webservise user;<br />
Webapp path = openmeetings - path where OM installed on this node, it would be better if this path will be the same for all nodes;<br />
Protocol = http.
</div>
</li>
</ul>
<img src="./images/cluster1.png" width="650" height="461" align="">
</blockquote>
</td></tr>
<tr><td><br/></td></tr>
</table>
<table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
<tr><td ><!-- bgcolor="#EEEEEE" -->
<font color="#000000" face="verdana,arial,helvetica,sanserif">
<a name="Ensure everything works as expected"><strong>Ensure everything works as expected</strong></a>
</font>
<hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
</td></tr>
<tr><td>
<blockquote>
<ul>
<li>Set up the cluster and loggin with two users, go to the same room (also check before room
entering that the status page with the room list shows the correct number of participants before
entering the room). You should login to the same server initially, the server will redirect you
for the conference room to the appropriate server automatically. Both users should be in the same room.
</li>
<li>Do the same with only two users but go to _different_ rooms. The calculation should send
both users to different servers, cause based on the calculation two different rooms on a cluster
with two nodes should go exactly one room for each node. You can now loggin really to node1
and node2 of your cluster while those users are loggedin and go to <tt>Administration &gt; Connections</tt>
and check in the column "servers" where they are located. They should be on different server.
</li>
</ul>
<img src="./images/cluster2.png" width="650" height="369" align="">
</blockquote>
</td></tr>
<tr><td><br/></td></tr>
</table>
</td>
</tr>
<!-- FOOTER -->
<tr><td colspan="2">
<hr noshade="noshade" size="1"/>
</td></tr>
<tr><td colspan="2">
<div align="center"><font color="#123465" size="-1"><em>
Copyright &#169; 2003-2013, The Apache Software Foundation
</em></font></div>
</td></tr>
</table>
</div>
</div>
</body>
</html>
<!-- end the processing -->