Author: kwright
Date: Wed Nov 13 22:28:15 2013
New Revision: 1541748

URL: http://svn.apache.org/r1541748
Log:
Update the how-to-build-and-deploy page to describe ZooKeeper example

Modified:
    
manifoldcf/trunk/site/src/documentation/content/xdocs/en_US/how-to-build-and-deploy.xml
    
manifoldcf/trunk/site/src/documentation/content/xdocs/ja_JP/how-to-build-and-deploy.xml

Modified: 
manifoldcf/trunk/site/src/documentation/content/xdocs/en_US/how-to-build-and-deploy.xml
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/site/src/documentation/content/xdocs/en_US/how-to-build-and-deploy.xml?rev=1541748&r1=1541747&r2=1541748&view=diff
==============================================================================
--- 
manifoldcf/trunk/site/src/documentation/content/xdocs/en_US/how-to-build-and-deploy.xml
 (original)
+++ 
manifoldcf/trunk/site/src/documentation/content/xdocs/en_US/how-to-build-and-deploy.xml
 Wed Nov 13 22:28:15 2013
@@ -322,8 +322,10 @@ mvn clean package
           <tr><td><em>script-engine</em></td><td>jars and scripts for running 
the ManifoldCF script interpreter</td></tr>
           <tr><td><em>example</em></td><td>a jetty-based example that runs in 
a single process (except for any connector-specific processes), excluding all 
proprietary libraries</td></tr>
           <tr><td><em>example-proprietary</em></td><td>a jetty-based example 
that runs in a single process (except for any connector-specific processes), 
including proprietary libraries; not included in binary release</td></tr>
-          <tr><td><em>multiprocess-example</em></td><td>scripts and jars for 
an example that uses the multiple process model, excluding all proprietary 
libraries</td></tr>
-          <tr><td><em>multiprocess-example-proprietary</em></td><td>scripts 
and jars for an example that uses the multiple process model, including 
proprietary libraries; not included in binary release</td></tr>
+          <tr><td><em>multiprocess-file-example</em></td><td>scripts and jars 
for an example that uses the multiple process model using file-based 
synchronization, excluding all proprietary libraries</td></tr>
+          
<tr><td><em>multiprocess-file-example-proprietary</em></td><td>scripts and jars 
for an example that uses the multiple process model using file-based 
synchronization, including proprietary libraries; not included in binary 
release</td></tr>
+          <tr><td><em>multiprocess-zk-example</em></td><td>scripts and jars 
for an example that uses the multiple process model using ZooKeeper-based 
synchronization, excluding all proprietary libraries</td></tr>
+          <tr><td><em>multiprocess-zk-example-proprietary</em></td><td>scripts 
and jars for an example that uses the multiple process model using 
ZooKeeper-based synchronization, including proprietary libraries; not included 
in binary release</td></tr>
           <tr><td><em>web</em></td><td>app-server deployable web applications 
(wars), excluding all proprietary libraries</td></tr>
           <tr><td><em>web-proprietary</em></td><td>app-server deployable web 
applications (wars), including proprietary libraries; not included in binary 
release</td></tr>
           <tr><td><em>doc</em></td><td>javadocs for framework and all included 
connectors</td></tr>
@@ -422,15 +424,15 @@ cd example
         </section>
 
         <section>
-          <title>Simplified multi-process model</title>
+          <title>Simplified multi-process model using file-based 
synchronization</title>
           <p></p>
-          <p>ManifoldCF can also be deployed in a simplified multi-process 
model.  Inside the <em>multiprocess-example</em> directory, you will find 
everything you need to do this.  (The
-              <em>multiprocess-example-proprietary</em> directory is similar 
but includes proprietary material and is available only if you build ManifoldCF 
yourself.)  Below is a list of
+          <p>ManifoldCF can also be deployed in a simplified multi-process 
model which uses files to synchronize processes.  Inside the 
<em>multiprocess-file-example</em> directory, you will find everything you need 
to do this.  (The
+              <em>multiprocess-file-example-proprietary</em> directory is 
similar but includes proprietary material and is available only if you build 
ManifoldCF yourself.)  Below is a list of
               what you will find in this directory.</p>
           <p></p>
           <table>
-            <caption>Multiprocess example files and directories</caption>
-            <tr><th><em>multiprocess-example</em> 
file/directory</th><th>Meaning</th></tr>
+            <caption>File-based multiprocess example files and 
directories</caption>
+            <tr><th><em>multiprocess-file-example</em> 
file/directory</th><th>Meaning</th></tr>
             <tr><td><em>web</em></td><td>Web applications that should be 
deployed on tomcat or the equivalent, plus recommended application server -D 
switch names and values</td></tr>
             <tr><td><em>processes</em></td><td>classpath jars that should be 
included in the class path for all non-connector-specific processes, along with 
-D switches, using the same convention as described for tomcat, above</td></tr>
             <tr><td><em>properties.xml</em></td><td>an example ManifoldCF 
configuration file, in the right place for the multiprocess script to find 
it</td></tr>
@@ -448,7 +450,7 @@ cd example
           <section>
             <title>Initializing the database and running</title>
             <p></p>
-            <p>If you run the multiprocess model, after you first start the 
database (using <em>start-database[.sh|.bat]</em>), you will need to initialize 
the database before you start the agents process or use the crawler UI.  To do 
this, all you need to do is
+            <p>If you run the file-based multiprocess model, after you first 
start the database (using <em>start-database[.sh|.bat]</em>), you will need to 
initialize the database before you start the agents process or use the crawler 
UI.  To do this, all you need to do is
                 run the <em>initialize[.sh|.bat]</em> script.  Then, you will 
need to start the web applications (using <em>start-webapps[.sh|.bat]</em>) and 
the agents process (using
                 <em>start-agents[.sh|.bat]</em>).</p>
             <p></p>
@@ -457,6 +459,50 @@ cd example
         </section>
 
         <section>
+          <title>Simplified multi-process model using ZooKeeper-based 
synchronization</title>
+          <p></p>
+          <p>ManifoldCF can be deployed in a simplified multi-process model 
which uses Apache ZooKeeper to synchronize processes.  Inside the 
<em>multiprocess-kz-example</em> directory, you will find everything you need 
to do this.  (The
+              <em>multiprocess-zk-example-proprietary</em> directory is 
similar but includes proprietary material and is available only if you build 
ManifoldCF yourself.)  Below is a list of
+              what you will find in this directory.</p>
+          <p></p>
+          <table>
+            <caption>ZooKeeper-based multiprocess example files and 
directories</caption>
+            <tr><th><em>multiprocess-zk-example</em> 
file/directory</th><th>Meaning</th></tr>
+            <tr><td><em>web</em></td><td>Web applications that should be 
deployed on tomcat or the equivalent, plus recommended application server -D 
switch names and values</td></tr>
+            <tr><td><em>processes</em></td><td>classpath jars that should be 
included in the class path for all non-connector-specific processes, along with 
-D switches, using the same convention as described for tomcat, above</td></tr>
+            <tr><td><em>properties.xml</em></td><td>an example ManifoldCF 
configuration file, in the right place for the multiprocess script to find 
it</td></tr>
+            <tr><td><em>properties-global.xml</em></td><td>an example 
ManifoldCF shared configuration file, in the right place for the 
setglobalproperties script to find it</td></tr>
+            <tr><td><em>logging.ini</em></td><td>an example ManifoldCF logging 
configuration file, in the right place for the properties.xml to find 
it</td></tr>
+            <tr><td><em>zookeeper</em></td><td>the example ZooKeeper storage 
directory, which must be writable in order for ZooKeeper to work</td></tr>
+            <tr><td><em>logs</em></td><td>where the ManifoldCF logs get 
written to</td></tr>
+            <tr><td><em>runzookeeper[.sh|.bat]</em></td><td>script to run a 
ZooKeeper server instance</td></tr>
+            <tr><td><em>setglobalproperties[.sh|.bat]</em></td><td>script to 
initialize ZooKeeper with properties from properties-global.xml</td></tr>
+            <tr><td><em>start-database[.sh|.bat]</em></td><td>script to start 
the HSQLDB database</td></tr>
+            <tr><td><em>initialize[.sh|.bat]</em></td><td>script to create the 
database instance, create all database tables, and register connectors</td></tr>
+            <tr><td><em>start-webapps[.sh|.bat]</em></td><td>script to start 
Jetty with the ManifoldCF web applications deployed</td></tr>
+            <tr><td><em>start-agents[.sh|.bat]</em></td><td>script to start 
the agents process</td></tr>
+            <tr><td><em>stop-agents[.sh|.bat]</em></td><td>script to stop a 
running agents process cleanly</td></tr>
+          </table>
+          <p></p>
+          <section>
+            <title>Initializing the database and running</title>
+            <p></p>
+            <p>If you run the ZooKeeper-based multiprocess example, then you 
must follow the following steps:</p>
+            <p></p>
+            <ol>
+              <li>Start ZooKeeper (using the <em>runzookeeper[.sh|.bat]</em> 
script)</li>
+              <li>Initialize the ManifoldCF shared configuration data (using 
<em>setglobalproperties[.sh|.bat]</em>)</li>
+              <li>Start the database (using 
<em>start-database[.sh|.bat]</em>)</li>
+              <li>Initialize the database (using 
<em>initialize[.sh|.bat]</em>)</li>
+              <li>Start the agents process (using 
<em>start-agents[.sh|.bat]</em></li>
+              <li>Start the web applications (using 
<em>start-webapps[.sh|.bat]</em></li>
+            </ol>
+            <p></p>
+          </section>
+
+        </section>
+
+        <section>
           <title>Command-driven multi-process model</title>
           <p></p>
           <p>The most generic way of deploying ManifoldCF involves calling 
ManifoldCF operations using scripts.  There are a number of java classes among 
the ManifoldCF classes
@@ -483,7 +529,7 @@ cd example
             MCF_HOME, which should point to ManifoldCF's home execution 
directory, where the <em>properties.xml</em> file is found.)</p>
             
           <p></p>
-          <p>The basic steps required to set up and run ManifoldCF in 
command-driven multi-process mode are as follows:</p>
+          <p>The basic steps required to set up and run ManifoldCF in 
command-driven file-based multi-process mode are as follows:</p>
           <p></p>
           <ul>
             <li>Install PostgreSQL or MySQL.  The PostgreSQL JDBC driver 
included with ManifoldCF is known to work with version 9.1, so that version is 
the currently recommended
@@ -575,8 +621,8 @@ cd example
               
<tr><td>org.apache.manifoldcf.authorities.SynchronizeAuthorities</td><td>None</td><td>Un-register
 all registered authority connector classes that can't be found</td></tr>
             </table>
             <p></p>
-            <p>Remember that you need to include all the jars under 
<em>multiprocess-example/processes/lib</em> in the classpath whenever you run 
one of these commands!
-                But, luckily, there are scripts which do this for you.  These 
can be found in 
<em>multiprocess-example/processes/executecommand[.sh,.bat]</em>.
+            <p>Remember that you need to include all the jars under 
<em>multiprocess-file-example/processes/lib</em> in the classpath whenever you 
run one of these commands!
+                But, luckily, there are scripts which do this for you.  These 
can be found in 
<em>multiprocess-file-example/processes/executecommand[.sh,.bat]</em>.
                 The scripts require some environment variables to be set, such 
as <em>MCF_HOME</em> and <em>JAVA_HOME</em>, and expect the configuration file 
to be
                 found at <em>MCF_HOME/properties.xml</em>.</p>
             <p></p>
@@ -629,8 +675,8 @@ cd example
         <p>&#60;outputconnector name="<em>pretty_name</em>" 
class="<em>connector_class</em>"/&#62;</p>
         <p></p>
         <p>The <em>connectors.xml</em> file typically has some connectors 
commented out - namely the ones build with stubs which require you to supply a
-          third-party library in order for the connector to run.  If you build 
ManifoldCF yourself, the <em>example-proprietary</em> and 
<em>multiprocess-example-proprietary</em>
-          directories instead use <em>connectors-proprietary.xml</em>.  The 
connectors you build against the proprietary libraries you supply will not have 
their
+          third-party library in order for the connector to run.  If you build 
ManifoldCF yourself, the <em>example-proprietary</em> and 
<em>multiprocess-file-example-proprietary</em>
+          and <em>multiprocess-zk-example-proprietary</em> directories instead 
use <em>connectors-proprietary.xml</em>.  The connectors you build against the 
proprietary libraries you supply will not have their
           <em>connectors-proprietary.xml</em> tags commented out.</p>
         <p></p>
       </section>
@@ -812,6 +858,9 @@ cd example
             
<tr><td>org.apache.manifoldcf.dbsuperusername</td><td>No</td><td>Database 
superuser name, for QuickStart, so ManifoldCF can create database 
instance.</td></tr>
             
<tr><td>org.apache.manifoldcf.dbsuperuserpassword</td><td>No</td><td>Database 
superuser password, for QuickStart, so ManifoldCF can create database 
instance.</td></tr>
             
<tr><td>org.apache.manifoldcf.ui.maxstatuscount</td><td>No</td><td>The maximum 
number of documents ManifoldCF will try to count for the job status display.  
Defaults to 500000.</td></tr>
+            
<tr><td>org.apache.manifoldcf.databaseimplementationclass</td><td>No</td><td>Specifies
 the class to use to implement database access.
+                Default is a built-in PostgreSQL implementation.  Supported 
choices are: org.apache.manifoldcf.core.database.DBInterfaceDerby,
+                org.apache.manifoldcf.core.database.DBInterfacePostgreSQL, 
org.apache.manifoldcf.core.database.DBInterfaceHSQLDB</td></tr>
             
<tr><td>org.apache.manifoldcf.postgresql.hostname</td><td>No</td><td>PostgreSQL 
server host name, or localhost if not specified.</td></tr>
             
<tr><td>org.apache.manifoldcf.postgresql.port</td><td>No</td><td>PostgreSQL 
server port, or standard port if not specified.</td></tr>
             
<tr><td>org.apache.manifoldcf.postgresql.ssl</td><td>No</td><td>Set to "true" 
for ssl communication with PostgreSQL.</td></tr>
@@ -822,9 +871,16 @@ cd example
             
<tr><td>org.apache.manifoldcf.hsqldbdatabaseport</td><td>No</td><td>The HSQLDB 
remote server port.</td></tr>
             
<tr><td>org.apache.manifoldcf.hsqldbdatabaseinstance</td><td>No</td><td>The 
HSQLDB remote database instance name.</td></tr>
             <tr><td>org.apache.manifoldcf.mysql.server</td><td>No</td><td>The 
MySQL server name.  Defaults to 'localhost'.</td></tr>
-            
<tr><td>org.apache.manifoldcf.lockmanagerclass</td><td>No</td><td>Specifies the 
class to use to implement synchronization.  Default is a built-in file-based 
synchronization class.</td></tr>
-            
<tr><td>org.apache.manifoldcf.databaseimplementationclass</td><td>No</td><td>Specifies
 the class to use to implement database access.  Default is a built-in 
PostgreSQL implementation.  Supported choices are: 
org.apache.manifoldcf.core.database.DBInterfaceDerby, 
org.apache.manifoldcf.core.database.DBInterfacePostgreSQL, 
org.apache.manifoldcf.core.database.DBInterfaceHSQLDB</td></tr>
-            <tr><td>org.apache.manifoldcf.synchdirectory</td><td>Yes, if 
file-based synchronization class is used</td><td>Specifies the path of a 
synchronization directory.  All ManifoldCF process owners <strong>must</strong> 
have read/write privileges to this directory.</td></tr>
+            
<tr><td>org.apache.manifoldcf.lockmanagerclass</td><td>No</td><td>Specifies the 
class to use to implement synchronization.  Default
+                is either file-based synchronization or in-memory 
synchronization, using the org.apache.manifoldcf.core.lockmanager.LockManager 
class.
+                Options include 
org.apache.manifoldcf.core.lockmanager.BaseLockManager, 
org.apache.manifoldcf.core.FileLockManager, and
+                
org.apache.manifoldcf.core.lockmanager.ZooKeeperLockManager.</td></tr>
+            <tr><td>org.apache.manifoldcf.synchdirectory</td><td>Yes, if 
file-based synchronization class is specified</td><td>Specifies the path of a
+                synchronization directory.  All ManifoldCF process owners 
<strong>must</strong> have read/write privileges to this directory.</td></tr>
+            <tr><td>org.apache.manifoldcf.zookeeper.connectstring</td><td>Yes, 
if ZooKeeper-based synchronization class is specified</td><td>Specifies the 
ZooKeeper
+                connection string, consisting of comma-separated hostname:port 
pairs.</td></tr>
+            
<tr><td>org.apache.manifoldcf.zookeeper.sessiontimeout</td><td>No</td><td>Specifies
 the ZooKeeper
+                session timeout, if ZooKeeperLockManager is specified.  
Defaults to 2000.</td></tr>
             
<tr><td>org.apache.manifoldcf.database.maxhandles</td><td>No</td><td>Specifies 
the maximum number of database connection handles that will by pooled.  
Recommended value is 200.</td></tr>
             
<tr><td>org.apache.manifoldcf.database.handletimeout</td><td>No</td><td>Specifies
 the maximum time a handle is to live before it is presumed dead.  Recommend a 
value of 604800, which is the maximum allowable.</td></tr>
             
<tr><td>org.apache.manifoldcf.database.connectiontracking</td><td>No</td><td>True
 or false.  When "true", will track all allocated database connection handles, 
and will dump an allocation stack trace when the pool is exhausted.  Useful for 
diagnosing connection leaks.</td></tr>

Modified: 
manifoldcf/trunk/site/src/documentation/content/xdocs/ja_JP/how-to-build-and-deploy.xml
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/site/src/documentation/content/xdocs/ja_JP/how-to-build-and-deploy.xml?rev=1541748&r1=1541747&r2=1541748&view=diff
==============================================================================
--- 
manifoldcf/trunk/site/src/documentation/content/xdocs/ja_JP/how-to-build-and-deploy.xml
 (original)
+++ 
manifoldcf/trunk/site/src/documentation/content/xdocs/ja_JP/how-to-build-and-deploy.xml
 Wed Nov 13 22:28:15 2013
@@ -322,8 +322,10 @@ mvn clean package
           <tr><td><em>script-engine</em></td><td>jars and scripts for running 
the ManifoldCF script interpreter</td></tr>
           <tr><td><em>example</em></td><td>a jetty-based example that runs in 
a single process (except for any connector-specific processes), excluding all 
proprietary libraries</td></tr>
           <tr><td><em>example-proprietary</em></td><td>a jetty-based example 
that runs in a single process (except for any connector-specific processes), 
including proprietary libraries; not included in binary release</td></tr>
-          <tr><td><em>multiprocess-example</em></td><td>scripts and jars for 
an example that uses the multiple process model, excluding all proprietary 
libraries</td></tr>
-          <tr><td><em>multiprocess-example-proprietary</em></td><td>scripts 
and jars for an example that uses the multiple process model, including 
proprietary libraries; not included in binary release</td></tr>
+          <tr><td><em>multiprocess-file-example</em></td><td>scripts and jars 
for an example that uses the multiple process model using file-based 
synchronization, excluding all proprietary libraries</td></tr>
+          
<tr><td><em>multiprocess-file-example-proprietary</em></td><td>scripts and jars 
for an example that uses the multiple process model using file-based 
synchronization, including proprietary libraries; not included in binary 
release</td></tr>
+          <tr><td><em>multiprocess-zk-example</em></td><td>scripts and jars 
for an example that uses the multiple process model using ZooKeeper-based 
synchronization, excluding all proprietary libraries</td></tr>
+          <tr><td><em>multiprocess-zk-example-proprietary</em></td><td>scripts 
and jars for an example that uses the multiple process model using 
ZooKeeper-based synchronization, including proprietary libraries; not included 
in binary release</td></tr>
           <tr><td><em>web</em></td><td>app-server deployable web applications 
(wars), excluding all proprietary libraries</td></tr>
           <tr><td><em>web-proprietary</em></td><td>app-server deployable web 
applications (wars), including proprietary libraries; not included in binary 
release</td></tr>
           <tr><td><em>doc</em></td><td>javadocs for framework and all included 
connectors</td></tr>
@@ -422,15 +424,15 @@ cd example
         </section>
 
         <section>
-          <title>Simplified multi-process model</title>
+          <title>Simplified multi-process model using file-based 
synchronization</title>
           <p></p>
-          <p>ManifoldCF can also be deployed in a simplified multi-process 
model.  Inside the <em>multiprocess-example</em> directory, you will find 
everything you need to do this.  (The
-              <em>multiprocess-example-proprietary</em> directory is similar 
but includes proprietary material and is available only if you build ManifoldCF 
yourself.)  Below is a list of
+          <p>ManifoldCF can also be deployed in a simplified multi-process 
model which uses files to synchronize processes.  Inside the 
<em>multiprocess-file-example</em> directory, you will find everything you need 
to do this.  (The
+              <em>multiprocess-file-example-proprietary</em> directory is 
similar but includes proprietary material and is available only if you build 
ManifoldCF yourself.)  Below is a list of
               what you will find in this directory.</p>
           <p></p>
           <table>
-            <caption>Multiprocess example files and directories</caption>
-            <tr><th><em>multiprocess-example</em> 
file/directory</th><th>Meaning</th></tr>
+            <caption>File-based multiprocess example files and 
directories</caption>
+            <tr><th><em>multiprocess-file-example</em> 
file/directory</th><th>Meaning</th></tr>
             <tr><td><em>web</em></td><td>Web applications that should be 
deployed on tomcat or the equivalent, plus recommended application server -D 
switch names and values</td></tr>
             <tr><td><em>processes</em></td><td>classpath jars that should be 
included in the class path for all non-connector-specific processes, along with 
-D switches, using the same convention as described for tomcat, above</td></tr>
             <tr><td><em>properties.xml</em></td><td>an example ManifoldCF 
configuration file, in the right place for the multiprocess script to find 
it</td></tr>
@@ -448,7 +450,7 @@ cd example
           <section>
             <title>Initializing the database and running</title>
             <p></p>
-            <p>If you run the multiprocess model, after you first start the 
database (using <em>start-database[.sh|.bat]</em>), you will need to initialize 
the database before you start the agents process or use the crawler UI.  To do 
this, all you need to do is
+            <p>If you run the file-based multiprocess model, after you first 
start the database (using <em>start-database[.sh|.bat]</em>), you will need to 
initialize the database before you start the agents process or use the crawler 
UI.  To do this, all you need to do is
                 run the <em>initialize[.sh|.bat]</em> script.  Then, you will 
need to start the web applications (using <em>start-webapps[.sh|.bat]</em>) and 
the agents process (using
                 <em>start-agents[.sh|.bat]</em>).</p>
             <p></p>
@@ -457,6 +459,50 @@ cd example
         </section>
 
         <section>
+          <title>Simplified multi-process model using ZooKeeper-based 
synchronization</title>
+          <p></p>
+          <p>ManifoldCF can be deployed in a simplified multi-process model 
which uses Apache ZooKeeper to synchronize processes.  Inside the 
<em>multiprocess-kz-example</em> directory, you will find everything you need 
to do this.  (The
+              <em>multiprocess-zk-example-proprietary</em> directory is 
similar but includes proprietary material and is available only if you build 
ManifoldCF yourself.)  Below is a list of
+              what you will find in this directory.</p>
+          <p></p>
+          <table>
+            <caption>ZooKeeper-based multiprocess example files and 
directories</caption>
+            <tr><th><em>multiprocess-zk-example</em> 
file/directory</th><th>Meaning</th></tr>
+            <tr><td><em>web</em></td><td>Web applications that should be 
deployed on tomcat or the equivalent, plus recommended application server -D 
switch names and values</td></tr>
+            <tr><td><em>processes</em></td><td>classpath jars that should be 
included in the class path for all non-connector-specific processes, along with 
-D switches, using the same convention as described for tomcat, above</td></tr>
+            <tr><td><em>properties.xml</em></td><td>an example ManifoldCF 
configuration file, in the right place for the multiprocess script to find 
it</td></tr>
+            <tr><td><em>properties-global.xml</em></td><td>an example 
ManifoldCF shared configuration file, in the right place for the 
setglobalproperties script to find it</td></tr>
+            <tr><td><em>logging.ini</em></td><td>an example ManifoldCF logging 
configuration file, in the right place for the properties.xml to find 
it</td></tr>
+            <tr><td><em>zookeeper</em></td><td>the example ZooKeeper storage 
directory, which must be writable in order for ZooKeeper to work</td></tr>
+            <tr><td><em>logs</em></td><td>where the ManifoldCF logs get 
written to</td></tr>
+            <tr><td><em>runzookeeper[.sh|.bat]</em></td><td>script to run a 
ZooKeeper server instance</td></tr>
+            <tr><td><em>setglobalproperties[.sh|.bat]</em></td><td>script to 
initialize ZooKeeper with properties from properties-global.xml</td></tr>
+            <tr><td><em>start-database[.sh|.bat]</em></td><td>script to start 
the HSQLDB database</td></tr>
+            <tr><td><em>initialize[.sh|.bat]</em></td><td>script to create the 
database instance, create all database tables, and register connectors</td></tr>
+            <tr><td><em>start-webapps[.sh|.bat]</em></td><td>script to start 
Jetty with the ManifoldCF web applications deployed</td></tr>
+            <tr><td><em>start-agents[.sh|.bat]</em></td><td>script to start 
the agents process</td></tr>
+            <tr><td><em>stop-agents[.sh|.bat]</em></td><td>script to stop a 
running agents process cleanly</td></tr>
+          </table>
+          <p></p>
+          <section>
+            <title>Initializing the database and running</title>
+            <p></p>
+            <p>If you run the ZooKeeper-based multiprocess example, then you 
must follow the following steps:</p>
+            <p></p>
+            <ol>
+              <li>Start ZooKeeper (using the <em>runzookeeper[.sh|.bat]</em> 
script)</li>
+              <li>Initialize the ManifoldCF shared configuration data (using 
<em>setglobalproperties[.sh|.bat]</em>)</li>
+              <li>Start the database (using 
<em>start-database[.sh|.bat]</em>)</li>
+              <li>Initialize the database (using 
<em>initialize[.sh|.bat]</em>)</li>
+              <li>Start the agents process (using 
<em>start-agents[.sh|.bat]</em></li>
+              <li>Start the web applications (using 
<em>start-webapps[.sh|.bat]</em></li>
+            </ol>
+            <p></p>
+          </section>
+
+        </section>
+
+        <section>
           <title>Command-driven multi-process model</title>
           <p></p>
           <p>The most generic way of deploying ManifoldCF involves calling 
ManifoldCF operations using scripts.  There are a number of java classes among 
the ManifoldCF classes
@@ -483,7 +529,7 @@ cd example
             MCF_HOME, which should point to ManifoldCF's home execution 
directory, where the <em>properties.xml</em> file is found.)</p>
             
           <p></p>
-          <p>The basic steps required to set up and run ManifoldCF in 
command-driven multi-process mode are as follows:</p>
+          <p>The basic steps required to set up and run ManifoldCF in 
command-driven file-based multi-process mode are as follows:</p>
           <p></p>
           <ul>
             <li>Install PostgreSQL or MySQL.  The PostgreSQL JDBC driver 
included with ManifoldCF is known to work with version 9.1, so that version is 
the currently recommended
@@ -575,8 +621,8 @@ cd example
               
<tr><td>org.apache.manifoldcf.authorities.SynchronizeAuthorities</td><td>None</td><td>Un-register
 all registered authority connector classes that can't be found</td></tr>
             </table>
             <p></p>
-            <p>Remember that you need to include all the jars under 
<em>multiprocess-example/processes/lib</em> in the classpath whenever you run 
one of these commands!
-                But, luckily, there are scripts which do this for you.  These 
can be found in 
<em>multiprocess-example/processes/executecommand[.sh,.bat]</em>.
+            <p>Remember that you need to include all the jars under 
<em>multiprocess-file-example/processes/lib</em> in the classpath whenever you 
run one of these commands!
+                But, luckily, there are scripts which do this for you.  These 
can be found in 
<em>multiprocess-file-example/processes/executecommand[.sh,.bat]</em>.
                 The scripts require some environment variables to be set, such 
as <em>MCF_HOME</em> and <em>JAVA_HOME</em>, and expect the configuration file 
to be
                 found at <em>MCF_HOME/properties.xml</em>.</p>
             <p></p>
@@ -629,8 +675,8 @@ cd example
         <p>&#60;outputconnector name="<em>pretty_name</em>" 
class="<em>connector_class</em>"/&#62;</p>
         <p></p>
         <p>The <em>connectors.xml</em> file typically has some connectors 
commented out - namely the ones build with stubs which require you to supply a
-          third-party library in order for the connector to run.  If you build 
ManifoldCF yourself, the <em>example-proprietary</em> and 
<em>multiprocess-example-proprietary</em>
-          directories instead use <em>connectors-proprietary.xml</em>.  The 
connectors you build against the proprietary libraries you supply will not have 
their
+          third-party library in order for the connector to run.  If you build 
ManifoldCF yourself, the <em>example-proprietary</em> and 
<em>multiprocess-file-example-proprietary</em>
+          and <em>multiprocess-zk-example-proprietary</em> directories instead 
use <em>connectors-proprietary.xml</em>.  The connectors you build against the 
proprietary libraries you supply will not have their
           <em>connectors-proprietary.xml</em> tags commented out.</p>
         <p></p>
       </section>
@@ -812,6 +858,9 @@ cd example
             
<tr><td>org.apache.manifoldcf.dbsuperusername</td><td>No</td><td>Database 
superuser name, for QuickStart, so ManifoldCF can create database 
instance.</td></tr>
             
<tr><td>org.apache.manifoldcf.dbsuperuserpassword</td><td>No</td><td>Database 
superuser password, for QuickStart, so ManifoldCF can create database 
instance.</td></tr>
             
<tr><td>org.apache.manifoldcf.ui.maxstatuscount</td><td>No</td><td>The maximum 
number of documents ManifoldCF will try to count for the job status display.  
Defaults to 500000.</td></tr>
+            
<tr><td>org.apache.manifoldcf.databaseimplementationclass</td><td>No</td><td>Specifies
 the class to use to implement database access.
+                Default is a built-in PostgreSQL implementation.  Supported 
choices are: org.apache.manifoldcf.core.database.DBInterfaceDerby,
+                org.apache.manifoldcf.core.database.DBInterfacePostgreSQL, 
org.apache.manifoldcf.core.database.DBInterfaceHSQLDB</td></tr>
             
<tr><td>org.apache.manifoldcf.postgresql.hostname</td><td>No</td><td>PostgreSQL 
server host name, or localhost if not specified.</td></tr>
             
<tr><td>org.apache.manifoldcf.postgresql.port</td><td>No</td><td>PostgreSQL 
server port, or standard port if not specified.</td></tr>
             
<tr><td>org.apache.manifoldcf.postgresql.ssl</td><td>No</td><td>Set to "true" 
for ssl communication with PostgreSQL.</td></tr>
@@ -822,9 +871,16 @@ cd example
             
<tr><td>org.apache.manifoldcf.hsqldbdatabaseport</td><td>No</td><td>The HSQLDB 
remote server port.</td></tr>
             
<tr><td>org.apache.manifoldcf.hsqldbdatabaseinstance</td><td>No</td><td>The 
HSQLDB remote database instance name.</td></tr>
             <tr><td>org.apache.manifoldcf.mysql.server</td><td>No</td><td>The 
MySQL server name.  Defaults to 'localhost'.</td></tr>
-            
<tr><td>org.apache.manifoldcf.lockmanagerclass</td><td>No</td><td>Specifies the 
class to use to implement synchronization.  Default is a built-in file-based 
synchronization class.</td></tr>
-            
<tr><td>org.apache.manifoldcf.databaseimplementationclass</td><td>No</td><td>Specifies
 the class to use to implement database access.  Default is a built-in 
PostgreSQL implementation.  Supported choices are: 
org.apache.manifoldcf.core.database.DBInterfaceDerby, 
org.apache.manifoldcf.core.database.DBInterfacePostgreSQL, 
org.apache.manifoldcf.core.database.DBInterfaceHSQLDB</td></tr>
-            <tr><td>org.apache.manifoldcf.synchdirectory</td><td>Yes, if 
file-based synchronization class is used</td><td>Specifies the path of a 
synchronization directory.  All ManifoldCF process owners <strong>must</strong> 
have read/write privileges to this directory.</td></tr>
+            
<tr><td>org.apache.manifoldcf.lockmanagerclass</td><td>No</td><td>Specifies the 
class to use to implement synchronization.  Default
+                is either file-based synchronization or in-memory 
synchronization, using the org.apache.manifoldcf.core.lockmanager.LockManager 
class.
+                Options include 
org.apache.manifoldcf.core.lockmanager.BaseLockManager, 
org.apache.manifoldcf.core.FileLockManager, and
+                
org.apache.manifoldcf.core.lockmanager.ZooKeeperLockManager.</td></tr>
+            <tr><td>org.apache.manifoldcf.synchdirectory</td><td>Yes, if 
file-based synchronization class is specified</td><td>Specifies the path of a
+                synchronization directory.  All ManifoldCF process owners 
<strong>must</strong> have read/write privileges to this directory.</td></tr>
+            <tr><td>org.apache.manifoldcf.zookeeper.connectstring</td><td>Yes, 
if ZooKeeper-based synchronization class is specified</td><td>Specifies the 
ZooKeeper
+                connection string, consisting of comma-separated hostname:port 
pairs.</td></tr>
+            
<tr><td>org.apache.manifoldcf.zookeeper.sessiontimeout</td><td>No</td><td>Specifies
 the ZooKeeper
+                session timeout, if ZooKeeperLockManager is specified.  
Defaults to 2000.</td></tr>
             
<tr><td>org.apache.manifoldcf.database.maxhandles</td><td>No</td><td>Specifies 
the maximum number of database connection handles that will by pooled.  
Recommended value is 200.</td></tr>
             
<tr><td>org.apache.manifoldcf.database.handletimeout</td><td>No</td><td>Specifies
 the maximum time a handle is to live before it is presumed dead.  Recommend a 
value of 604800, which is the maximum allowable.</td></tr>
             
<tr><td>org.apache.manifoldcf.database.connectiontracking</td><td>No</td><td>True
 or false.  When "true", will track all allocated database connection handles, 
and will dump an allocation stack trace when the pool is exhausted.  Useful for 
diagnosing connection leaks.</td></tr>


Reply via email to