In last month's tip, I talked about Domino server clusters and described how they can greatly increase overall system reliability with little effort.
Domino clusters do have one significant drawback, however. They only work with the Notes client software. The clustering technology depends on the Notes client to maintain a cache of server cluster information, which Notes uses if a cluster member is unavailable.
What if you want to use a Domino cluster for Web service? With standard clustering, you are out of luck. Fortunately, Domino contains another feature that fills this hole. Internet Cluster Manager (ICM) is a piece of software that brings the benefits of clustered Domino servers to Web users. This tip contains an overview of ICM and provides some pointers for its use.
ICM is a Domino server task that is supplied as part of the Domino product, but is not enabled by default. ICM's job is to serve as a gatekeeper and redirection agent for Web traffic into a cluster. So browser requests from users first enter ICM, which redirects the requests to members of a Domino server cluster. If a member of a cluster stops working, ICM is aware of cluster membership and directs user traffic to another (running) cluster member. So the first step to setting up ICM is to set up a Domino cluster. ICM (logically) sits on top of a valid Domino cluster.
There are many possible topologies for a set of servers that form a Domino cluster and run the ICM task, including the following:
- ICM can run directly on one of the machines in a Domino cluster.
- ICM can run on more than one machine in a Domino cluster.
- ICM can run on a single server that is not part of the Domino cluster.
- ICM can run on multiple servers that are not part of the Domino cluster.
ICM can run on both/all members of a Domino cluster. This provides redundancy for ICM as well as the Domino Web servers. The problem with this topology (#2) is its complexity. Each computer is acting as both an ICM server and as a clustered Web server; ICM is pointing to itself. The two uses of the same server require multiple IP addresses (or IP ports) for the same machine. Administration of the servers becomes more complex, since each machine is functioning in two logically separate ways. This is an officially supported configuration, but I recommend against it.
Choice #4 provides high reliability for both the underlying Web servers and the ICM task that is managing user traffic to the cluster. Administration and troubleshooting is also simpler in this configuration.
The ICM configuration is defined in the Internet Cluster Manager section of the Server document. The detailed field settings for this feature are explained in Domino 6 Administrator Help / Contents / Clusters / Clustering Domino Servers That Run Internet Protocols / Configuring the ICM. Fill in the fields of the server document as explained.
You should treat one of the server's ICM settings as the "master," and then use the Get Configuration From option to copy these settings to the other three servers in the topology. Note that the clustered servers need the ICM information also, even though they will not be running the ICM software directly.
After setting the ICM configurations above, you can start the Domino ICM task on the ICM servers. For testing, you can start this task by typing LOAD ICM at the Domino server console. For general use, edit the NOTES.INI file on the ICM servers and add ICM to the line that begins with ServerTasks=.
For full details about Internet Cluster Manager, see Domino 6 Administrator Help / Contents / Clusters.
Chuck Connell is president of CHC-3 Consulting, which helps organizations with all aspects of Domino and Notes.
I think it would be nice to dig into the issues of failure...
What happens if the Web server fails? According to the Domino Administrator the user gets an error and will have to reactive a URL to the ICM. Is that really what it does? If so, I believe it is rather too simple.
Next, what happens if the ICM fails? Well, I can figure out what happens if the ICM fails if there is only one, but if there are more than one, will one of the others take over the request from the user? If the user will have to type in a URL manually (i.e., they need to know another address!) then it is also rather limited.
I hope you will make a follow up to the article covering these issues.
-- John D. If you would like to follow up on this tip with more in-depth scenarios as described in John's post, please submit your tip to SearchDomino.com.
Do you have comments of your own? Let us know.