TWiki> Public Web>HttpPool (revision 32)EditAttach

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:

  1. If you do not your pools will be open to the world...
  2. 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.

  1. 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.
  2. 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...
  3. 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).

NEW 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

UPDATED 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]:

  1. 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).
  2. 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

TIP 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].

  1. 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.
  2. CreatHcss.[objectObject] a directory config/properties in thaHcss.[objectObject] directory.
  3. 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"))

NEW 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.

TIP 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

Edit | Attach | Watch | Print version | History: r34 < r33 < r32 < r31 < r30 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r32 - 2012-08-03 - SteveGuest
 
This site is powered by the TWiki collaboration platform Powered by Perl