Go to my homepage
Session Tunes
Black Book
Great Apps
Downie Street
Music & Friends

Go to my homepage

How to Build NIMS 3.0 in a 2 Node NetWare 6 Cluster

Back in the spring of 2002 no documentation existed to explain how to build Novell's NIMS 3.0 in a cluster. It had to be possible. Well, I was figured it and submitted this bit of documentation to Novell. It was published by Novell as a Cool Solutions article.

(Names used below are descriptive.)
Fast Track
NIMS is installed on two servers but only one Messaging Server
configuration is used.  Mailstore is moved from default location
sys:novonyx\mail to a clustered volume.  Select and configure
*one* Messaging Server and it's NMAP agent to reference the mailstore 
location on the clustered volume, the cluster virtual server and
force the IP address to that of the virtual cluster server.  
Configure the cluster resource load script as per your needs 
and load NIMS with DDB and MSGSRV rather than IMS:

 ddb -s:\TREE_NAME\O\OU\virtual_cluster_server

Where "O\OU\" is the path down your tree to the virtual cluster
server referenced in the selected messaging server.  In the cluster 
resource unload script NIMS can be inloaded as per the documentation.

Slow Track

1.  Build the 2 node cluster (Node1 & Node2)
    - assume they are located in O=mycompay.OU=servers

2.  Assume the cluster is called simely "Cluster".

3.  Create a pool called "PoolA" and add a volume to it called "CLVol1"
    - there will now be an object called "Cluster_PoolA_Server" with
      the IP address you specified (

4.  Create a cluster resource called NIMS with a load script to
    activate PoolA, mount CLVol1 and add the seconday IP of, 
    and an unload script to reverse that.
    - load script
       nss /poolactivate=PoolA 
       mount CLVol1
       add secondary ipaddress
    - unload script
       nss /pooldeactivate=PoolA /override=question
       del secondary ipaddress=

4a. In the alternative to creating a cluster resource called NIMS you could
    simply build upon the cluster resource PoolA_Server (substitute
    accordingly below).

5.  Bring the NIMS cluster resource online for Node1 and create a
    directory on CLVol1 that will contain the NIMS message store

6.  Install NIMS on Node1, electing to "Configure Server for NIMS"
    - take note that you will have an container called "Internet Services"
      which in turn holds the NIMS messaging container "Node1 Messaging Server"
      which in turn contains the various agents
    - make certain NIMS is **NOT** loaded in autoexec.ncf
    - patch NIMS as may be required
    Do the same on Node2

7.  Copy the message store from the default sys:novonyx\mail to the 
    cluster volume locations (CLVol1:nims) and rename original to 
    sys:novonyx\mail-orig (to be safe and to know you're not using
    the original)

8.  Of the 2 Messaging Server objects resulting from the 2 NIMS installs
    pick one to configure (Node1 Messaging Server).  The other one will
    not be used.  Using NWADMIN, in the Identification details set:
    - NetWare Host: Cluster_PoolA_Server
    - Temp Directory: CLVol1:nims\mail
    - DBF Directory: CLVol1:\nims\mail\dbf
    - set the Connection Manager to the object in the same OU and
      check the Conn. Mgr. box
    - chek the Distributed processing disabled box
    In the Status details, go to Advanced, specifiy the IP Address of
    the virtual server Cluster_PoolA_Server (  Check
    - Force Server IP Address to
    - Force agent to bind to specified address only (optional)

9.  Configure the NMAP Agent to reference the appropriate directories:
    - Message store: CLVol1:\nims\mail\users
    - Spool Directory: CLVol1:\nims\mail\spool
    - SCMS Directory: CLVol1:\nims\mail\scms

10. Create and configure a NIMS cluster resource object.  The whole trick
    is in the way you load NIMS which is *not* to use the IMS command but 
    to use DDB followed by MSGSRV.  DDB gets passed the switch "-s:" that 
    tells it to load the values associated with the specified messaging 
    server. Then MSGSRV will load the balance of the NLM's specified in 
    that messaging server.  The syntax is:

     ddb -s:\TREE_NAME\O\OU\virtual_cluster_server
    Where "O\OU\" is the path down your tree to the messaging server.
    Adjust the cluster resource scripts as in the examples below:
    - load script
       nss /poolactivate=PoolA 
       mount CLVol1
       add secondary ipaddress
       ddb -s:\mytree\mycompany\servers\Cluster_PoolA_Server
    - unload script
       unload msgsrv
       unload ddb
       unload syslogd 
       nss /pooldeactivate=PoolA /override=question
       del secondary ipaddress

    Note that with 3.1.x the unload script can use simply "ims unload" 
    rather than unloading MSGSRV, DDB, SYSLOGD separately and sequentially.

Martin Gendell for the DDB -s: details, without which I'd still be strugling
Rodney Price for all sorts of additional details.

Revision 3, May 17, 2002

Ken Brown
(kbrown <at> trentu.ca)
Computing Services
Trent University
Peterborough, Ontario