![[z/OS]](../images/ngzos.gif)
Valores de regulador MDB para los beans controlados por mensajes en z/OS
Puede ajustar varios valores del "regulador MDB" para controlar la cantidad de trabajo MDB que el servidor procesa en un determinado momento.
Regulador MDB - umbrales alto y bajo
El soporte de regulador MDB mantiene el recuento del número actual de mensajes en proceso para cada puerto de escucha.
- Si el recuento en proceso es menor o igual al valor del umbral alto, un registro de trabajo se coloca en la cola WLM.
- Si el recuento en proceso excede el valor de umbral alto, la hebra de agente colas que ejecuta el MRH se bloquea, entrando en un estado de espera. Es decir, el regulador se está "bloqueando".
El recuento en proceso se reduce en 1 siempre que se informa al controlador que se ha completado un registro de trabajo para este puerto de escucha (tanto si la transacción de aplicación se ha comprometido como si no lo ha hecho). Después de que se reduzca, el recuento en proceso se contrasta con el valor de umbral bajo de este puerto de escucha. Si el recuento en proceso se reduce hasta alcanzar el valor de umbral bajo, la hebra de agente de colas bloqueada previamente se activa de nuevo (recibe la notificación). En este punto, se pueden poner en la cola WLM los registros de trabajo nuevos. Es decir, el regulador se ha "liberado".
Los valores de umbral alto y umbral bajo se establecen externamente mediante un valor, el parámetro Número máximo de sesiones del puerto de escucha. El valor de umbral alto se establece internamente en un valor igual a Número máximo de sesiones, definido externamente. El valor de umbral bajo se calcula y establece internamente mediante la fórmula: umbral bajo = (umbral alto / 2), con el valor redondeándose por lo bajo al entero más próximo.
- El controlador empieza a procesar otro mensaje, el recuento en proceso se establece en 3, lo que excede el umbral superior y hace que la hebra del controlador se detenga hasta que se alcance el umbral inferior.
- Se devuelve el MDB (bean controlado por mensaje) en el sirviente del primer mensaje y el recuento en curso desciende de 3 a 2; por lo tanto, NO se ha alcanzado el umbral inferior.
- Se devuelve el MDB en el sirviente del segundo mensaje y el recuento en curso desciende de 2 a 1. Se alcanza el umbral inferior y continúa el proceso de mensajes y su asignación a la SR.
No obstante, si el servicio de escucha de mensajes se ha configurado con la propiedad personalizada de MDB.THROTTLE.THRESHOLD.LOW.EQUALS.HIGH definida y establecida en un valor de "true", el valor de umbral bajo se establece internamente en el valor de umbral alto (que es la propiedad Número máximo de sesiones, establecida externamente, del puerto de escucha).
Regulador MDB - ajuste
Debe establecer el valor "Número máximo de sesiones" del puerto de escucha en el doble del número de hebras de trabajo disponibles en todos los sirvientes del servidor escalable (2*WT) para que, si tiene una hebra de trabajo disponible en algún sirviente, no dejarla desocupada debido a un regulador MDB bloqueado. Es decir, no es deseable tener un cola WLM vacía, un hebra de trabajo de sirviente disponible y un regulador bloqueado.
- Existe una hebra de trabajo de sirviente libre
- No hay nada en la cola WLM
- Existe una referencia de mensaje que se ha examinado pero para la cual no se ha añadido una solicitud de trabajo a la cola WLM (el regulador se ha bloqueado en su lugar)
Asimismo, si se establece el valor de umbral alto en 2*(WT+N), puede garantizar que, en el momento de que una hebra de trabajo de sirviente se libera y libera al regulador, existe un registro de reserva de N mensajes procesados previamente y pendientes en la cola WLM listos para su asignación. Sin embargo, si se establece un valor muy alto se producirá el problema de sobrecarga de cola WLM que se quería evitar mediante la utilización del regulador. Tenga en cuenta que este escenario supone que la cola (o el tema) está totalmente cargada con mensajes que se deben procesar.
Por consiguiente, el incremento del valor de umbral alto permite que el servidor cree un pequeño registro de reserva de mensajes procesados previamente que están en la cola WLM si se produce un pico de carga de trabajo. Sin embargo, si se incrementa el valor de umbral alto también se aumentan las posibilidades de que un registro de trabajo de un determinado mensaje exceda el tiempo de espera de que la aplicación se pueda asignar con el mensaje proporcionado. Es decir, es posible que el servidor alcance el Límite de tiempo de espera de MDB. El final el mensaje específico se vuelve a enviar al servidor, pero sólo más tarde y el proceso realizado hasta ese momento se echa a perder. Asimismo, un valor de umbral muy alto omitiría eficazmente la función del regulador MDB, en cuyo caso la cola WLM podría sobrecargarse y se generaría un error en el servidor.
Regulador MDB - ajuste alternativo
Aunque el servidor escalable se ha diseñado con el objetivo de maximizar el rendimiento, es posible utilizar los valores de puerto para lograr otros objetivos de la gestión de carga de trabajo.
Por ejemplo, un valor de umbral alto de ‘1' garantiza que los mensajes se procesen en el orden en que se reciben en el destino.
Pueden darse otras razones empresariales, basadas en la capacidad u otros factores, para limitar un determinado puerto de escucha a mucha menos simultaneidad que a la que el servidor daría soporte de otro modo. Aunque se trata ciertamente de una configuración soportada, ésta puede hacer que el regulador se bloquee cuando haya hebras de trabajo desocupadas disponibles.
Ejemplo de regulador MDB
Suponga que el servidor está configurado con el valor de número máximo de instancias de servidor establecido en 3 y con el perfil de carga de trabajo de IOBOUND. Dispone de dos CPU y, por lo tanto, WebSphere Application Server creará seis hebras de trabajo por sirviente. La aplicación (un único MDB correlacionado con una cola) maneja todos los mensajes con relativa rapidez (así que hay menos riesgo de tiempo de caducidad excedido) y se desea que el tiempo total desde la llegada de un determinado mensaje a la cola MDB hasta el final de la asignación MDB de este mensaje sea lo más pequeña posible.
Para proporcionar un tiempo de respuesta rápido a una avalancha de trabajo, debe optar por un registro de reserva más grande. Decide establecer el valor de número máximo de sesiones de puerto de escucha en 100 = 2 * (3 * 6 + 32).