Internet Cluster Manager "ICM Hostname" completely ignored

Hello,

we are setting up a domino cluster made by 2 node.

Each node is configured as following:

  • 3 notes ports (TCPIP, CLUSTER, ICM) each with its own ip address defined in notes.ini

  • Both HTTP and ICM task running at the same time

  • ICM uses ICM Notes port

  • ICM Hostname is set to cluster.domain.com

  • HTTP is set up to bind to hostname (server1.domain.com on first node and server2.domain.com on second node)

The DNS is set up so that cluster.domain.com is a round robin entry that points to the 2 ip addresses of the ICM port

Problem:

In the browser, we type cluster.domain.com. We hit one of the ICM running in the cluster.

The browser is now redirected to server1.domain.com (this is already bad)

Even worse, the links in the pages served by server1.domain.com all points to server1.domain.com and not (As I suppose they should) to cluster.domain.com

So all in all my question is. What is the field ICM Hostname used for and how does ICM need to be setup to ensure that all http request (including the address in the browser) always point to the ICMs (cluster.domain.com)

For what I have seen so far, HTTP server never uses the value specified in the ICM Hostname. It simply generates urls based to the value of Internet protocols->HTTP->Hostname(s)

I have already tested a scenario where ICM is running outside the cluster. It works fine, but again, here the trick is the DNS cluster.domain.com points to ICM and that both HTTP nodes are setup with hostname=cluster.domain.com (with binding disabled)

Thanks in adavance for any help

Subject: Internet Cluster Manager

First, to answer your questions:

  1. What is the field ICM Hostname used for →

The administration help says:

If the page that a Web server displays to a client includes links to other databases, the Web server includes the host name of the ICM in the URLs to those databases in the following instances:

When generating URLs to databases on the same server as the original database

When generating URLs to databases on different servers if there are replicas of those databases on the server that contains the original database

This ensures that users accessing those links go through the ICM.

Note In cases not mentioned above, you can use the Redirect URL command to create links to other servers.

Unfortunately this is not exactly right. The web server includes the host name of the ICM in URLs to other databases if the other databases have multiple replicas within the cluster. This does make a lot of sense - there is no point to using the services of the ICM for databases that have only one replica in the cluster.

  1. and how does ICM need to be setup to ensure that all http request (including the address in the browser) always point to the ICMs (cluster.domain.com)

Please note that the answer to question 1 above only refers to URLs to other databases, not the current database! The ICM was designed on the referral model. The original URL that the end user uses in their browser (and which should be their favorite or bookmark) is the URL of the ICM. After the ICM refers the browser to the most appropriate server, all URLs generated in that session are server specific.

This works very well for performance of the ICM since it is involved only during the initial connection. But it only works well for failover if the browser never saves any of those intermediate URLs and only if the end user uses the original favorite or bookmarked URL when a server fails.

This is an inherrent problem of the use of the referral model. We’re sorry if this is not meeting your needs.

However, you didn’t include sufficient information in your post to offer other solutions. If all or a subset of the databases being served by your site have replicas on all or a subset of the servers in your cluster, a better solution would be a network sprayer configured with connection stickyness. In such a configuration the network sprayer could select any server in the server group for the IP address or URL entered and the request would be honored. Since this does not involve referral, the end user never sees any of the names or IP addresses of the specific servers and failover among the servers is transparent (as long as authentication supports LTPA)

This solution solves the referral problems but it does not by default know the load on any of the servers. The sprayer can be configured to work on active - passive mode or can be configured to distribute connections evenly across servers. If the servers are matched in power and carry the same general load, this even distribution of connections works very well. If you really need however to distribute connections based on load, some network sprayers offer apis to allow customers to determine which server to connect to. It is possible to consider writing code for a sprayer that interrogates Domino servers to determine their load and which server has a replica. This solution would provide all the power of the ICM with none of the disadvantages.

Subject: Internet Cluster Manager

Thanks,

your explanation make sense. I have got it working with ICM and its limitations