MIM System Administration (Solaris)

MIM Server Basics

Architecture

The following shows the architecture of the MIM server.

The MIM client/server process functions as follows:

  • The process is made up of four components – (1) Master Server (2) Slave Servers (3) Clients (4) Database

  • The master server is the controlling process and acts like a traffic cop. Requests are made from the clients and the master server divides the workload among the slave servers.

  • The slave servers access the database performing the bulk of the work.

  • Once the client process has been assigned a slave server, communications is between the client and slave server until the request is complete.

  • Clients can be UNIX or PC clients. All clients use the rpc protocol to communicate with the server over the network or localhost. Port numbers are automatically assigned by the port mapper and are above 1024.

  • The master server handles all schema requests. If a request is made for data, the Master Server will return the simple hostname and slave server port number to the client. The client will then establish communications with the slave server

  • It is very important that the client be able to resolve the simple hostname that the master server returns.

  • Each master server has a logical port number that is user defined between 0-255. The default port number is 0.

  • Each slave server within a master server has a logical port number beginning with 0 and incrementing up by 1 for each additional slave server.

  • There may be multiple Master Servers running on a single machine, each with a unique port number.

Tree Structure

The MIM system must reside in a directory owned by the MIM DBA account, with the top level of the home directory structured as below:

  • .limrc – MIM system environmental variables are set in this file.

  • .xmimrc – Database definitions are read by server at startup.

  • .cshrc – csh startup environmental file

  • .profile – sh startup environmental file

  • .netrc – Used by FTP service for automatic server login.

  • .wgetrc – Resource file for wget process.

  • certs - Authentication certificate for wget.

  • comp – Directory used for dbcompare (for more information on dbcompare, see the "dbcompare Utility" chapter in the Data and Development Guide) when executing database comparisons.

  • config – Directory containing log and lock files for load_updates.sh and cron_updates.sh.

  • cron_updates.sh – Script run from cron that controls the downloading of packages and updating the server.

  • data – Directory containing default database files.

  • data.cust – Directory containing customer database files loaded from the Excel data loader.

  • data.gii – Directory containing the Equities database files.

  • dates – Directory containing date and event files used by the MIM system.

  • de-jakarta – Web server used by the Java API.

  • docs – Directory containing system files for creating database catalog of local database.

  • get_data.ksh – Script used to download packages from LIM.

  • license – Directory containing license file.

  • limtest – MIM server test account used by customer for data loading, usually referenced as /home/limtest.

  • load_updates.sh – Script used to load LIM supplied updates into the database.

  • mimdbcp – Directory containing system files to copy data from one database to another.

  • public_jobs – Directory containing saved jobs generated from XMIM.

  • templates – Directory containing template files that may be modified per installation.

  • tmp – Directory containing temporary files.

  • tools – Directory containing utilities such as print server, backups, perl, jre and ncftp.

  • updates – Directory used for downloading and processing updates.

  • xmim – Link to xmim40.sol.

  • xmim40.sol – Directory containing system files (bin, lib, include…).

  • xmimrc – Directory containing format definitions for viewing data (i.e., f8.2).

  • xmimsvr.acl – ACL file for controlling access to MIM server – default setting is “@” (all have access).

Selective Directory Tree Structures

certs

  • thawte.cer - Certification file for wget.

config/

  • load_updates.lck – Lock file created when load_updates.sh is running. Only one load_updates.sh allowed to run at a time.

  • load_updates.hst – History of load_updates.sh runs

  • load_updates.err – Contains error messages from last load_updates.sh run. Removed prior to each run.

  • cron_updates.lck – Lock file created when update downloads are occurring

data/, data.cust/, data.gii/

  • xmim.mim – Database schema file. Read into memory when server is started.

  • xmim.mimdb – Directory containing database files.

  • xmim.mimdb/daily – Directory containing daily data database files.

  • xmim.mimdb/tick - Directory containing real ticks (seconds) database files.

  • xmim.mimdb/intraday - Directory containing intraday data (minute/hourly) database files.

  • xmim.mimdb/millisecond - Directory containing millisecond data database files.

  • xmim.mimdb/tabledb – Directory containing relational components such as units of measure, entitlements and corrections.

  • lock – temporary file used by server.

templates/

  • .cshrc – default csh startup file for users and MIM DBA account.

  • .limrc – File containing MIM environmental variables.

  • .netrc – Example file used by FTP service for automatic server login.

  • .profile – sh startup environmental file.

  • .wgetrc – Startup file used by wget, runs FTP using HTTP proxy.

  • .xmimrc – Database definitions, read by server at startup

  • cron_updates_post.ksh - A sample script used by the publisher.

  • get_data.ksh – Customizable script for ftp/wget/uucp to retrieve updates.

  • sys.dtwmrc – Sample dtwm menu file for Solaris desktops.

  • xmimlock.acl – Example file for setting database locking permissions.

  • xmimserver – MIM server startup/shutdown file for rc0.d, rc2.d and init.d.

updates/

  • filelist – list of files previously downloaded.

  • logs – directory of log files from each update run.

  • processed – is not used.

  • unpacked – temporary holding area for unpacking updates.

  • temp – used for temp holding area as updates are downloaded.

xmim/

  • CHANGES – is the binary change log.

  • X11 – X11 lib definitions for local GUIs.

  • bin, lib, include – are the system binaries.

  • demo – contains the demo queries.

  • library – holds the MIM system macros.

Installation

The MIM server is a client/server system that integrates into existing networks. It requires tcp/ip networking with a Sun server accessible by the clients.

The client applications are as follows:

  • The MIM Excel Add-In runs in Excel on the PC and uses the rpc protocol to access the MIM server.

  • MIMIC and XMIM are Java applications running on the PC using the rpc protocol to access the MIM server.

Bandwidth for the PC applications is minimal.

In order to setup the MIM server on a network the following information is required:

  • Static IP# for the Sun MIM server.

  • Netmask for the IP#

  • Hostname of the Sun server - The server will use its simple hostname to pass back to the clients to use in rpc calls.

  • IP# of default gateway

  • Sun server hostname is setup in DNS

  • DNS domain name

  • DNS server IP#s

  • SMTP mail relay IP#

  • Postscript network printers - IP#s of units close to user who will be using the XMIM GUI

  • FTP capability for the SUN server to FTP out to ftp.lim.com for database updates. This will be a scripted job that can work through proxy servers.

  • User names and passwords of XMIM users

  • Method setup for remote administration when required.

Installation Procedures

  1. Prerequisites:

    • There is a LIM DBA account setup - the installation is simplified if the username is "lim" (use bash, ksh or csh), the group id is "10" and the home directory is /home/lim.

    • The LIM DBA account is at least a 50gb partition.

    • Network is setup and working with DNS and SMTP.

    • User accounts setup for each user that will be using XMIM.

    • A basic understanding of UNIX system commands and administration.

  2. To begin the installation, go to the "Downloads" Web page on the LIM (www.lim.com) Web site, then go to the Web page for the latest "Solaris MIM Server System and Binary". Right-click on the link for the latest download (e.g., Version 4.6.20) and select Copy Shortcut from the menu. Paste the shortcut into a command window after the wget command.

    wget http://www.lim.com/download/mimserver/rel46.sys
  3. Enter the following command:

    gunzip -c rel46.sys|tar xvf -
  4. Copy the download script and “dot” files from the templates directory:

    cp -p templates/get_data.ksh
    cp –p templates/.profile .profile
    cp -p templates/.cshrc .cshrc 
    cp -p templates/.limrc .limrc 
    cp –p templates/.xmimrc .xmimrc
  5. Modify setup files

    Modify $LIMHOME/.limrc to match your configuration. This file is used by most scripts to set environments. Set the lines below to the appropriate values. Be sure to leave in the quotes surrounding CUSTNAME and use a name that identifies your company.

    # This is where the MIM system resides (default /home/lim)
    LIMHOME=/home/lim
    # CUSTNAME will be used in the Subject of email notifications and should be
    # descriptive for your Company, System and DB. Please replace Customer Name.
    CUSTNAME="Customer Name - `uname -n`$PORT"

    If /home/lim is not the base directory for the LIM applications you will have to modify some files. If you are using /home/lim, proceed to step 5.

    You will need to replace "/home/lim" with the name of the LIM home directory.

    The files to modify are:

    $LIMHOME/.cshrc (if using csh as your shell)
    (change setenv LIMHOME /home/lim
    
    $LIMHOME/jmim/jmim/config/config.sh
    (change export XMIMHOME=/home/lim)
  6. Boot/shutdown rc scripts

    Copy the MIM server startup script to the rc directories. You must log in as the user root to perform this task.

    su - root 
    cd /etc/init.d 
    cp -p $LIMHOME/templates/xmimserver .
    cd /etc/rc0.d; ln ../init.d/xmimserver K07xmimserver 
    cd /etc/rc2.d; ln ../init.d/xmimserver S98xmimserver

    If you are adding more than one server you will need to specify the port number. For example:

    su - root 
    cd /etc/init.d 
    cp -p $LIMHOME/templates/xmimserver xmimserver4200
    cd /etc/rc0.d; ln ../init.d/xmimserver4200 K07xmimserver4200 
    cd /etc/rc2.d; ln ../init.d/xmimserver4200 S98xmimserver4200

    where xmimserver4200 is the additional server.

    If /home/lim is not the base directory or the user "lim" is not the owner of the installation, you will need to modify two lines with the appropriate values:

    vi /etc/init.d/xmimserver

    Make changes as needed to these two entries:

    LIMHOME=/home/lim 
    LIMUSER=lim

    Exit from root user:

    logout

    Exit from the lim user, then log back in to set new environment:

    logout su – lim
  7. Startup the server

    The application will require a license in order to run. Please obtain the hostid and hostname of the system by typing:

    hostid 
    hostname

    The License Key can be obtained by calling Customer Support at 1-800-LIM-XMIM (1-800-546-9646) +512-346-1618 or email support@lim.com and specifying the displayed hostid and hostname. The license will be emailed, faxed or verbally transmitted. To install the license, issue the following command and follow the instructions.

    From the $LIMHOME directory type:

    add_id

    Once the license is installed, startup the MIM server. The server will start automatically when the system boots and shutdown when the system is halted.

    start.server

    To check the licenses that were installed, you may run the list_ids command-line application on the server. list_ids will return a list of the licenses that are available for the license file specified in the “xmimrc” file for the current user. To run list_ids enter:

    list_ids
  8. Setup and schedule the update process.

    This update process will:

    • On error, send mail to the user specified in the .limrc file.

    • On a successful update, send mail to the user specified in the .limrc file.

    • If there are no update files waiting to be run, it will run but not produce any output or email.

    Modify the file get_data.ksh:

    vi get_data.ksh

    Comment/uncomment the lines for the appropriate update method: ftp or wget:

    doftp
    # dowget

    If this is an FTP account, create a .netrc file for accessing the LIM FTP server. You will need to obtain the login and password from LIM Customer Support replacing the XXXs with the appropriate values.

    echo "machine ftp.lim.com login F8XXX password XXXXXXXX" > .netrc 
    chmod 600 .netrc

    Test the FTP access. If the access fails, contact LIM Customer Support for help in troubleshooting. The most likely cause will be a proxy server that will require special scripting or network access problems.

    ftp ftp.lim.com

    If the FTP access works correctly you will be logged into your FTP account on the LIM FTP server. Quit FTP.

    This script that runs the update process cron_updates.sh produces no output when there are no updates to pickup. The script should be scheduled to run once an hour.

    Invoke the cron editor:

    crontab –e

    Add the following entry:

    48 * * * * /home/lim/cron_updates.sh
    

    /home/lim should be the value that has been set to LIMHOME.

  9. Setup user accounts for each user that will be using the XMIM GUI.

    For each user account that has been setup, copy the $LIMHOME/templates/.cshrc file to the user’s home directory and replace the value of LIMHOME as needed. Create a crontab entry for each user by adding the following:

    17 * * * * /home/lim/jmim/jmim/bin/sol/job_cron_trigger.sh
    

    /home/lim should be the value that has been set to LIMHOME.

    By default, date outputs are in US format. To change date outputs to UK format do the following for each user’s profile:

    Set the environmental variable XMIM_LOCALE to EU.

  10. Setup printer access for XMIM users using HP Jetadmin (native PC applications will use printers defined on PC).

    Install jetadmin from $LIMHOME/tools/sol/sold615.pkg

    See $LIMHOME/tools/sol/sold615.pkg,README for installation instructions.

    Setup default system printer and add entry to each users .cshrc to define default printer for user by setting LPDEST to desired printer name if it is not the system default.