user manual

Chapter 7: Clustering web components 71
The Borland IIOP connector
locations where the web containers are running using the CORBA corbaloc
semantics. For example:
corbaloc::172.20.20.28:30303,:172.20.20.29:30304/tc_inst1
In the above corbaloc example string:
two TCP/IP endpoints are configured for a web container named "tc_inst1"
a web container with an object name of "tc_inst1" is running on host
172.20.20.28 with its IIOP connector at port 30303
there is another web container running with the same object name on host
172.20.20.29 with it's IIOP connector listening on port 30304.
For more information about setting the port attribute, go to Chapter 5, Web
server to web container connectivity.
The web server side IIOP connector converts this corbaloc string into CORBA
objects using orb.string_to_object and uses the underlying features of
VisiBroker to load balance across these "endpoints" specified in the corbaloc
string. There can be any number of endpoints.
Note All of the listed web containers do not have to be running for the load
balancing to function. The ORB simply moves on to the next endpoint until a
valid connection is obtained.
However, corbaloc based load balancing does require the web container's
IIOP connector be started at a known port and be available for corbaloc kind of
object naming. The following is a snippet of the web container IIOP connector
configuration that is required:
<Connector className="org.apache.catalina.connector.iiop.IiopConnector"
name="tc_inst1" port="30303"/>
This snippet starts the IIOP connector at port 30303 and names the Borland
web container object "tc_inst1". The port attribute is optional. However, if you
do not specify the port, a random port gets picked up by the ORB and you will
be unable to use the corbaloc scheme to locate the object.
Your organization can impose policies on how to name web containers and
the IIOP port or port ranges used.
Fault tolerance (failover)
Failover using osagent bind naming and corbaloc naming is automatic in both
cases. In corbaloc naming, the next configured endpoint in the corbaloc name
string is tried and so on in a cyclic fashion until all endpoints in the corbaloc
string are tried.
For osagent bind naming, the osagent automatically redirects the client to an
alternative (but equivalent) object instance.
Note If there is no object available to the osagent, or none of the endpoints
specified in the corbaloc name string are running, then the http request fails.