You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Archiva on WebSphere

The instructions here cover how to install Apache Archiva into WebSphere 6.1 on AIX V5.3 using DB2 as the backend.

These scripts make heavy use of 'wsadminlib.py', a large monolithic jython library for WebSphere Administration.
The original scripts can be found here Sample Scripts for WebSphere Application Server.
The 'wsadminlib.py' file that is included here has been modified to include some extra functions that were not present in the original.

Archiva on AIX

My personal preference is to have a separate Logical Volume and File System for each major component. For example, one for Archiva, one for WebSphere, one for DB2 and so on, and have them mounted on the root. This is just my personal preference, your milage may vary, so please feel free to modify as necessary.

A sample script that creates the Logical Volume and File System is shown below. It creates the Logical Volume in a Volume Group called 'datavg'. You may wish to edit this as necessary. You will need to be the root user to execute them.

#!/bin/ksh

##################################################
# name:    create-archiva.sh
# purpose: Script that will create the Archiva
#          logical volume and file system.
##################################################

mklv -y'lv-arch' -t'jfs2' datavg 8

crfs -v'jfs2' -d'lv-arch' -m'/archiva' -A'yes' -p'rw'

mount /archiva

df -m

chmod g+s /archiva

And here is the corresponding script to remove it.

#!/bin/ksh

##################################################
# name:    clean-archiva.sh
# purpose: Script that will remove the Archiva 
#          logical volume and file system.
##################################################

umount /archiva

rmlv -f lv-arch

rmfs -r /archiva

df -m

Archiva on DB2

Archiva has been used with DB2 V8.2, V9.5 and V9.7.

Archiva's reporting functions require some large tables (in terms of the size of an individual row) to be created. In DB2, these rows/table definitions must fit within a Page. The default page size for DB2 is 4K. I've found that a 32K page size is required for Archiva V1.3. If you do not have a DB2 database with a 32K page size available, you will need to create one. Here is a sample script to create one:

-- create-archiva.sql
-- SQL script to create database: ARCHIVA
-- It is created in /db2/production/archiva
-- Need to:
--      mkdir /db2/production/archiva
-- first...
  CREATE DB ARCHIVA
         ON        /db2/production/archiva
         USING     CODESET UTF8 TERRITORY 'AUS'
         PAGESIZE  32768
         DFT_EXTENT_SZ 32
         CATALOG   TABLESPACE MANAGED BY SYSTEM
                   USING ('/db2/production/archiva/SYSCATSPACE')
                   EXTENTSIZE 32 PREFETCHSIZE 32
         USER      TABLESPACE MANAGED BY SYSTEM
                   USING ('/db2/production/archiva/USERSPACE1')
                   EXTENTSIZE 32 PREFETCHSIZE 32
         TEMPORARY TABLESPACE MANAGED BY SYSTEM
                   USING ('/db2/production/archiva/TEMPSPACE1')
                   EXTENTSIZE 32 PREFETCHSIZE 128 ;

Execution of the script is easy enough. Log on as a DB2 administrator and execute:

db2 -tvf create-archiva.sql

Archiva on WebSphere 6.1

Creating and installing Archiva is a now a simple matter of executing the supplied scripts. You will probably need to edit them just to set the appropriate Cell and Node settings. Generally, the variables that need editing are at the top of the scripts.

There are four script files that have been provided.

  • createArchivaServer.py
  • deleteArchivaServer.py
  • installArchiva.py
  • wsadminlib.py

They are executed using the wsadmin.sh tool:

/was61/WebSphere/AppServer/bin/wsadmin.sh -lang jython -f <<<script file>>>

Attachements

Notes

This is simply how I do it. It does require additional machine resources, as it takes a complete JVM, but I prefer to create a server per application which provides for better application isolation and tuning capabilities.

Archiva works fine with the default settings of "Multiple Classloaders" and either "Parent First" or "Parent Last". Do you do not need to set up a Custom Classloader to cater for the additional jars that Tomcat is missing.

The one major issue that I had was, that no matter what, I could not get Archiva to work with the supplied Apache Derby database - nor could I get it to use a different one (I was not going to update the WebSphere supplied ones directly). So, in the end I used a DB2 database. I've used both a shared DB2 database (used by other apps) and a single database just for Archiva.

This was tested on WAS 6.1.0.15 under AIX 5.3 TL6 (and WAS 6.1.0.19 and AIX 5.3 TL8, 10 and 11).

  • No labels