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.
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).
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.
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.
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.
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
Enter the following command:
gunzip -c rel46.sys|tar xvf -
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
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)
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 |
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
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 |
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. |
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.
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.