Ozibug - web based bug tracking


  1. Introduction
  2. Install Ozibug Instances
  3. Configure Tomcat
  4. Customize Ozibug Instances
  5. Start Tomcat
  6. Tips & Tricks
Back to index
 
Ozibug is a standard java 2.2 servlet which can be run under different contexts (a context is the first part of the path which identifies the servlet.) This howto demonstrates how to run multiple instances of the Ozibug application.
Note: there are not many cases where you would need (or want) to do this, because you can control data separation from within a single Ozibug instance using the access control features. However this document also demonstrates the configurability of the Ozibug and is useful for this purpose alone.
Jakarta Tomcat will be used as the Web Container in the examples. It is assumed that this will be installed in a directory referred to by the TOMCAT_HOME variable. It is also assumed that a suitable JDK is installed in the directory referred to by the JAVA_HOME variable. We will install two Ozibug instances for imaginary products called efish and echips.
Note: you will require a multi-instance license to run more than one instance of the Ozibug servlet within a Web Container. Contact info@ozibug.com for further information on licensing.
 
Back to top
 

First of all we must create the servlet directories. Then we unzip the Ozibug distribution into each directory and install the correct license.

This is shown in the following example.

  $ mkdir -p /opt/webapps/efish
  $ cd /opt/webapps/efish
  $ unzip /tmp/ozibug-1.1.0.war
  $ cp /tmp/eFish_License.ser WEB-INF/License.ser

  $ mkdir -p /opt/webapps/echips
  $ cd /opt/webapps/echips
  $ unzip /tmp/ozibug-1.1.0.war
  $ cp /tmp/eChips_License.ser WEB-INF/License.ser
                      
Back to top
 

Now we must configure Tomcat for the location of the two servlet instances. Add the following section of XML to the TOMCAT_HOME/conf/server.xml file. These sections should be contained within the already existing <ContextManager> </ContextManager> section.

  ...

  <Context path="/efish" 
           docBase="/opt/webapps/efish" 
           crossContext="false"
           debug="0" 
           reloadable="false">
  </Context>

  <Context path="/echips" 
           docBase="/opt/webapps/echips" 
           crossContext="false"
           debug="0" 
           reloadable="false">
  </Context>

  ...

 </ContextManager>

                      
Back to top
 

So far we have configured two instances of Ozibug but apart from having different contexts (efish & echips) they are still identical. This might cause some confusion to any users or administrators that have to use both systems.

There are two simple customizations that will help to differentiate between the instances. The system name as well as the header & body images can be changed to reflect the ownership and/or purpose of the Ozibug instance. Refer to User Interface Configuration Howto: System Name and User Interface Configuration Howto: Images for details on how to change these attributes.

Back to top
 

With everything configured its now time to start Tomcat and test the installation.

  $ TOMCAT_HOME="/opt/pkg/jakarta-tomcat"
  $ JAVA_HOME="/opt/pkg/jdk"
  $ export TOMCAT_HOME JAVA_HOME
  $ cd "${TOMCAT_HOME}/bin"
  $ ./tomcat.sh start
                      

Now you can test the installation by starting a web browser and accessing the following URLS.

  http://localhost:8080/efish/index.html
 
  http://localhost:8080/echips/index.html

 
Back to top
 

If you are adding the same users to each of the instances then the following shortcut will save time.

  1. Start Tomcat
  2. Login as administrator to Ozibug instance 1
  3. Add all the users that will appear in both instances
  4. Stop Tomcat
  5. Ozibug version 1.X - copy INSTANCE_1/WEB-INF/users.xml to the second instance
  6. Ozibug version 2.X - copy INSTANCE_1/WEB-INF/users/* to the second instance
  7. copy INSTANCE_1/WEB-INF/preferences/* to the second instance
  8. Start Tomcat

The following commands show how to copy these files with the efish and echips example we have been working with.

  $ cd /opt/webapps/efish/WEB-INF
  $ cp users/* /opt/webapps/echips/WEB-INF/users
  $ cp preferences/* /opt/webapps/echips/preferences
                      
Back to top
 
Back to index