Crear asesores personalizados (personalizables)

El asesor personalizado (personalizable) es un trozo pequeño de código Java™ que se proporciona como archivo de clases y es llamado por el código base. El código base proporciona todos los servicios administrativos, como iniciar y detener una instancia del asesor personalizado, proporcionar estado e informes y anotar la información de historial en un archivo de anotaciones cronológicas. También notifica los resultados al componente del gestor. De forma periódica, el código base lleva a cabo un ciclo de asesor, donde evalúa de forma individual todos los servidores en su configuración. Empieza abriendo una conexión con una máquina servidor. Si se abre socket, el código base llamará al método "getLoad" (función) en el asesor personalizado. A continuación, el asesor personalizado llevará a cabo los pasos necesarios para evaluar el estado del servidor. En general, enviará al servidor un mensaje definido por el usuario y luego esperará una respuesta. (Se proporciona acceso al socket abierto para el asesor personalizado). A continuación, el código base cierra el socket con el servidor y notifica la información de carga al gestor.

El código base y el asesor personalizado puede funcionar en modalidad normal o de sustitución. La selección de la modalidad de operación se especifica en el archivo de asesor personalizado como parámetro en el método del constructor.

En modalidad normal, el asesor personalizado intercambia datos con el servidor y el código del asesor base calcula la duración del intercambio y calcula el valor de carga. A continuación, el código base informa de este valor de carga al gestor. El asesor personalizado sólo necesita devolver un cero (cuando es satisfactorio) o un valor negativo (cuando es erróneo). Para especificar la modalidad normal, el distintivo de sustitución en el constructor se establece en false.

En modalidad de sustitución, el código base no lleva a cabo las mediciones de tiempo. El código del asesor personalizado realiza todas las operaciones que desee para sus requisitos exclusivos y, a continuación, devuelve un número de carga real. El código base aceptará el número y lo notificará al gestor. Para obtener los mejores resultados, normalice el número de carga entre 10 y 1000, en donde 10 representa un servidor rápido y 1000 representa un servidor lento. Para especificar la modalidad de sustitución, el distintivo de sustitución en el constructor se establece en true.

Con esta característica, puede escribir sus propios asesores de forma que proporcionen la información exacta que necesite sobre los servidores. Con el producto Load Balancer se proporciona un asesor personalizado de ejemplo, ADV_sample.java.

Después de instalar Load Balancer, puede encontrar el código de ejemplo en:

Nota:
Si añade un asesor personalizado a Dispatcher o a cualquier otro componente de Load Balancer pertinente, debe detener y, a continuación, reiniciar dsserver (o el servicio en sistemas Windows) para que proceso Java pueda leer los nuevos archivos de clase de asesor personalizado. Los archivos de clase de asesor personalizado sólo se cargan durante el arranque. No es necesario detener el ejecutor. El ejecutor sigue en ejecución incluso cuando se ha detenido dsserver o el servicio.

Si el asesor personalizado hace referencia a clases Java adicionales, se debe actualizar la classpath en el archivo script de inicio de Load Balancer (dsserver, cbrserver, ssserver) de forma que incluya la ubicación.

Asesor WAS

Se proporcionan archivos de asesor personalizados de ejemplo específicamente para el asesor de WebSphere Application Server (WAS) en el directorio de instalación de Load Balancer.

Los archivos de ejemplo de asesor de WebSphere Application Server residen en el mismo directorio de ejemplos que el archivo ADV_sample.java.

Convenio de denominación

El nombre del archivo de asesor personalizado debe tener el formato "ADV_miasesor.java." Debe empezar con el prefijo " ADV_" en mayúsculas. Todos los caracteres subsiguientes deben indicarse en minúsculas.

Según los convenios Java, el nombre de la clase definida dentro del archivo debe coincidir con el nombre del archivo. Si copia el código de ejemplo, asegúrese de cambiar todas las instancias de "ADV_sample" dentro del archivo por el número nombre de clase.

Compilación

Los asesores personalizados se escriben en lenguaje Java. Utilice el compilador Java que se instala con Load Balancer. Durante la compilación aparecen referenciados los siguientes archivos:

La vía de acceso de clases debe apuntar al archivo de asesor personalizado y el archivo de clases base durante la compilación.

En sistemas Windows, un mandato de compilación de ejemplo es:

dir_instalación/java/bin/javac -classpath 
    dir_instalación\lb\servers\lib\ibmlb.jar ADV_fred.java

donde:

La salida de la compilación está en un archivo de clases, por ejemplo:

ADV_fred.class

Antes de iniciar el asesor, copie el archivo de clases en el directorio siguiente:

Nota:
Si lo desea, los asesores personalizados pueden compilarse en un sistema operativo y ejecutarse en otro. Por ejemplo, puede compilar el asesor en sistemas Windows, copiar el archivo de clase (en binario) en una máquina AIX y ejecutar aquí el asesor personalizado.

En sistemas AIX, HP-UX, Linux y Solaris, la sintaxis es parecida.

Ejecución

Para ejecutar el asesor personalizado, primero debe copiar el archivo de clases en el directorio de instalación adecuado:

Configure el componente, inicie la función de gestor y emita el mandato para iniciar el asesor personalizado:

dscontrol advisor start fred 123

donde:

Si el asesor personalizado hace referencia a clases Java adicionales, se debe actualizar la classpath en el archivo script de inicio de Load Balancer (dsserver, cbrserver, ssserver) de forma que incluya la ubicación.

Rutinas necesarias

Como todos los asesores, un asesor personalizado amplía la función del asesor base, denominada ADV_Base. Se trata de la base del asesor que en realidad efectúa la mayoría de las funciones del asesor, como informar de las cargas al gestor para que se utilicen en el algoritmo de peso del gestor. La base del asesor también realiza operaciones de conexión y cierre de sockets, y proporciona métodos de envío y recepción para que el asesor los utilice. El asesor sólo se utiliza para enviar datos y recibir datos en el puerto del servidor que se está asesorando. Para calcular la carga, se calcula la duración de los métodos TCP incluidos en la base del asesor. Un distintivo incluido en el constructor en ADV_base escribe encima de la carga existente la nueva carga devuelta desde el asesor, si se desea.

Nota:
La base del asesor proporciona la carga al algoritmo de peso a intervalos especificados en función de un valor fijado en el constructor. Si el asesor real no se ha completado y no puede devolver una carga válida, la base del asesor utiliza la carga anterior.

A continuación se indican los métodos de clase base:

Orden de búsqueda

Load Balancer primero busca en la lista de los asesores nativos que proporciona. Si no encuentra un determinado asesor aquí, Load Balancer lo buscará en la lista de asesores personalizados del cliente.

Denominación y vía de acceso

Asesor de ejemplo

La lista de programas de un asesor de ejemplo se incluye en Asesor de ejemplo. Después de la instalación, este asesor de ejemplo puede encontrarse en el directorio siguiente: