Opinio supports clustering, which means you can run multiple instances
of Opinio, and run them as one single coherent application. The advantages
to this is clear: You can obtain much higher scalability with smaller servers,
and improve availability (if one server goes down, Opinio is still up and running).
To run Opinio in clustering mode, there are certain requirements:
- The application server that Opinio runs on (Tomcat, WebLogic, WebSphere, etc..)
must support session replication. Tomcat 5.0 and newer supports this.
- You need a license key for each cluster member (Opinio installation) with
clustering enabled. This can be purchased at
http://www.objectplanet.com/Opinio
- A load balancer is needed to distribute load between the
cluster members. A load balancer that is session-aware is preferred. This means
that a user will be routed to the same cluster member on each request
for the duration of the session (provided this particular member is
up and running the whole time). This will ease the communication
between the cluster members, because less information must be communicated.
Follow these steps for installing Opinio with clustering support:
-
Install a web server that supports Session replication for
each cluster member (each computer that will be running Opinio).
-
Make sure that all web servers in the cluster are within the same network
and accept UDP and TCP packets from each other. If communication is restricted,
cluster members may end up unsynchronized
-
Configure the web server for clustering support. This might differ for
the individual servers. If running Tomcat, it is recommended to make a small
change in tomcat's server.xml in addition to the common clustering setup. The
<useDirtyFlag> attribute within the <Cluster> tag should
be set to false to make sure that session is replicated at all times.
-
Uncomment the tag <distributable/> in web.xml deployment descriptor
for each Opinio insallation.
-
Install/prepare a database for Opinio. The database
system should be a scalable and reliable database system. All
cluster members will connect to this database, so it should
be able to handle all this traffic. The database can quickly
become the bottleneck, unless it is running on a powerful server.
Some databases support clustering (Oracle, for example). Please
note that clustering setup for the database is completely unrelated
to the clustering of Opinio.
-
Synchronize the date and time on all cluster members. The
time on all systems should be within 5 seconds of each other.
It is possible to use Internet time servers to adjust
the time automatically, and keep them synchronized
(time.nist.gov for example).
-
Install Opinio on all cluster members. For instructions
to install Opinio on a single system,
see Installation.
- Get license keys for all cluster members. Contact
ObjectPlanet at:
http://support.objectplanet.com/esupport/.
To get a license key, you will need the Host id from each
Opinio installation. Get the host id by going to each
installation directly (not through the load balancer), and
click on "setup".
-
Set the load balancer's base address (so that Opinio knows
how to produce the Survey URLs etc.). Login to Opinio (any of the
Opinio installations), and click on "setup".
-
Restart all cluster members. Start one system first, and wait for
at least 3 minutes to start the remaining members.
This is to make sure database upgrades will
be performed properly. Opinio will always check the database and
upgrade it automatically if needed. Only one Opinio installation
should be performing this task at any time. It is not necessary to
start one cluster member alone initially every time the cluster is
restarted. Only after an Opinio upgrade will this be necessary.
-
When a new cluster member is added (or restarted), it tries to download the
uploaded files not existing locally from other cluster members. This will cause
a lot of traffic if the amount of files are large, hence it is recommended to
copy the upload folder from an existing cluster member to the new cluster member.
This might not be necessary if a cluster member has been down only for a small period
of time, and the amount of new uploaded files are insignificant.