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><outputconnector name="<em>pretty_name</em>"
class="<em>connector_class</em>"/></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><outputconnector name="<em>pretty_name</em>"
class="<em>connector_class</em>"/></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>