Sun GlassFish Enterprise Server v2.1.1 High Availability Administration Guide

Setting up RMI-IIOP Load Balancing and Failover

You can set up RMI-IIOP load balancing and failover for applications running in the application client container (ACC). Weighted round-robin load balancing is also supported.

ProcedureTo Set Up RMI-IIOP Load Balancing for the Application Client Container

This procedure gives an overview of the steps necessary to use RMI-IIOP load balancing and failover with the application client container (ACC). For additional information on the ACC, see Developing Clients Using the ACC in Sun GlassFish Enterprise Server v2.1.1 Developer’s Guide.

  1. Go to the install_dir /bin directory.

  2. Run package-appclient.

    This utility produces an appclient.jar file. For more information on package-appclient, see package-appclient(1M).

  3. Copy the appclient.jar file to the machine where you want your client and extract it.

  4. Edit the asenv.conf or asenv.bat path variables to refer to the correct directory values on that machine.

    The file is at appclient-install-dir /config/.

    For a list of the path variables to update, see package-appclient(1M).

  5. If required, make the appclient script executable.

    For example, on UNIX use chmod 700.

  6. Find the IIOP listener port number of at least two instances in the cluster.

    You specify the IIOP listeners as endpoints in Step 7.

    For each instance, obtain the IIOP listener port as follows:

    1. In the Admin Console’s tree component, expand the Clusters node.

    2. Expand the cluster.

    3. Select an instance in the cluster.

    4. In the right pane, click the Properties tab.

    5. Note the IIOP listener port for the instance.

  7. Add at least two target-server elements in the sun-acc.xml file.


    Note –

    Clustering features are not available in the developer profile. For information about profiles, see Usage Profiles in Sun GlassFish Enterprise Server v2.1.1 Administration Guide.


    Use the endpoints that you obtained in Step 6.

    If the Enterprise Server instance on which the application client is deployed participates in a cluster, the ACC finds all currently active IIOP endpoints in the cluster automatically. However, a client should have at least two endpoints specified for bootstrapping purposes, in case one of the endpoints has failed.

    The target-server element specifies one or more IIOP endpoints used for load balancing. The address attribute is an IPv4 address or host name, and the port attribute specifies the port number. See client-container in Sun GlassFish Enterprise Server v2.1.1 Application Deployment Guide.

    As an alternative to using target-server elements, you can use the endpoints property as follows:


    jvmarg value = "-Dcom.sun.appserv.iiop.endpoints=host1:port1,host2:port2,..."
    
  8. If you require weighted round-robin load balancing, perform the following steps:

    1. Set the load-balancing weight of each server instance.


      asadmin set instance-name.lb-weight=weight
      
    2. In the sun-acc.xml, set the com.sun.appserv.iiop.loadbalancingpolicy property of the ACC to ic-based-weighted.

      …
      <client-container send-password="true">
        <property name="com.sun.appserv.iiop.loadbalancingpolicy" value="ic-based-weighed"/>
      …
  9. Deploy your client application with the --retrieve option to get the client jar file.

    Keep the client jar file on the client machine.

    For example:


    asadmin deploy --user admin --passwordfile pw.txt --retrieve /my_dir myapp
    
  10. Run the application client as follows:

    appclient -client clientjar -name appname


Example 11–1 Setting Load-Balancing Weights for RMI-IIOP Weighted Round-Robin Load Balancing

In this example, the load-balancing weights in a cluster of three instances are to be set as shown in the following table.

Instance Name 

Load-Balancing Weight 

i1

100 

i2

200 

i3

300 

The sequence of commands to set these load balancing weights is as follows:


asadmin set i1.lb-weight=100
asadmin set i2.lb-weight=200
asadmin set i3.lb-weight=300

Next Steps

To test failover, stop one instance in the cluster and see that the application functions normally. You can also have breakpoints (or sleeps) in your client application.

To test load balancing, use multiple clients and see how the load gets distributed among all endpoints.