Forum OpenACS Development: .apm-packages xotcl-core and xotcl-request manager

Collapse
Posted by Gustaf Neumann on
Hi folks,

Here are two .apm files for OpenACS
together with a patch to make the api-browser
xotcl-aware. I have tested it with a fresh
version of OpenACS 5.1.4, we have tested it with
dotlrn in our tailored configuration in learn@wu,
Orzenil got it runnig with dotlrn, neophythos uses
it with openacs. The biggest obstacles are now
howfully gone, interested people might try it.

If you have some earlier versions installed on
your system, please remove the *.xotcl files from
the aolserver/modules/tcl directory.

best regards
-gustaf neumann

PS: The how-to documentation below was written
mostly by Orzenil and explains the installation
from scratch.
===================================================
XOTcl Core 0.6

XOTcl-Core is a component containing core functionality for OpenACS
applications using XOTcl. It includes support for thread handling
(persistent and volatile threads) and provides an interface for
documenting XOTcl objects, classes and methods integrated with the
api-browser of OpenACS (supporting an XOTcl version of ad_proc for
object and class methods). The package provides as well an XOTcl
Object and Class browser.

XOTcl Request Monitor 0.10

This package contains a request monitor for OpenACS applications. It
computes performance summary information such as requests/views per
seconds, average response time, number of users connected,
etc. Furthermore it can block overactive users (e.g. automated
web-bots mirroring the site). It provides as well some user tracking
(such as whos-online) with activity measures, it tracks switching of
IP-addresses from users and provides request tracking per user for the
monitored time window. It contains as well overall url statistics with
performance measures. This package depends on XOTcl-Core.

INSTALLATION:

1. Install Thread Extension:

First of all, get tread2.6.1. There is a small bug in thread2.6.0
since it does not use the definitions from aolserver.m4 (see
Changelog for thread2.6.1 in
http://cvs.sourceforge.net/viewcvs.py/tcl/thread/ChangeLog?rev=1.144&only_with_tag=thread-2-6-1&view=markup).

a) download thread2.6.1 from http

http://sourceforge.net/project/showfiles.php?group_id=10894&package_id=10438&release_id=294044

from cvs

# cvs -z3 -d:pserver:mailto:anonymous@cvs.sourceforge.net:/cvsroot/tcl co -r thread-2-6-1 thread

untar it and go to you platform specific dir

Build for unix-like systems:

# cd unix
# ../configure --enable-threads \
--prefix=/usr/local/aolserver \
--exec-prefix=/usr/local/aolserver \
--with-aolserver=/usr/local/aolserver

use --prefix --exec-prefix --with-aolserver with path for
aolserver4 installed dir.
If you're using aolserver4 and tcl8.4 binaries from debian try this:
install aolserver4-dev:

#apt-get install aolserver4-dev

create symlink to includes:
# ln -s /usr/include/aolserver4 /usr/lib/aolserver4/include
use instead:

# ../configure --enable-threads \
--prefix=/usr/lib/aolserver4 \
--exec-prefix=/usr/lib/aolserver4 \
--with-aolserver=/usr/lib/aolserver4 \
--with-tcl=/usr/lib/tcl8.4

# make

check in output if there is following definition: -DNS_AOLSERVER=1

# make install

that's all. You should now have installed libthread2.6.1.so (check
for $aolserverdir/lib/thread2.6.1/libthread2.6.1.so)


b) adjusting config.tcl for libthread service

b1) open config.tcl (/var/lib/aolserver/${yourservice}/etc/config.tcl)
b2) look for modules section: ns_section ns/server/${server}/modules
b3) add libthread to modules section:

ns_param libthread ${homedir}/lib/thread2.6.1/libthread2.6.1.so

b4) restart the aolserver and check the error log, whether
libthread2.6.1 was loaded successfully

2. Get and install XOTcl:

a) Get xotcl from http://www.xotcl.org

The current version of XOTcl is 1.3.5. XOTcl (pronounced
exotickle) is a highly flexible objected oriented extension for
Tcl, which is now included in the major Tcl distributions
(ActiveTcl and Mac OSX Aqua). Read about XOTcl motivations and
feature from http://media.wu-wien.ac.at/whatIsXOTcl.html)

b) Install XOTcl:
Installing xotcl1.3.5 from source:

# wget http://media.wu-wien.ac.at/download/xotcl-1.3.5.tar.gz

The following commands can be used to compile XOTcl and install
it into the appropriate places of the specified aolserver:

# cd xotcl-1.3.5
# CC=gcc;export CC ./configure --enable-threads --enable-symbols \
--prefix=/usr/local/aolserver \
--with-tcl=/usr/src/tcl8.4.5/unix

Use appropriate paths for aolserver4 and your tcl version. If
you are running aolserver4 and tcl8.4 from debian binaries do
instead:

# CC=gcc; export CC ./configure --enable-threads \
--enable-symbols \
--prefix=/usr/lib/aolserver4 \
--with-tcl=/usr/lib/tcl8.4

# make
# make install-aol

After the "make install-aol" from the xotcl sources, a file
xotcl.tcl is installed that handles .xotcl files and XOTcl
serialization in the aolserver in the
${aolserverdir}/modules/tcl/ directory.

c) Restart your aolserver to load xotcl.

3. Install OpenACS-packages:

a) Get xotcl-core-0.6 and xotcl-request-monitor-0.10

# cd /var/tmp
# wget http://media.wu-wien.ac.at/download/xotcl-stuff-0.6.apm
# wget http://media.wu-wien.ac.at/download/xotcl-request-monitor-0.10.apm
# wget http://media.wu-wien.ac.at/download/acs-api-documentation-procs.patch

b) Extract apm files to your service packages directory

# cd /var/lib/aolserver/${yourservice}/packages/
# tar -xvzf /var/tmp/xotcl-core-0.6.apm
# tar -xvzf /var/tmp/xotcl-request-monitor-0.6.apm

c) Apply the patch to make the api-browser xotcl-aware

# patch -p 0 < /tmp/acs-api-documentation-procs.patch

d) Go to acs-admin/install (http://yourserver/acs-admin/install)
e) Choose install from local
f) Choose type Application
g) Install XOTcl Core and XOTcl Request Monitor (install from local)
XOTcl Core will be auto-mounted under /xotcl/
Request Monitor under /request-monitor/

h) Restart the server

# svc -t /service/${yourservice}

5) Now you can browse
http://yourserver/request-monitor
http://yourserver/xotcl

6) Enjoy it!