Index: openacs-4/packages/acs-core-docs/www/bootstrap-acs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/bootstrap-acs.html,v diff -u -N -r1.50 -r1.51 --- openacs-4/packages/acs-core-docs/www/bootstrap-acs.html 7 Aug 2017 23:47:49 -0000 1.50 +++ openacs-4/packages/acs-core-docs/www/bootstrap-acs.html 8 Nov 2017 09:42:10 -0000 1.51 @@ -1,39 +1,68 @@ -Bootstrapping OpenACS

Bootstrapping OpenACS

By Jon Salz

- OpenACS docs are written by the named authors, and may be edited - by OpenACS documentation staff. -

This document describes the startup (bootstrapping) process for an AOLserver +Bootstrapping OpenACS

Bootstrapping OpenACS

+ + +<authorblurb> +

By Jon Salz

+</authorblurb>
+ +
  • Tcl code: /tcl/0-acs-init.tcl and /packages/acs-kernel/bootstrap.tcl

+ +

This document describes the startup (bootstrapping) process for an AOLserver running OpenACS. -

The Big Picture

+

+ + +

The Big Picture

+ + +

Before OpenACS 3.3, the OpenACS startup process was extremely simple: after AOLserver performed its internal initialization (reading the configuration file, loading shared libraries and module code, etc.) it scanned through the Tcl library directory (generally /var/lib/aolserver/yourservername/tcl), sourcing each file in sequence. -

While this overall structure for initialization is still intact, package +

+ +

While this overall structure for initialization is still intact, package management has thrown a wrench into the works - there are a few extra things -to do during initialization, most notably:

  • Examine the OpenACS file tree for files that should not be present in OpenACS +to do during initialization, most notably:

    + +
    • Examine the OpenACS file tree for files that should not be present in OpenACS (i.e., that were once part of the OpenACS distribution but have since been removed).

    • Scan the /packages directory for new packages.

    • Initialize enabled packages by sourcing their *-procs.tcl -and *-init.tcl files.

    +and *-init.tcl files.

+ +

This document examines in detail each of the steps involved in AOLserver/OpenACS startup. -

The Startup Process

+

+ +
+ +

The Startup Process

+ + +

As soon as the nsd daemon is executed by the init process (or otherwise), AOLserver reads its configuration file and chroots itself if necessary. It then loads shared libraries indicated in the .ini file (e.g., the Oracle driver and nssock), and sources Tcl module files (generally in /home/aol30/modules/tcl). This step is, and has always been, the same for all AOLservers, regardless of whether they are running OpenACS. -

Next AOLserver sources, in lexicographical order, each file in the +

+ +

Next AOLserver sources, in lexicographical order, each file in the /tcl directory. The first such file is 0-acs-init.tcl, which doesn't do much directly except to determine the OpenACS path root (e.g., /var/lib/aolserver/yourservername) by trimming the final component from the path to the Tcl library directory (/var/lib/aolserver/yourservername/tcl). But 0-acs-init.tcl's has an important function, namely sourcing -/packages/acs-core/bootstrap.tcl, which does the following:

  1. Initialize some NSVs used by the core. These NSVs are +/packages/acs-core/bootstrap.tcl, which does the following:

    + +
    1. Initialize some NSVs used by the core. These NSVs are documented in /packages/acs-core/apm-procs.tcl - no need to worry about them unless you're an OpenACS core hacker. @@ -82,8 +111,16 @@

    2. Verify that the core has been properly initialized by checking for the existence of an NSV created by the request processor initialization code. If it's not present, the server won't be -operational, so we log an error.

    +operational, so we log an error.

+ +

At this point, bootstrap.tcl is done executing. AOLserver proceeds to source the remaining files in the /tcl directory (i.e., unpackaged libraries) and begins listening for connections. -

($Id$)
+

+ + + +

($Id$)

+
+