After reading the posts in this forum, as well as the R4/R5 forum, I discovered a lot of disappointment with the way clustered servers fail to generate URLs that point to the ICM. For example, in a two server cluster (server A and server B) with the ICM on server A using port 80 (and the HTTP task on server A using port 8080), the documentation says that URLs generated by either server will be converted so that they point to the ICM. Many posters have stated that it simply does not work this way.
After testing this configuration, I initially agreed that it did not function as described. However, after running some more tests, I discovered that it does work in certain situations. FWIW, here are my observations:
On opening a database:
The ICM seemed to function correctly when databases were initially opened. Sometimes I got server A and sometimes I got server B.
Conversion of URLs on server A and server B:
I tested three types of URLs: doclinks, view lists, and pass-thru html. The results are listed below.
Doclinks
If the doclink referred to a document in a different database, then the URL was modified so that it pointed to the ICM. If the doclink referred to a document in the same database, the URL was never modified.
Views
The documents listed in a view (assuming the view is displayed as HTML) appear as links. Mousing over these links, I could tell that the URLs were never modified. However, this wasn’t too surprising since all of the documents are contained within the same database.
Pass-Thru HTML
As a test, I created several links using pass-thru html. All of these were relative links that referred to documents in either the same database or other databases known to be on all servers in the cluster. In all cases, the URLs were never modified.
Bookmarking:
As expected, if a web user bookmarks a URL in their favorites list, the URL will point to the actual server, never to the ICM.
Conclusion
The only URLs that were consistently modified to point to the ICM were doclinks to documents in other databases. Doclinks to documents in the same database were never modified, nor were view listings. This behavior makes some sense, since there may be a performance advantage in accessing the same server where the database may still be open or cached. While this type of load balancing may not be the same as offered by other products, it may still be effective (and it is free, if you have Domino).
As for the behavior of relative links created with pass-thru html, I am a bit surprised. Since the html was a relative link to a document in a database, I would have thought that the server would generate URLs to the ICM in cases where the target document was in another database. However, links in pass-thru html were never modified.
Finally, it is possible that some change in the server configuration would alter these results. For example, I’m curious if the URL generation code is aware of the authentication style of the server: either name & password, session-based, or multi-server (SSO). It seems to me that if multi-server authentication is not being used, then there may be an advantage in having the URL point to the same server in order to avoid re-authenticating.