Multiple DLXS Releases

Introduction

There are times when you might want to have two different releases of DLXS Middleware running at the same time.

Whether you need multiple installations will depend a lot on how you manage you DLXS site locally.  These are all considerations in how to install and configure multiple releases of DLXS.  

How to install and configure two DLXS releases

Two DLXSROOT values and two databases

The basic idea is to install the new release into a separate directory not within the directory of the earlier release.   When the installer program (Installer.pl) prompts you for your DLXSROOT, give it the new directory you want to create to hold the new DLXS release.

When the installer prompts you for the database type your answer will depend on whether you want to use the CSV database files that live in the install tree for each release or MySQL.

It is not necessary to have separate CSV session file locations (e.g. /tmp/sessions, /tmp/sessionslock) or a separate MySQL sessions  table for each of the two different DLXS releases. Note that sessions created by different releases of DLXS are not compatible.  This is not generally a problem if you expire sessions regularly.

Separate Virtual Hosts

Next, configure another virtual host under your web server and set DLXSROOT for that virtual host to point to the directory containing the new release.   Recall what a virtual host configuration looks like.

For example, suppose you have DLXS release 10 installed under /usr/local/dlxs10 and you choose to install DLXS release 11 under /usr/local/dlxs11. You would have the release 10 virtual host (already) configured with:

  SetEnv DLXSROOT       /usr/local/dlxs10
 DocumentRoot          /usr/local/dlxs10/web
 ScriptAlias   /cgi/   /usr/local/dlxs10/cgi/

and you would configure the release 11 virtual host with:

 SetEnv DLXSROOT       /usr/local/dlxs11
 DocumentRoot          /usr/local/dlxs11/web
 ScriptAlias   /cgi/   /usr/local/dlxs11/cgi/

So for release 10 your URL might be:

    diglib10.somewhere.edu/cgi/t/text/text-idx


and your release 11 virtual host might be:

    diglib11.somewhere.edu/cgi/t/text/text-idx
   
where each URL would run middleware from a different install tree, i.e. a different DLXSROOT.

How to point two different DLXS releases at the same data

Data (SGML/XML, image files) and XPAT indexes occupy a lot of disk space.  DLXS middleware recognizes the DLXSDATAROOT environment variable so that a given release can point to the data/index/image directories (under obj, idx,img) outside of its own install tree.  

If the virtual host for a given DLXS release defines DLXSDATAROOT, that value is used as the path prefix for the obj, idx,img directories.  If not, the DLXSROOT value is used for the path prefix.

In the earlier example, in the virtual host for release 11, you could set DLXSDATAROOT to /usr/local/dlxs10 to have release 11 read data from the release 10 install tree.

This scenario requires that the release 10 data be forward compatible with release 11.  (More on this when we talk about data preparation for TextClass).  If forward compatibility is a problem, the data could be moved to the release 11 tree and pointed to from the release 10 middleware. Then the data could be migrated gradually to work with 11 in a manner that was backward compatible with 10.

There are other possibilities for using DLXSDATAROOT.  For example, you could configure more than one virtual host for the same release.  One virtual host could use DLXSDATAROOT to point outside its tree while another points at data within its own tree etc.

Another scenario might be to have your data in a single location entirely outside all install trees and use DLXSDATAROOT in every virtual host to point at that single location.