WebSphere Load Balancer pour IPv4 et IPv6
Systèmes d'exploitation : AIX, HP-UX, Linux, Solaris, Windows

             Personnalisation de la table des matières et des résultats de la recherche

Exemple : Implémentation de conseillers standard

L'exemple ci-après montre comment utiliser un conseiller personnalisé standard.

Cet exemple de code source est similaire au conseiller HTTP standard de Load Balancer. Il fonctionne comme suit :
  1. Une demande d'envoi, une commande "HEAD/HTTP", est lancée.
  2. Une réponse est reçue. Les informations ne sont pas analysées, mais la réponse entraîne l'arrêt de la méthode getLoad.
  3. La méthode getLoad renvoie 0 en cas de succès ou -1 en cas d'échec.

Ce conseiller fonctionne en mode normal, de sorte que la mesure de la charge est basée sur la durée écoulée (en millisecondes) requise pour effectuer les opérations d'ouverture, d'envoi, de réception et de fermeture des sockets.

package CustomAdvisors;
import com.ibm.internet.lb.advisors.*;
public class ADV_sample extends ADV_Base implements ADV_MethodInterface {
  static final String ADV_NAME ="Sample";
  static final int ADV_DEF_ADV_ON_PORT = 80;
  static final int ADV_DEF_INTERVAL = 7;
  static final String ADV_SEND_REQUEST =
    "HEAD / HTTP/1.0\r\nAccept: */*\r\nUser-Agent: " + 
    "IBM_Load_Balancer_HTTP_Advisor\r\n\r\n";

  //-------- 
  // Constructor
    public ADV_sample() { 
      super(ADV_NAME, "3.0.0.0-03.31.00", 
            ADV_DEF_ADV_ON_PORT, ADV_DEF_INTERVAL, "", 
            false); 
      super.setAdvisor( this );
   } 

  //-------- 
  // ADV_AdvisorInitialize
    public void ADV_AdvisorInitialize() { 
      return;                               // usually an empty routine 
    } 

  //-------- 
  // getLoad 

    public int getLoad(int iConnectTime, ADV_Thread caller) { 
      int iRc; 
      int iLoad = ADV_HOST_INACCESSIBLE;           // initialize to inaccessible 
      
      iRc = caller.send(ADV_SEND_REQUEST);         // send the HTTP request to 
                                                   // the server 
      if (0 <= iRc) {                              // if the send is successful
        StringBuffer sbReceiveData = new StringBuffer("");      // allocate a buffer 
                                                                // for the response 
      iRc = caller.receive(sbReceiveData);         // receive the result 
      
      // parse the result here if you need to 

      if (0 <= iRc) {                              // if the receive is successful 
        iLoad = 0;                                 // return 0 for success 
      }                                            // (advisor's load value is ignored by 
    }                                              // base in normal mode) 
    return iLoad; 
  } 
} 



Référence associée
Exemple : Exemple de conseiller
Rubrique de référence    

Conditions d'utilisation | Commentaires

Dernière mise à jour : 31 juillet 2008 3:18:06 PM EDT
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.edge.doc/lb/info/ae/rprf_advexstand.html