LeasePak Server Directory Trees
LeasePak Documentation Suite NETSOL website
LeasePak Server Directory Trees

LeasePak Server

LeasePak Server Directory Trees

Upper Tree and $top Tree

Directory Descriptions

  • /opt: $EFSDIR
    External File System Directory
    Long ago it was decided that the directory that would contain most of the LeasePak installation would be "/opt", and would be directly under "root" ("/"), and that the main parts of LeasePak, LeasePak itself,and the Queue Manager would occupy this directory, which would be a file system that headed other file systems. Meaning that it would have as its subdirectories the file system directory holding LeasePak instances, and the file system directory holding Queue Manager instances.
    Note that this discussion of directory structure does not address the DBMS directories, only a single LeasePak instance and a single Queue Manager instance. The DBMS(es) may be located on some other filesystem than any directly involved with the LeasePak and Queue Manager instances. Typically, Oracle and Sybase will be found in /opt/oracleand /opt/sybase respectively, where oracle and sybase are separate filesystems.
    When the administrator installs a new version of LeasePak, s/he runs the SETUP program, to which the administrator provides as a parameter the value of $TOPDIR, which includes $EFSDIR and $NSTDIR as components of the installation path.
  • $EFSDIR/qm
    Queue Manager
    See the section on the Queue Manager Tree – HP and Solarisfor details of the $EFSDIR/qm directory.
  • $EFSDIR/nst: $NSTDIR
    NetSol Technologies Directory
    This is the second component, after /opt, of the path from root to $TOPDIR. It is here, in v65a Linux, that we have consolidated the LeasePak and Queue Manager parts of the package under the upper-most directory under the control of SETUP: $NSTDIR. This is only on Linux, however; the HP and Solaris platforms still use the older arrangement, where, under /opt, there is a ./qm directory holding the Queue Manager instance(s).
  • $NSTDIR/qm
    Queue Manager
    See the section on the Queue Manager Tree – Linux for details of the $NSTDIR/qm directory.
  • $NSTDIR/v76a: $TOPDIR
    Top Directory
    Also known as $top, this is the top directory of the LeasePak instance. There are parts of LeasePak outside of $TOPDIR, as required by system requirements, and the Queue Manager, being of third party origin is also outside of $TOPDIR. This is the directory name that is the first parameter to the SETUP program. It must be an absolute pathname, starting from "/". It should be on a file system all of its own. Its sub-directories are discussed below.
  • $NSTDIR/cst: $CSTDIR
    Custom Code
    This is the head directory of the EUCO system (see End-User Code Objects. It has two subdirectories briefly described below, and more fully in End-User Code Objects.
    • $CSTDIR/cql: Code Objects SQL
      EUCO: SQL modules
      These are user-composed SQL program modules. They are organized by LeasePak build numbers, as that is the smallest unit of compatibility in LeasePak. The db_create program loads the standard SQL shipped with LeasePak as well as the SQL modules located here. The subdirectories are named n.nn.nnnn, where "n.nn.nnnn" represent LeasePak build numbers.
    • $CSTDIR/prg: Code Objects programs
      EUCO: program modules
      These are user-written script or binary programs that may be required to support the SQL modules in $CSTDIR/cql. These should be independent of LeasePak's release structure.
  • Qmgr-Tree
    Queue Manager Tree
    This is the actual location of the Queue Manager instance for the installed LeasePak instance. It may be a subdirectory of $EFSDIR/qm (see Queue Manager Trees - HP-UX and Solaris) or of $NSTDIR (see Queue Manager Trees - Linux).
  • $TOPDIR/*: the subdirectories of $TOPDIR
    $TOPDIR: contents and details
    The $TOPDIR directory, being the head of the LeasePak release instance, contains places and links for almost all parts of LeasePak. These are discussed below.
    • ./bld; $bld
      This is the directory where all builds are stored in a LeasePak release instance. Not all builds created by Netsol's server build system are deployed internally, and even fewer are deployed externally to Netsol's client sites. However, for a given release of LeasePak, there may be as many as ten or more patch releases, correcting bugs, etc., that are found after the initial release. If a site receives a patch distribution of LeasePak, when it is installed on the application host, a new subdirectory of $CSTDIR/cql will be created with the newly installed build's build id. This allows the site administration staff to port over their EUCOs from the previously installed build, to maintain compatibility of the site's software with the live build.
      Since builds are quite large, it is unlikely that there will be more than a few kept, but if they are kept, they should be left in $bld, and also archived to backup media. Upon installation of a patch build, the $live ($TOPDIR/live) link is broken from the previous build, and the newly installed build is linked to $live, and thereby all environments pointing to $live will simultaneously and instantly be upgraded to the new build. Environments pointing to other builds will continue to point there even when $live is changed. See Environments and Databases.
    • ./live: $live
      This is a symbolic link that is used by all production environments to access the officially sanctioned and supported build in $bld. The contents of $live are a particular build in $bld that the administrator has designated as the current live build, the one used in the daily work of the leasing operation.
    • ./boot: Bootstrap Directory, $BOOTDIR
      This is one of the first directories laid down from the LeasePak distribution media by the SETUP program when LeasePak is installed. It contains SETUP and some of its component modules, and the programs that copy and organize the new software, and programs to elicit information from the administrator as to the desired layout of the package. Logs of the reading of the installation images are also kept here.
    • ./log: Logging directory, $msilog
      All of the setup modules log their progress and results here. There is a log for the programs executed by the LeasePak Administrative Roles setting up environments, creating and provisioning databases, creating and provisioning users, etc. Once an environment is made, the activities connected to it and its database are logged here in logs dedicated to each environment. When database conversions are performed from one release to another, those logs are also written here. A number of other processes write logs here as well, such EOP Suite (some versions), and the logs of the internet daemons, leasepakd and mpowerd.
    • ./datasets: snapshot directory, $datasets
      All datasets generated by db_snapshot are written here. The administrator must be vigilant about disk usage as snapshots of production LLDBs can be quite large. The LeasePak default datasets, level7 and seed are stored in each build tree.
    • ./vertex
      This directory is used to store Vertex sales tax database download and work files. Only applicable to sites that own the Vertex module of LeasePak.
    • ./env: LeasePak environments
      This is the directory where all environments belonging to the instance are located. See Environments and Databases.
    • ./etc: Release control files, $CFGDIR
      The answers to the SETUP interview (relscfg.msirc) are stored here, as are the cfg_gen files, <host>_<vnna>_rt.com, .lpkd, .msirc, and some very low-level scripts needed immediately at login, and terminators.txt, used by db_snapshot.

Build Tree

Directory Desciptions

  • $TOPDIR/bld: $bld
    "Build Directory"
    $bld is a subdirectory of $TOPDIR, and it alone contains the product of the Build System, which on a daily basis assembles LeasePak, mPower and the Queue Manager into the complete image of the system. Each such assemblage is called a "build", and has its own unique identifier that differentiates it from other builds before or after the current build, and from builds pertaining to other releases. All of the assembly, execution, and installation of LeasePak is a result of the build system, and is stored in a subdirectory called a "build".
  • Builds
    One build looks much like another. And though the directory layout of the server has changed slightly over time, it is still largely as it was at the turn of the century. It is thus difficult to tell one build from another. For this reason, we have Build IDs that classify and enumerate individual builds.
  • Build IDs
    Each build is identified by a unique number. This number has the format "M.mp.ssss", where
    Format character Name Meaning
    M. Major release # v64a
    m minor release # v64a
    p. patch # v64a => 0
    v64b => 1
    v64c => 2
    etc., on through
    v64j => 9
    ssss build sequence A continuous number starting at an arbitrary value, divisible by 100, new start number selected for each release version, then increasing monotonically from that start number for each build on the HP platform. Simultaneous builds on Linux and Solaris use the same sequence as HP.
    Once a serial-numbered object is produced, then that sequence number is marked 'used'.
    Once used a number cannot be reused in another build.
    Serial-numbered objects are the Netsol link libraries and the LeasePak drivers,
    lp_major "6"
    lp_minor 5
    lp_patch a
    lp_dummy_seq 1234
    Example
    v65a/1234   >   6.50.1234
  • $bld/n.nn.nnnn/*: Subdirectories of the Build
    • $bld/M.mp.ssss
      Head directory of build located in $bld
    • M.mp.ssss/bin: Executables
      M.mp.ssss/bin is a subdirectory of the build; it holds NetSol's utility scripts. These are mostly, but not entirely, DBMS-independent programs.
    • M.mp.ssss/conv: Sybase and Oracle conversion ware
      There is a sub-subdirectory each for the DBMSes: ora and syb. Each contains the software for converting and upgrading LLDBs of the stated type. The programs for any DBMS that is not installed by the NetSol client are removed by SETUP.
    • M.mp.ssss/cst: End-User Code Objects
      A symbolic link to $CSTDIR/M.mp.ssss, where the client's staff maintains SQL and script code to perform site-specific access to the LLDB. $CSTDIR/M.mp.ssss has two subdirectories: cql for DBMS-SQL procedures, and prg for any shell-access programs the client's site-specific process may require. See End User Code Objects.
    • M.mp.ssss/dsets: default datasets
      This is where the build-specific default Level7 and Seed datasets are stored. See About datasets.
    • M.mp.ssss/exe: LeasePak Drivers
      Contains a separate directory for each DBMS: ora and syb. The programs for any DBMS that is not installed by the NetSol client are removed by SETUP. Includes DMBS-specific lpachkls.exe, lpadavox, lpadbdrvr.exe, lpadriver.exe, lpaeopdrvr.exe, lpaglintf.exe, lpainvc.exe, lparevolv_feeassmt.exe, lpaxmldrvr.exe, lpchgpass. Also stored here is the NetSol-generated license file, lplicense.dat, that enables use of LeasePak by the site. See also Note on exe Directory.
    • M.mp.ssss/lib: Libraries and configuration templates
      Contains the shell-scripting libraries, which are heavily used by the software toolset employed by LeasePak. Also contains templates for all internet and init programs required by LeasePak. The source files for cfg_gen are stored here as well.
    • M.mp.ssss/sql: LeasePak SQL code
      Contains all static SQL code for LeasePak, including table, index and view definitions, stored procedures, packages, and triggers. These files are loaded into the LLDB by db_create. Contains a separate directory for each DBMS: ora and syb. The files specific to any DBMS that is not installed by the NetSol client are removed by SETUP.
    • Files found in root of build directory tree
      There are 3 such files that are part of the build structure:
      Build
      container for $BLD_ID, with the value of the build ID (see About Builds)
      Job
      container for the build sequence used to create the Setup-Kit for installation.
      Journal
      record of the files included in the Setup-Kit, giving their owners and permissions to be applied to the release contents when deployed.

Production & Test Environments

Directory Descriptions

  • $TOPDIR
    This directory is described in Upper Tree above.
  • ./env
    Instance Environment Diretory
    This directory is described in Upper Tree above.
  • env-name:$ENVDIR
    Top directory for a single LeasePak environment
    See Environments and Databases.
  • Subdirectories of the Environment
    • ./data: $udata, data directory for LLDB
      A few tables in the LLDB are non-relational, and so are not compatible with the DBMSes that LeasePak uses. Therefore they are stored on the application host's file system as C-ISAM files, in the environment's data directory. These, together with a number of other historical files, are intrinsic parts of the LLDB.
    • ./eop: $ueop, End-of-Period directory for LLDB
      Every working LLDB must run EOP processing periodically. $ueop contains two subdirectories for this purpose:
      • ./eop/com: End-of-Period command files
        These are the command files generated for each EOP run, and given to the Queue Manager to execute and report on. They are written in DCL, which is the Queue Manager's scripting language.
      • ./eop/log: End-of-Period batch queue log files
        These are log files generated by the Queue Manager in consequence of running the various EOP jobs.
    • ./err: $uerr: Program exception files
      Contains exception files generated by the various batch jobs run by the Queue Manager.
    • ./etc: $uetc: Environment configuration files
      These include the following:
      • ./etc/envdb.msirc: description of the environment
        Details of the environment's creation, which build the environment points to, whether it can host, what kind of access it has to the LeasePak drivers.
      • ./etc/logdb.msirc: description of the LLDB
        Details the DBMS used, the DBMS server used, and information required by the DBMS for connecting to the database server. This is where DSQUERY (Sybase) or TWO_TASK (Oracle) is defined, as well as other required variables.
      • ./etc/physdb.msirc:physical description
        This describes initial allocation of storage space for the LLDB: Data and log devices for Sybase and the tablespace for Oracle.
      • See also Environments and Databases.
  • One of the primary purposes of the LeasePak environment is to generalize the access to various builds. This is done through a set of symbolic links from the environment into specific locations within a build.
    • ./live: $live: linking to the current live build.
      Even if an instance contains multiple builds, one environment can only link to one such build at any given time. This is an intrinsic part of the environment, configured via the envdb.msirc file in $uetc, which is written when the environment is first created by setup_new_env. If the build listed in envdb.msirc is a linkpoint, then whichever build the linkpoint refers to is the build in use. At the NetSol client sites, there is only one linkpoint, live. So LLDBs at client sites are limited to either live and which ever build that that refers to, or to a specific build in the $bld directory.
    • Environment directories that are really just symbolic links:
      Directory Name Links to
      ./bin $ubin $live/bin
      ./conv $uconv $live/conv
      ./cql $ucql $live/cst/cql/DBMS
      ./dsets $udsets $live/dsets
      ./exe $uexe $live/exe/DBMS
      See Note on exe Directory.
      ./prg $uprg $live/cst/prg
      ./sql $usql $live/sql/DBMS
    • See also the table of directories in the article on Visitor Environments.

Note on exe Directory

LeasePak environments link to the LeasePak drivers two diferent ways:
  • via a directory containing individual links to the individual drivers in the referenced build.
    This is not the default mode. -l must be included in the arguments to setup_new_env in order to obtain this kind of access. This option is not available for Production environments. See Environments and Databases.
  • via a link to the build's exe directory.
    This is the default mode. No special arguments are required to obtain this kind of access.
  • Visitor Environments

    Directory Descriptions

    The directory structure of a Visitor Environment (see Environments and Databases for more information) is identical to that of Production and Test Environments, except that many of the directories in Production and Test Environments are replaced with symbolic links with the same name. This is because the Visitor is a separate environment only in its executable LeasePak drivers. It shares the database with its host environment and its activities must remain compatible with its host.
    The accompanying diagram shows several extra pink boxes; these are the environment directories that belong to the host that the Visitor is using. The green boxes are normally directories or links to a build in Production and Test environments, but are symlinks to the host environment in the Visitor environment.
    In a Visitor environment, the files in $uetc are different from a Production or Test environment:
    • envdb.msirc is a real file, unique to the visitor environment
    • logdb.* are symlinks to the logdb.* files in the host environment
    • physdb.msirc does not exist, as the visitor is not allowed to create the LLDB.
    The following table details the differences:
    Name Production and
    Test Directories
    Production and
    Test Link to
    Visitor
    Directories
    Visitor Links to
    $ubin ./bin $MSIENV_BUILD/bin ./bin $MSIENV_BUILD/bin
    $uconv ./conv $MSIENV_BUILD/conv ./conv $MSIENV_BUILD/conv
    $ucql ./cql $MSIENV_BUILD/cst/cql/DBMS ./cql $MSIENV_HOST/cql
    $udata ./data (directory, no link) ./data $MSIENV_HOST/data
    $udsets ./dsets $MSIENV_BUILD/dsets ./dsets $MSIENV_BUILD/dsets
    $ueop ./eop (directory, no link) ./eop $MSIENV_HOST/eop
    $uerr ./err (directory, no link) ./err $MSIENV_HOST/err
    $uetc ./etc (directory, no link) ./etc (directory, no link)
    $uexe ./exe $MSIENV_BUILD/exe/DBMS ./exe $MSIENV_BUILD/exe/DBMS
    $ulib ./lib $MSIENV_BUILD/lib ./lib $MSIENV_BUILD/lib
    $uprg ./prg $MSIENV_BUILD/cst/prg/DBMS ./prg $MSIENV_HOST/prg
    $usql ./sql $MSIENV_BUILD/sql/DBMS ./sql $MSIENV_HOST/sql

    Queue Manager Tree - Linux

    Directory Descriptions

    • /opt: $EFSDIR
      External File System Directory
      Documented above under Upper Tree.
    • $EFSDIR/nst: $NSTDIR
      NetSol Technologies Directory
      Documented above under Upper Tree.
    • $NSTDIR/qm_${INST_ID}76a: $QMPPATH, Queue Manager Parent
      Parent of Queue Manager for ${INST_ID}76a
      This directory is designed to hold more than one version of the Queue Manager, in the event that another version of the Queue Manager is installed in the release as an upgrade. "{INST_ID}" was set by SETUP in response to the interview question, "Short identifier for this instance (2 to 4 characters)".
    • $QMPPATH/qm_3_35: $QMDIR, Queue Manager v3.35 instance
      Queue Manager top directory for QM version 3.35 and LP version v76a
      The main directory structure of the Queue Manager is located here. Directly underneath this directory are subdirectories and two files, described below.
    • General Queue Manager Structure

      • Files found in root of the Queue Manager tree
        There are one or two such files that are part of the queue manager structure:
        • $QMDIR/Linux_Type
          Linux_Type: Target platform (Linux only)
          Contains an identifier for the target platform for which the Queue Manager (RH=RedHat) is installed, plus the date of receipt of the Sector7 build by NetSol
        • $QMDIR/ATT
          Attached: log and timestamp of the attachment process of the Queue Manager
          A log of the processes by which the Queue Manager instance is attached to the LeasePak release instance. Contains flags that can aid in diagnosing installation problems.
      • $QMDIR/bin
        This is the directory of Queue Manager executables
      • $QMDIR/com
        Com-file directory
        These include start_qmgr.com, start_queues.com, stop_qmgr.com and show_que.com.
      • $QMDIR/library
        Queue Manager configuration directory
        This directory stores the all-important Config file (general Queue Manager configuration) the DEVINIT file (printer logical-to-OS mapping), and qjob_limit, the file that assigns the jobs-per-queue value. See Configuration and Maintenance – Queue Manager.
      • $QMDIR/message
        Queue Manager message directory
        Database of all the messages that come from the Queue Manager, also used heavily by LeasePak itself.
    • Linux:

      • The /var Tree
        The Linux add-on software package directory
        The Queue Manager sets up two areas for its use, explained in the following notes.
        • /var/spool/qm_${INST_ID}v76a
          Queue Manager Spooling: $QMSPOOLDIR
          Print jobs and batch jobs are stored here pending execution.
        • /var/tmp/qm_${INST_ID}v76a
          Queue Manager Temporaries: $QMTMPDIR
          Location where the Queue Manager creates and works on temporary files.
    • HP-UX and Solaris:

      • $QMDIR/spool
        Queue Manager Spooling: $QMSPOOL
        Print jobs and batch jobs are stored here pending execution.
      • /tmp/qm/v76a
        Queue Manager Temporaries: $QMTMP
        Location where the Queue Manager creates and works on temporary files.

    Queue Manager Tree - HP-UX and Solaris

    Directory Descriptions

  • $EFSDIR/qm/v76a: Queue Manager Parent
    Parent of Queue Manager for v76a
    This directory is designed to hold more than one version of the Queue Manager, in the event that another version of the Queue Manager is installed in the release as an upgrade.
  • $EFSDIR/qm/v76a/qm_3_17: $QMDIR, Queue Manager v3.17 instance
    Queue Manager top directory for QM version 3.37 and LP version v76a
    The main directory structure of the Queue Manager is located here. Directly underneath this directory are the contents of the Queue Manager, described above in the General Queue Manager structure.
  •