I am a little confused about the connection manager setup, the documentation here http://www.igniterealtime.org/projects/openfire/connection_manager.jsp says that the user connects to connection manager which in turn connects to jabber server. This doesn’t really make sense, here is how i think i should work
User client->example.com (load balancer)->3(x) connection managers->jabber server
one may indeed want to use a load balancer in front of the connection managers.
But one can use also DNS based round robin load balancing by spending 3 public IP addresses for 3 CMs.
With Java NIO and clustering support CMs are likely not used. They were introduced when Openfire (named Wildfire) was able to handle only 5000 concurrent users.