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:
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.
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.
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.
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:
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:
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.
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.
A continuación se indican los métodos de clase base:
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.
/opt/ibm/edge/lb/servers/lib/CustomAdvisors/
<raíz_instalación>ibm\edge\lb\servers\lib\CustomAdvisors
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: