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:
También notifica los resultados al consultor. 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 el socket, el código base llama 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, envía al servidor un mensaje definido por el usuario y luego espera 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 consultor.
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 consultor. 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 consultor. 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. Se proporciona un asesor personalizado de ejemplo para los controladores, ADV_ctlrsample.java. Después de instalar Load Balancer, puede encontrar el código de ejemplo en:
El nombre de 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_ctrlsample dentro del archivo por el nuevo nombre de clase.
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 classpath debe apuntar al archivo de asesor personalizado y el archivo de clases base durante la compilación.
En la plataforma Windows, un mandato de compilación puede se parecido al siguiente:
dir_instalación/java/bin/javac -classpath
<raíz_instalación>ibm\edge\lb\servers\lib\ibmlb.jar ADV_pam.java
donde:
La salida de la compilación está en un archivo de clases; por ejemplo:
ADV_pam.class
Antes de iniciar el asesor, copie el archivo de clases en el directorio siguiente:
En sistemas AIX, HP-UX, Linux y Solaris, la sintaxis es parecida.
Para ejecutar el asesor personalizado, primero debe copiar el archivo de clases en el directorio de instalación adecuado:
Inicie el consultor y luego emita este mandato para iniciar el asesor personalizado:
donde:
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 consultor para que se utilicen en el algoritmo de peso del consultor. 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.
A continuación se indican los métodos de clase base:
En primer lugar, los controladores examinan la lista de asesores nativos que se proporciona; si no encuentran un asesor específico en la lista, consultarán la lista de asesores personalizados.
La lista de programas de un asesor de ejemplo del controlador se incluye en Asesor de ejemplo. Después de la instalación, este asesor de ejemplo puede encontrarse en el directorio siguiente: