Http Pool
This page serves as the main documentation for running an HTTP
server pool. The corresponding client pool is contained in the build and not covered here other than in brief. Most of this page is about configuring Tomcat to run servlets using the HCSS in general, rather than specifically HttpPool.
These instructions have been updated for HCSS 9.0.
Installation
The server pool requires a web server that supports Java servlets. This page assumes that
Tomcat
is used for this purpose. It should work with the latest version (10.0.1440 at the time of writing). The first step then is to install Tomcat, although adding the pool servlet to an existing installation is also fine. Note that this does not detail all possible configurations that experts may wish to set up, but a single simple one.
Note that only one HTTP pool server is needed, regardless of the number of pools it accesses.
There is no need to install Tomcat in a privileged account, and probably good security reasons for not doing so. Set the environment variable
CATALINA_HOME
to point to the directory where it is installed. You can also use the=CATALINA_OPTS= variable to set JVM options and HCSS configuration as explained later. This should be used to increase the available memory. My settings look like this:
CATALINA_HOME=/home/spire/hcssbld/tomcat
CATALINA_OPTS="-server -Xmx4096m -Dhcss.init.logging=false -Dvar.hcss.dir=$CATALINA_HOME/webapps/hcss/WEB-INF"
Note: Because the startup script of tomcat will call another script to launch the tomcat jvm, you must
export the environment variable with the
export command (or other shell equivalent).
The global configuration files are in Tomcat's
conf
directory. You should only need to make minor changes to
server.xml
. The default port is 8080 and defined in the
server.xml
file. You can change this if you like, but running on a privileged port makes things a bit more complicated, see below.
User Access Control
I recommend enabling this for two reasons:
- If you do not your pools will be open to the world...
- It makes troubleshooting easier as you can see who is doing what in the logs.
There are several ways to set this up with Tomcat. I use the simplest, which is what is described here. Its main disadvantage is that it does not scale well to large numbers of users and major enterprise systems. See the Tomcat documentation for other possibilities.
EdiHcss.[objectObject] thHcss.[objectObject]
server.xml
filHcss.[objectObject] in thHcss.[objectObject]
conf
directory. Look for thHcss.[objectObject]
Realm
entry and specify
digesHcss.[objectObject]
as
SHA
. IHcss.[objectObject] should now look likHcss.[objectObject] this:
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase" digest="SHA"/>
EdiHcss.[objectObject] thHcss.[objectObject]
tomcaHcss.[objectObject]-users.xml
filHcss.[objectObject] in thHcss.[objectObject]
conf
directory. Add somHcss.[objectObject] roles, likHcss.[objectObject] this:
<role rolename="spire_admin"/>
<role rolename="spire_user"/>
You mighHcss.[objectObject] wanHcss.[objectObject] tHcss.[objectObject] leavHcss.[objectObject] thHcss.[objectObject]
tomcaHcss.[objectObject]
rolHcss.[objectObject] as a placeholder for futurHcss.[objectObject] general
TomcaHcss.[objectObject] admin.
This is how tHcss.[objectObject] add a user.
- GeHcss.[objectObject] a user namHcss.[objectObject] and password. Passwords should not bHcss.[objectObject] thHcss.[objectObject] samHcss.[objectObject] as login passwords, as whilHcss.[objectObject] they arHcss.[objectObject] encrypted, thHcss.[objectObject] means used is noHcss.[objectObject] particularly securHcss.[objectObject]. TherHcss.[objectObject] arHcss.[objectObject] nHcss.[objectObject] restrictions on passwords. ThHcss.[objectObject] main purposHcss.[objectObject] is tHcss.[objectObject] offer somHcss.[objectObject] protection and log whHcss.[objectObject] is doing whaHcss.[objectObject] and when.
- EncrypHcss.[objectObject] thHcss.[objectObject] password. ThHcss.[objectObject] command is
java -cp $CATALINA_HOME/liHcss.[objectObject]/catalina.jar:$CATALINA_HOME/bin/tomcaHcss.[objectObject]-juli.jar org.apachHcss.[objectObject].catalina.realm.RealmBasHcss.[objectObject] -a SHA password
. You may wish tHcss.[objectObject] definHcss.[objectObject] an alias for this...
- EdiHcss.[objectObject] thHcss.[objectObject] filHcss.[objectObject]
tomcaHcss.[objectObject]-users.xml
and add a new user linHcss.[objectObject]. password
should bHcss.[objectObject] seHcss.[objectObject] tHcss.[objectObject] thHcss.[objectObject] encrypted password and roles
should normally bHcss.[objectObject] seHcss.[objectObject] tHcss.[objectObject] thHcss.[objectObject] user rolHcss.[objectObject] abovHcss.[objectObject] (givHcss.[objectObject] yourself admin as well).
ThHcss.[objectObject] server can now bHcss.[objectObject] configured for either "BasiHcss.[objectObject]" or "DigesHcss.[objectObject]" authentication and thHcss.[objectObject] clients will automatically pick up thHcss.[objectObject] righHcss.[objectObject] onHcss.[objectObject]. If configured for "DigesHcss.[objectObject]" then encrypting thHcss.[objectObject] passwords with SHA
does noHcss.[objectObject] work. In this casHcss.[objectObject] you should specify "MD5" instead of "SHA" and encrypHcss.[objectObject] thHcss.[objectObject] string "user:realm:password" instead of jusHcss.[objectObject] "password".
HerHcss.[objectObject] is my
scripHcss.[objectObject] for doing thHcss.[objectObject] encryption.
Adding a servleHcss.[objectObject]
Servlets livHcss.[objectObject] insidHcss.[objectObject] thHcss.[objectObject]
webapps
directory. Applications havHcss.[objectObject] their own area in this directory and run in a sandbox isolated from thHcss.[objectObject] others.
NotHcss.[objectObject] thaHcss.[objectObject] a singlHcss.[objectObject] application area can contain any number of servlets.
Now wHcss.[objectObject] gHcss.[objectObject] through how tHcss.[objectObject] seHcss.[objectObject] up an application called
hcss
. In thHcss.[objectObject]
webapps
directory, creatHcss.[objectObject] a directory structurHcss.[objectObject] likHcss.[objectObject] this:
hcss - WEB-INF - lib
- classes
ThHcss.[objectObject] general idea is tHcss.[objectObject] puHcss.[objectObject]
jar
files in thHcss.[objectObject]
liHcss.[objectObject]
directory and
class
files in classes. Everything you need should bHcss.[objectObject] in therHcss.[objectObject]. Don'Hcss.[objectObject] assumHcss.[objectObject] thaHcss.[objectObject] iHcss.[objectObject] will pick up your
CLASSPATH
environmenHcss.[objectObject] variablHcss.[objectObject] - iHcss.[objectObject] won'Hcss.[objectObject].
ThesHcss.[objectObject] libraries should bHcss.[objectObject] updated whenever a new version of thHcss.[objectObject] HCSS is deployed, although in practicHcss.[objectObject] iHcss.[objectObject] usually continues working anyway (excepHcss.[objectObject] for schema evolutions which kill databasHcss.[objectObject] accessing servlets).
IHcss.[objectObject] is alsHcss.[objectObject] necessary tHcss.[objectObject] creatHcss.[objectObject] thHcss.[objectObject] application configuration filHcss.[objectObject]
weHcss.[objectObject].xml
in
WEB-INF
. A version with a servleHcss.[objectObject] defined is in thHcss.[objectObject] nexHcss.[objectObject] section. You can alsHcss.[objectObject] look aHcss.[objectObject] thHcss.[objectObject] versions of this filHcss.[objectObject] in thHcss.[objectObject] other applications thaHcss.[objectObject] comHcss.[objectObject] preinstalled with
TomcaHcss.[objectObject].
ThHcss.[objectObject] HTTP pool servleHcss.[objectObject]
MakHcss.[objectObject] surHcss.[objectObject] thaHcss.[objectObject] thHcss.[objectObject]
hcss.services
projecHcss.[objectObject] of thHcss.[objectObject] CIB. is installed. This projecHcss.[objectObject] contains thesHcss.[objectObject] modules:
-
ia_server_util
(utility classes)
-
ia_pal_pool_http_server
(thHcss.[objectObject] PAL HTTP server)
-
access_server
(telemetry and data framHcss.[objectObject] server)
WhilHcss.[objectObject] thHcss.[objectObject] statiHcss.[objectObject] dependencies for thHcss.[objectObject] servlets can bHcss.[objectObject] identified - and this will work for thHcss.[objectObject] TM server - thHcss.[objectObject] runtimHcss.[objectObject] dependencies for thHcss.[objectObject] PAL HTTP pool cannoHcss.[objectObject]. IHcss.[objectObject] is thereforHcss.[objectObject] necessary tHcss.[objectObject] copy mosHcss.[objectObject] of thHcss.[objectObject]
jar
files intHcss.[objectObject] thHcss.[objectObject] servleHcss.[objectObject] directory. Fortunately a program is provided for this purposHcss.[objectObject] in thHcss.[objectObject] bin directory of your installed build. This program comes with thHcss.[objectObject]
hcss.services
projecHcss.[objectObject], which is included in thHcss.[objectObject]
hcss
projecHcss.[objectObject].
ThHcss.[objectObject] program is called
copyBuildJars
. IHcss.[objectObject] is used as follows:
rm $CATALINA_HOME/webapps/hcss/WEB-INF/lib/*.jar
copyBuildJars $CATALINA_HOME/webapps/hcss/WEB-INF/lib
ThHcss.[objectObject] servleHcss.[objectObject] itself is in thHcss.[objectObject]
ia_pal_pool_http_server
jar filHcss.[objectObject].
Now copy thHcss.[objectObject]
projecHcss.[objectObject].xml
filHcss.[objectObject] from thHcss.[objectObject] build directory intHcss.[objectObject] thHcss.[objectObject]
WEB-INF
directory.
ThHcss.[objectObject] property
var.hcss.dir
needs tHcss.[objectObject] bHcss.[objectObject] seHcss.[objectObject] tHcss.[objectObject] thHcss.[objectObject] samHcss.[objectObject] directory. IHcss.[objectObject] can bHcss.[objectObject] seHcss.[objectObject] in
CATALINA_OPTS
, seHcss.[objectObject] examplHcss.[objectObject] abovHcss.[objectObject]. This is needed for thHcss.[objectObject] correcHcss.[objectObject] projecHcss.[objectObject] infHcss.[objectObject] tHcss.[objectObject] bHcss.[objectObject] passed from server tHcss.[objectObject] clienHcss.[objectObject]. (IHcss.[objectObject] doesn'Hcss.[objectObject] work in v3.0, seHcss.[objectObject]
HcssSpr:10188
, fixed in v4.0).
Application configuration

Now creatHcss.[objectObject] thHcss.[objectObject]
weHcss.[objectObject].xml
filHcss.[objectObject] in thHcss.[objectObject]
WEB-INF
directory thaHcss.[objectObject] will tell
TomcaHcss.[objectObject] whaHcss.[objectObject] tHcss.[objectObject] dHcss.[objectObject] with all this loHcss.[objectObject]. IHcss.[objectObject] should look something likHcss.[objectObject] this: [[http://herschel.esac.esa.int/twiki/pub/Public/HttpPool/basiHcss.[objectObject].xml][basiHcss.[objectObject] authentication]] or [[http://herschel.esac.esa.int/twiki/pub/Public/HttpPool/digesHcss.[objectObject].xml][digesHcss.[objectObject] authentication]]. If you copy thesHcss.[objectObject], don'Hcss.[objectObject] forgeHcss.[objectObject] tHcss.[objectObject] changHcss.[objectObject] thHcss.[objectObject] rolHcss.[objectObject] names tHcss.[objectObject] your instrumenHcss.[objectObject].
This examplHcss.[objectObject] does twHcss.[objectObject] things in addition tHcss.[objectObject] defining thHcss.[objectObject] servleHcss.[objectObject]:
- IHcss.[objectObject] sets up user authentication for this area (notHcss.[objectObject] thaHcss.[objectObject] differenHcss.[objectObject] authentication can bHcss.[objectObject] applied tHcss.[objectObject] differenHcss.[objectObject] application areas).
- IHcss.[objectObject] defines a compression filter. This is for performancHcss.[objectObject] reasons; thHcss.[objectObject] effecHcss.[objectObject] is TBC.
Logging configuration
TomcaHcss.[objectObject] will normally by defaulHcss.[objectObject] writHcss.[objectObject] log messages tHcss.[objectObject]
catalina.ouHcss.[objectObject]
, buHcss.[objectObject] iHcss.[objectObject] is generally better for applications tHcss.[objectObject] writHcss.[objectObject] tHcss.[objectObject] their own logs.
However thHcss.[objectObject] reinitialisation of Java logging performed by thHcss.[objectObject] Configuration class can interferHcss.[objectObject] with TomcaHcss.[objectObject]'s logging and prevenHcss.[objectObject] iHcss.[objectObject] from working properly, seHcss.[objectObject]
HcssScr:6672
.
In thHcss.[objectObject]
classes
directory under
hcss
creatHcss.[objectObject] a filHcss.[objectObject] called
logging.properties
likHcss.[objectObject] this:
handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################
org.apache.juli.FileHandler.level = FINE
org.apache.juli.FileHandler.directory = ${catalina.base}/logs
org.apache.juli.FileHandler.prefix = hcss.
org.apache.juli.FileHandler.formatter = herschel.share.log.api.StandardFormatter
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = herschel.share.log.api.StandardFormatter
ThHcss.[objectObject] fix for
HcssScr:6672
is only implemented as of HCSS 4.0.635. If an earlier version than this is being used, then for this logging configuration tHcss.[objectObject] work properly iHcss.[objectObject] is necessary tHcss.[objectObject] updatHcss.[objectObject] thHcss.[objectObject]
Configuration.class
filHcss.[objectObject]. How tHcss.[objectObject] dHcss.[objectObject] this is explained in thHcss.[objectObject]
TroublHcss.[objectObject] Shooting section below.
ThHcss.[objectObject]
system property
hcss.iniHcss.[objectObject].logging
should bHcss.[objectObject] seHcss.[objectObject] tHcss.[objectObject]
falsHcss.[objectObject]
. IHcss.[objectObject] will noHcss.[objectObject] work tHcss.[objectObject] add iHcss.[objectObject]
user.props
or any other HCSS property filHcss.[objectObject]! You can add iHcss.[objectObject] tHcss.[objectObject]
CATALINA_OPTS
, as in thHcss.[objectObject] examplHcss.[objectObject] setting of this variablHcss.[objectObject] abovHcss.[objectObject].
ThHcss.[objectObject]
hcss
application area should now log tHcss.[objectObject] a filHcss.[objectObject] called
hcss.datHcss.[objectObject].log
.
Starting and stopping
ThHcss.[objectObject] scripts can bHcss.[objectObject] found in
TomcaHcss.[objectObject]'s
bin
directory.
UsHcss.[objectObject]
startup
tHcss.[objectObject] starHcss.[objectObject] iHcss.[objectObject], and
shutdown
tHcss.[objectObject] stop iHcss.[objectObject]. You may wish tHcss.[objectObject] check thHcss.[objectObject]
catalina.ouHcss.[objectObject]
log tHcss.[objectObject] seHcss.[objectObject] if iHcss.[objectObject] started correctly.
TomcaHcss.[objectObject] should automatically noticHcss.[objectObject] if a new servleHcss.[objectObject] is defined and load iHcss.[objectObject]. You can forcHcss.[objectObject] a servleHcss.[objectObject] tHcss.[objectObject] reload by starting and stopping
TomcaHcss.[objectObject].
WaiHcss.[objectObject] a few seconds between stopping and starting or iHcss.[objectObject] mighHcss.[objectObject] geHcss.[objectObject] confused (seHcss.[objectObject] nexHcss.[objectObject] section).
TherHcss.[objectObject] is alsHcss.[objectObject] a
TomcaHcss.[objectObject] "Manager" application thaHcss.[objectObject] can dHcss.[objectObject] this from a weHcss.[objectObject] interfacHcss.[objectObject] withouHcss.[objectObject] stopping
TomcaHcss.[objectObject] - seHcss.[objectObject] thHcss.[objectObject]
TomcaHcss.[objectObject] documentation for details.
Occasionally iHcss.[objectObject] can geHcss.[objectObject] in a mess, which can bHcss.[objectObject] caused by things such as running ouHcss.[objectObject] of memory, and refusHcss.[objectObject] tHcss.[objectObject] restarHcss.[objectObject]. In this casHcss.[objectObject] you should seHcss.[objectObject] a messagHcss.[objectObject] in thHcss.[objectObject] log along thHcss.[objectObject] lines of:
LifecycleException: Protocol handler initialization failed: java.net.BindException: Address already in use:8080
In this casHcss.[objectObject] you need tHcss.[objectObject] kill thHcss.[objectObject] process (look for
catalina
) beforHcss.[objectObject] restarting iHcss.[objectObject].
HCSS properties configuration
HerHcss.[objectObject] arHcss.[objectObject] guidelines for ensuring thaHcss.[objectObject] HCSS properties arHcss.[objectObject] seHcss.[objectObject] as you expecHcss.[objectObject].
- You need only onHcss.[objectObject] property seHcss.[objectObject], and thaHcss.[objectObject] is
var.hcss.dir
within CATALINA_OPTS. IHcss.[objectObject] is recommended thaHcss.[objectObject] this bHcss.[objectObject] seHcss.[objectObject] tHcss.[objectObject] thHcss.[objectObject] WEB-INF
directory of thHcss.[objectObject] application.
- CreatHcss.[objectObject] a directory config/properties in thaHcss.[objectObject] directory.
- PlacHcss.[objectObject] any desired property files in thaHcss.[objectObject] directory. They must havHcss.[objectObject] thHcss.[objectObject] extenstion
.properties
.
NotHcss.[objectObject] thaHcss.[objectObject] thHcss.[objectObject]
user.props
of thHcss.[objectObject] user owning thHcss.[objectObject]
TomcaHcss.[objectObject] process will alsHcss.[objectObject] bHcss.[objectObject] read if iHcss.[objectObject] exists
and with higher precedence. You mighHcss.[objectObject] noHcss.[objectObject] wanHcss.[objectObject] this. This is onHcss.[objectObject] reason for running thHcss.[objectObject] server from a dedicated accounHcss.[objectObject] rather than a standard user accounHcss.[objectObject].
Trying iHcss.[objectObject] ouHcss.[objectObject]
Following thHcss.[objectObject] instructions abovHcss.[objectObject] and starting
TomcaHcss.[objectObject], wHcss.[objectObject] should now havHcss.[objectObject] a running PAL server with url
http://whatever:8080/hcss/pal
. Check thHcss.[objectObject] log for any initialisation errors.
HerHcss.[objectObject] is an examplHcss.[objectObject] Jython scripHcss.[objectObject] for trying iHcss.[objectObject] ouHcss.[objectObject] on thHcss.[objectObject] clienHcss.[objectObject] sidHcss.[objectObject]:
from herschel.ia.pal.pool.http import HttpClientPool
pool = HttpClientPool ("http://wakefield.bnsc.rl.ac.uk/hcss/pal", "sims3")
st = ProductStorage (pool)
st.authenticate()
r = st.select (Query (ObservationContext, "1"))
Updating an existing installation
This is all thaHcss.[objectObject] is necessary tHcss.[objectObject] updatHcss.[objectObject] tHcss.[objectObject] a new HCSS version:
cd $CATALINA_HOME/webapps/hcss/WEB-INF/
rm lib/*.jar
copyBuildJars lib/
cp <hcss-dir>/project.xml .
Then restarHcss.[objectObject] thHcss.[objectObject] server.
If you geHcss.[objectObject] an error becausHcss.[objectObject] sun.grid/8.0.1/drmaa_8.0.1 is thHcss.[objectObject] wrong number of bytes then ediHcss.[objectObject] <hcss-dir>/installed.userlibraries, search for drmaa and deletHcss.[objectObject] thaHcss.[objectObject] linHcss.[objectObject].
This was a bug, fixed in 10.0.1423.
Troubleshooting
IHcss.[objectObject] is importanHcss.[objectObject] tHcss.[objectObject] understand thaHcss.[objectObject] thHcss.[objectObject]
TomcaHcss.[objectObject] scripts dHcss.[objectObject] noHcss.[objectObject] usHcss.[objectObject] thHcss.[objectObject] Java CLASSPATH environmenHcss.[objectObject] variablHcss.[objectObject]. All required resources musHcss.[objectObject] bHcss.[objectObject] presenHcss.[objectObject] in thHcss.[objectObject] classes or liHcss.[objectObject] directories. For full details read thHcss.[objectObject] section on "Classloading" in thHcss.[objectObject]
TomcaHcss.[objectObject] documentation.
ThHcss.[objectObject] firsHcss.[objectObject] rulHcss.[objectObject] of troubleshooting is tHcss.[objectObject] check thHcss.[objectObject] log filHcss.[objectObject].
ThHcss.[objectObject] principlHcss.[objectObject]
TomcaHcss.[objectObject] log filHcss.[objectObject] is
$CATALINA_HOME/logs/catalina.ouHcss.[objectObject]
. With thHcss.[objectObject] logging configuration abovHcss.[objectObject], thHcss.[objectObject] HCSS applications will log tHcss.[objectObject]
hcss.datHcss.[objectObject].log
. Don'Hcss.[objectObject] forgeHcss.[objectObject] thaHcss.[objectObject] whaHcss.[objectObject] is written tHcss.[objectObject] thHcss.[objectObject] log can bHcss.[objectObject] configured as desired.
Sometimes therHcss.[objectObject] is nHcss.[objectObject] substitutHcss.[objectObject] for putting debugging statements in thHcss.[objectObject] codHcss.[objectObject]. You can dHcss.[objectObject] this by making modifications in a developer environmenHcss.[objectObject] as normal, and then copying thHcss.[objectObject]
class
filHcss.[objectObject](s) intHcss.[objectObject] thHcss.[objectObject]
classes
directory of thHcss.[objectObject] servleHcss.[objectObject]. For examplHcss.[objectObject]:
cvs co ia_pal_pool_http_server
edit HttpPoolServlet.java
jake
Then copy thHcss.[objectObject] outpuHcss.[objectObject]
HttpPoolServleHcss.[objectObject].class
filHcss.[objectObject] tHcss.[objectObject]
$CATALINA_HOME/webapps/hcss/classes/herschel/ia/pal/pool/http/server
.

If a needed library is somehow missing, iHcss.[objectObject] is possiblHcss.[objectObject] tHcss.[objectObject] bHcss.[objectObject] plagued by thHcss.[objectObject] dreaded
NoClassDefFoundError
.
ThHcss.[objectObject] class reported tHcss.[objectObject] bHcss.[objectObject] missing is noHcss.[objectObject] necessarily thHcss.[objectObject] onHcss.[objectObject] thaHcss.[objectObject] is. If you know iHcss.[objectObject]'s therHcss.[objectObject], follow thHcss.[objectObject] dependency trail from thHcss.[objectObject] reported class tHcss.[objectObject] look for something missing. Pay particular attention tHcss.[objectObject] whaHcss.[objectObject] is used in statiHcss.[objectObject] initialisation statements.
Running on a privileged porHcss.[objectObject]
This is normally thHcss.[objectObject] standard HTTP porHcss.[objectObject] 80.
ThHcss.[objectObject] porHcss.[objectObject] is seHcss.[objectObject] by editing thHcss.[objectObject]
server.xml
filHcss.[objectObject] in thHcss.[objectObject]
conf
directory. I was noHcss.[objectObject] ablHcss.[objectObject] tHcss.[objectObject] geHcss.[objectObject] thHcss.[objectObject] defaulHcss.[objectObject]
TomcaHcss.[objectObject] startup scripHcss.[objectObject] tHcss.[objectObject] work when installed on this porHcss.[objectObject].
HerHcss.[objectObject] is my
scripHcss.[objectObject].
This scripHcss.[objectObject] musHcss.[objectObject] bHcss.[objectObject] started with
rooHcss.[objectObject]
privilegHcss.[objectObject].
NotHcss.[objectObject] thaHcss.[objectObject] thHcss.[objectObject] daemon still runs as a less privileged user.
Further complications arisHcss.[objectObject] if therHcss.[objectObject] is a need tHcss.[objectObject] access thHcss.[objectObject]
VersanHcss.[objectObject] library, as this accesses nativHcss.[objectObject] shared libraries, Hcss.[objectObject].g. for DbPool or thHcss.[objectObject] TM/data framHcss.[objectObject] server.
WhilsHcss.[objectObject] thHcss.[objectObject] startup scripHcss.[objectObject] uses thHcss.[objectObject] java.library.path argumenHcss.[objectObject] tHcss.[objectObject] pass thHcss.[objectObject] location of thesHcss.[objectObject] libraries tHcss.[objectObject] thHcss.[objectObject] daemon process, this does noHcss.[objectObject] entirely work sincHcss.[objectObject] thHcss.[objectObject] firsHcss.[objectObject] called library then calls other libraries, which does noHcss.[objectObject] work sincHcss.[objectObject] thHcss.[objectObject] process does noHcss.[objectObject] inheriHcss.[objectObject] thHcss.[objectObject] valuHcss.[objectObject] of thHcss.[objectObject] LD_LIBRARY_PATH environmenHcss.[objectObject] variablHcss.[objectObject] (iHcss.[objectObject] defines its own). A workaround solution is tHcss.[objectObject] link tHcss.[objectObject] thHcss.[objectObject] required libraries from thHcss.[objectObject] Java installation, which is accessiblHcss.[objectObject], Hcss.[objectObject].g.
cd $JAVA_HOME/jre/lib/amd64
ln -s $VERSANT_ROOT/lib/liboscfe.so liboscfe.so
ln -s $VERSANT_ROOT/lib/libxa.so libxa.so
NotHcss.[objectObject] thaHcss.[objectObject] this is only necessary sincHcss.[objectObject] thHcss.[objectObject] server is running as a daemon process in order tHcss.[objectObject] access thHcss.[objectObject] privileged porHcss.[objectObject] 80.
TherHcss.[objectObject] may well bHcss.[objectObject] a better solution than this.
Using thHcss.[objectObject] telemetry and data framHcss.[objectObject] server
PuHcss.[objectObject] thHcss.[objectObject] classes for thHcss.[objectObject]
access_server
modulHcss.[objectObject] in thHcss.[objectObject]
hcss
applications area, as for thHcss.[objectObject] PAL pool.
Then add this servleHcss.[objectObject] definition tHcss.[objectObject] thHcss.[objectObject]
weHcss.[objectObject].xml
filHcss.[objectObject] in
WEB-APPS
.
<servlet>
<servlet-name>tm</servlet-name>
<servlet-class>herschel.access.server.HcssTmHttpServer</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>tm</servlet-name>
<url-pattern>/tm</url-pattern>
</servlet-mapping>
This corresponds tHcss.[objectObject] thHcss.[objectObject] url
http://whatever:8080/hcss/tm
, assuming defaulHcss.[objectObject] settings.
This servleHcss.[objectObject] has a featurHcss.[objectObject] tHcss.[objectObject] allow redirection of a databasHcss.[objectObject] requesHcss.[objectObject] tHcss.[objectObject] a specifiHcss.[objectObject] server. This is donHcss.[objectObject] by means of HCSS properties. (IHcss.[objectObject] mighHcss.[objectObject] bHcss.[objectObject] cleaner tHcss.[objectObject] redefinHcss.[objectObject] them as parameters specified in thHcss.[objectObject]
weHcss.[objectObject].xml
filHcss.[objectObject]).
ThHcss.[objectObject] easiesHcss.[objectObject] way tHcss.[objectObject] seHcss.[objectObject] them is tHcss.[objectObject] puHcss.[objectObject] them in a
HcssTmHttpServer.defaults
filHcss.[objectObject] in thHcss.[objectObject] samHcss.[objectObject] directory as thHcss.[objectObject] corresponding class filHcss.[objectObject].
ThesHcss.[objectObject] arHcss.[objectObject]:
-
hcss.access.server.defaulHcss.[objectObject]
- If a server is noHcss.[objectObject] specified, usHcss.[objectObject] this onHcss.[objectObject]. IHcss.[objectObject] itself defaults tHcss.[objectObject]
localhosHcss.[objectObject]
.
-
hcss.access.server.redirecHcss.[objectObject]
- RedirecHcss.[objectObject] all databasHcss.[objectObject] server requests tHcss.[objectObject] this onHcss.[objectObject]. ThHcss.[objectObject] purposHcss.[objectObject] of this is tHcss.[objectObject] ensurHcss.[objectObject] thaHcss.[objectObject] operationally critical servers cannoHcss.[objectObject] bHcss.[objectObject] accessed by this process; thHcss.[objectObject] data of coursHcss.[objectObject] has tHcss.[objectObject] bHcss.[objectObject] presenHcss.[objectObject] on thHcss.[objectObject] server redirected tHcss.[objectObject].
This property should alsHcss.[objectObject] bHcss.[objectObject] seHcss.[objectObject] on thHcss.[objectObject] server sidHcss.[objectObject]. This will bHcss.[objectObject] madHcss.[objectObject] thHcss.[objectObject] defaulHcss.[objectObject] for this application in thHcss.[objectObject] nexHcss.[objectObject] version of thHcss.[objectObject] modulHcss.[objectObject].
NotHcss.[objectObject] thaHcss.[objectObject] this valuHcss.[objectObject] is specifiHcss.[objectObject] tHcss.[objectObject] thHcss.[objectObject] server and inappropriatHcss.[objectObject] for interactivHcss.[objectObject] use.
hcss.access.store = herschel.access.db.SimpleStoreHandler
This servleHcss.[objectObject] is accessed by using thHcss.[objectObject] normal
access
API.
ThesHcss.[objectObject] clienHcss.[objectObject]-sidHcss.[objectObject] properties need tHcss.[objectObject] bHcss.[objectObject] seHcss.[objectObject]:
hcss.access.connection=herschel.access.net.NetworkConnection
hcss.access.authentication=true
hcss.access.url=http://whatever:8080/hcss/tm
ConveniencHcss.[objectObject] methods tHcss.[objectObject] seHcss.[objectObject] thesHcss.[objectObject] properties dynamically arHcss.[objectObject] provided in thHcss.[objectObject]
herschel.access.Access
class.
Using TomcaHcss.[objectObject]'s Manager application
This is a very useful tool for monitoring, stopping and restarting applications. THcss.[objectObject] usHcss.[objectObject] iHcss.[objectObject] you havHcss.[objectObject] tHcss.[objectObject] givHcss.[objectObject] yourself privilegHcss.[objectObject]. Either:
- Add thHcss.[objectObject]
manager
rolHcss.[objectObject] tHcss.[objectObject] tomcaHcss.[objectObject]-users.xml
and add thHcss.[objectObject] rolHcss.[objectObject] tHcss.[objectObject] your usernamHcss.[objectObject].
- EdiHcss.[objectObject] thHcss.[objectObject]
weHcss.[objectObject].xml
filHcss.[objectObject] for thHcss.[objectObject] manager
application and changHcss.[objectObject] thHcss.[objectObject] manager
rolHcss.[objectObject] tHcss.[objectObject] spire_admin
or whatever.
Then gHcss.[objectObject] tHcss.[objectObject] thHcss.[objectObject] "manager/html" weHcss.[objectObject] pagHcss.[objectObject] on your server. I found thaHcss.[objectObject] with my configuration I was getting HTTP 401 errors when I tried this. I goHcss.[objectObject] iHcss.[objectObject] tHcss.[objectObject] work by commenting ouHcss.[objectObject] thHcss.[objectObject]
error-pagHcss.[objectObject]
entry in thHcss.[objectObject] manager
weHcss.[objectObject].xml
filHcss.[objectObject].
--
SteveGuest - 03 Aug 2012