WebSphere Load Balancer para IPv4 e IPv6
             Sistema operativos: AIX, HP-UX, Linux, Solaris, Windows

             Personalice la tabla de contenidos y los resultados de la búsqueda

Ejemplo: implementación de asesores estándar

En el ejemplo siguiente se muestra cómo utilizar un asesor personalizado estándar.

Este código fuente de ejemplo es similar al asesor HTTP de Load Balancer estándar. Funciona de este modo:
  1. Se emite una petición de envío, un mandato "HEAD/HTTP".
  2. Se recibe una respuesta. No se analiza la información, pero la respuesta hace que el método getLoad termine.
  3. El método getLoad devuelve 0 para indicar que la operación se ha realizado con éxito o -1 para indicar un error.

Este asesor opera en modalidad normal, de modo que la medida de carga se basa en el tiempo transcurrido en milisegundos necesario para efectuar las operaciones de apertura, envío, recepción y cierre del socket.

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;                               // habitualmente una rutina vacía
    } 

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

    public int getLoad(int iConnectTime, ADV_Thread caller) {
      int iRc;
      int iLoad = ADV_HOST_INACCESSIBLE;           // inicializar en inaccesible

      iRc = caller.send(ADV_SEND_REQUEST);         // enviar la petición HTTP al
                                                   // servidor
      if (0 <= iRc) {                              // si el envío es satisfactorio
        StringBuffer sbReceiveData = new StringBuffer("");      // asignar un almacenamiento intermedio
                                                                // para la respuesta
      iRc = caller.receive(sbReceiveData);         // recibir el resultado

      // analizar el resultado aquí si lo necesita 

      if (0 <= iRc) {                              // si la recepción ha sido satisfactoria
        iLoad = 0;                                 // devuelve 0 para la operación correcta
      }                                            // (la base pasa por alto el valor de carga del asesor
    }                                              // en modalidad normal)
    return iLoad;
  }
} 



Referencia relacionada
Ejemplo: asesor de ejemplo
Tema de referencia    

Condiciones de uso | Comentarios

Última actualización: 31 de julio de 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