ICM and URL reference = great server task good for nothing

Heya … after struggling for days now, I found that a simple tiny feature cannot be implemented for ICM so that it will become useful. Not in R5, not R6 … why the hell are we loving Domino, I’m not sure now …

Actually I found that this should be a Domino HTTP feature: being able to call http://host.domain.com and receive a page in which all relative links point to http://icm.domain.com. Why doesn’t ibm do something about this ? I read something about session persistance … ok, let me worry about it, as admin, developer, whatever the hack I am.

Just made available this and not force me to change all relative links into hardcoded ones in order to point them back to the ICM host name.

I saw several posts about this and none relevant answer or hack which may solve this issue.

good work IBM, you’d better remove this ICM from Domino since it’s actually a piece of crap…why don’t you finish the job and give us a true HTTP load balancer and cluster manager ? What’s so hard to make the Domino HTTP server return pages with relative links to whatever hostname we want ?

Some friend of mine told me that this would be something similar to Apache’s mod_rewrite module, is it so hard to make this work ?

I’m so angry, I’ve been working with Domino since R4. In R5 you’ve added ICM but not even touched it by means of above improvements for R6.

Remove ICM and leave us alone to ensure HTTP load balancing by other means like buying expensive load balancers !

Subject: ICM and URL reference = great server task good for nothing

Sounds like you have done your homework but…I was flicking through the help and the following article appears to suggest that you can set the server to reference the ICM rather than itself. I havn’t done it so ignore me if you have tried and failed but for what it is worth; it looks like the field “ICM hostname” within the server document under the Internet Cluster Manager tab is the key. If not populated then the server does not generate URL’s which reference the ICM.

Hope it helps.


Generating URLs that refer to the ICM  



The Domino Web server in a cluster reads the Server document to find the host name of the ICM. The Web server then generates URLs that refer to the ICM. The ICM accepts and processes all URLs supported by the Domino Web server. These include URLs that do the following:

Open servers, databases, and views

Open forms, navigators, and agents

Open, edit, and delete documents

Open documents by name from a view

Open image files, attachments, and OLE objects

Create search queries

The following conditions can affect the way the ICM generates URLs:

If a URL includes a path, the ICM may not be able to resolve this URL to a single database because multiple servers could contain a database with the same path and file name but with different replica IDs. When this occurs, the ICM displays a list of the possible databases from which the user can choose the correct database.

If a URL includes a replica ID, the ICM may not be able to resolve this URL to a single database if there are multiple replicas of the database on a server, as could be the case with selective replicas. When this occurs, the ICM redirects the client request to a server that contains at least one replica of the requested database, and the Web server selects the replica to present to the user. To access a specific replica, users must specify the path of the replica.

If a URL includes a NoteID, the ICM may give incorrect results when processing the URL. This is because an object's NoteID may not be the same in all replicas. Unlike a NoteID, a Notes object name and universal ID are identical in all replicas of a database.

Subject: RE: ICM and URL reference = great server task good for nothing

well … guess what, it doesn’t work :slight_smile:

today I am more calm as you see, however I’ve read all public articles about ICM, no need to quote from help :slight_smile:

This is why I am stating that ICM it’s actually a piece of crap… if the Domino Web server does not allow me to specify that whatever hostname the URL is made to, the server should be able to return a page with other hostname (in this particular case this would be the ICM hostname).

All this because it’s common sense to use relative links in apps. Then if such apps are ported to a clustered environment you need to make hard-coded links out of the relative ones if you want to use only one hostname and not www1, www2 … wwwN, where N → infinity :slight_smile:

c’mon, ibmers, give me a clue, an internal hack as to force a Domino server to do this:

  1. receive an URL (actually the redirection from ICM) by http://host1.dom.com

  2. the Web server receive, aknowledge and respond to the client with the page in which all relative links point to http://icm.dom.com

you can send this hack at “sigpwr at gmail dot com”, I won’t tell anyone :slight_smile:

Is this so hard to do ???

Subject: RE: ICM and URL reference = great server task good for nothing

I know I am adding this late but I got his working and I want to be sure any one searching on ICM and URL or Server Name can find this article.

The ICM is simply a redirector between backend HTTP servers. To get the URL server name to remain the same (as your ICM name) regardless of the actual backend server I did this:

  1. Assign a second IP to each of the servers in your cluster. (ie: Server1 - 128.128.2.1, Server2 - 128.128.2.4)

  2. In your DNS server you need to enter multiple DNS entries with the name of your ICM hostname in step 4. Each Name will point to the Second IP on each of the servers in your cluster. (ie: icmnet - 128.128.2.1, icmnet - 128-128.2.4)

  3. Created a domino port to be used by the ICM (ie:PortICM). Point to the actual pc host name used in windows. Look in the documentation of Notes.ini entries needed (the Notes.ini entries should assing the second ip address assinged to the server in step 1 ie: PortICM_TcpIpAddress=0,128.128.2.1).

  4. Entered the ICM information on the Server document under the Server Task tab for all HTTP servers in your cluster. Ensure the ICM host name is the same on all your servers in the cluster (ie: icmnet)

  5. On the HTTP tab under Internet Protocols on the server document enter your host name to match that of your ICM host name (ie: icmnet) and Enable the field Bind to Host Name.

  6. Restart your servers.

I beleive I have everything here. You DNS needs the ability to round robin the entries (so when one client request the address for icmnet it gets 128.128.2.1 and when the next client request an address for icmnet it gets 128-128.2.4 and so on.

Good luck. Like I said this worked for me.

Subject: RE: ICM and URL reference = great server task good for nothing

Dave - are you describing a setup with no dedicated ICM machine? Sounds like you are adding Internet Cluster Manager on the already notes clustered servers, but is there a dedicated ICM-only server involved?

Subject: RE: ICM and URL reference = great server task good for nothing

I worked days on this as well, trying to make it work as advertised. It does not. The help is very misleading as it’s written. I’d like to know if anyone has actually spoken with Lotus to get clarification. I may do it for my own curiousity. It does not work as the help says it does. Below is what I’ve posted.

(Keep in mind that where it references R5, it’s really meaning R5 or above. It was R5 documentation and talked about 4.6 as the comparison)

http://www-10.lotus.com/ldd/nd6forum.nsf/ShowMyTopicsAllFlatweb/40a3baa753ea1b3285256fa10072b483?OpenDocument