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.
Note |
---|
These scripts make heavy use of 'wsadminlib.py', a large monolithic jython library for WebSphere Administration. |
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.
No Format |
---|
#!/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.
No Format |
---|
#!/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 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:
No Format |
---|
-- 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:
No Format |
---|
db2 -tvf create-archiva.sql |
Three additional scripts, reorg-archiva.sh, runstats-archiva.sh and count-archiva.sql have also been provided to assist in normal DBA work.
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:
No Format |
---|
/was61/WebSphere/AppServer/bin/wsadmin.sh -lang jython -f <<<script file>>> |
Attachments
- create-archiva.sh - A shell script to create the Archiva Logical Volume and File System.
- clean-archiva.sh - A shell script to remove the Logical Volume and File System.
- create-archiva.sql - A DB2 SQL file to create a DB2 database with the necessary page size.
- createArchivaServer.py - wsadmin script to create the Archiva Server.
- deleteArchivaServer.py - wsadmin script to delete the Archiva Server.
- installArchiva.py - wsadmin script to install the Archiva Application into the Archiva Server.
- wsadminlib.py - The wsadmin Über library.
- reorg-archiva.sh - DB2 reorg script for the Archiva DB.
- runstats-archiva.sh - DB2 runstats script for the Archiva DB.
- count-archiva.sql - DB2 sql script to count all of the records in the Archiva schema/database.
Additional Setup
The indexing of files can take a large number of files. I have set the number of files for the user to 20,000 (as 10,000 was not enough). Edit /etc/security/limits to change this value.
Please remember that a 64-bit JVM takes about 60% more heap space than a 32-bit JVM does. Size your VM, if using 64-bit, accordingly. I'm using 1Gb (-Xmx1024M) heap, as 512Mb was causing regular heap dumps due to out of memory errors.
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).