Otra función clave es el método de asignar los agentes de coordinación a las
transacciones nueva en un entorno de compartimiento de datos. DB2 Connect
implementa un sofisticado algoritmo de programación a que utiliza la información
del Gestor de carga de trabajo (WLM) de OS/390 y z/OS. Esta información se
utiliza para distribuir la carga de trabajo entre los miembros de un grupo de
compartimiento de datos en función de los criterios establecidos en el WLM. El
WLM no sólo conoce la carga de cada miembro, sino también su disponibilidad.
Esto permite a DB2 Connect reasignar de forma transparente el trabajo de los
miembros que presenten fallos o estén sobrecargados a miembros que estén activos
e infrautilizados. El concentrador de conexiones de DB2 Connect se activa cuando
el número máximo de agentes lógicos (max_connections) se establece en un valor
superior al número de agentes de coordinación (max_coordagents).
La agrupación de conexiones evita el coste de establecer una conexión cuando una
aplicación que finaliza ya no la necesitará. En otras palabras, una aplicación debe
desconectarse antes de que otra pueda reutilizar una conexión de la agrupación.
De forma alternativa, el concentrador de conexiones permite que DB2 Connect deje
una conexión disponible para una aplicación tan pronto como otra aplicación haya
terminado una transacción y no necesita que la otra aplicación se desconecte. En
resumen, una aplicación sólo utiliza una conexión de servidores de bases de datos
y los recursos asociados del sistema principal y de DB2 Connect mientras tiene una
transacción activa. Tan pronto como la transacción finaliza, la conexión y los
recursos asociados quedan disponibles para que los utilice otra aplicación que
necesite ejecutar una transacción.
En las versiones anteriores de DB2 Connect, cada aplicación activa disponía de una
unidad susceptible de envío del motor (EDU), que gestionaba la conexión con la
base de datos así como las peticiones de las aplicaciones. Esta EDU solía
denominarse agente de coordinación. Cada agente de coordinación realizaba el
seguimiento del estado o contexto de la aplicación y la EDU. Cada EDU consume
una cantidad importante de memoria cuando aumenta el número de conexiones y
la conmutación de contexto entre los agentes provoca actividad general adicional.
En la arquitectura anterior, existe una relación de una a una entre las conexiones y
las EDU. Sin embargo, el concentrador de conexiones permite una conexión de
muchas a una entre las conexiones y las EDU. Es decir, la relación de las
conexiones (X) con las EDU (Y) es ahora X >= Y.
El concentrador de conexiones divide el agente en dos entidades, un agente lógico y
un agente de trabajo. El agente lógico representa una aplicación pero sin hacer
referencia a una EDU en concreto. El agente lógico contiene toda la información y
los bloques de control que una aplicación necesita. Si hay n aplicaciones conectadas
al servidor, habrá n agentes lógicos en el servidor. Los agentes de trabajo son EDU
físicas que ejecutan peticiones de aplicaciones pero que carecen de una conexión
permanente a una aplicación concreta. Los agentes de trabajo se asocian con los
agentes lógicos para realizar transacciones y una vez llegan al límite de la
transacción finalizan la asociación y vuelven a la agrupación disponible.
Un entidad conocida como asignador asigna los agentes de trabajo a agentes
lógicos. Es posible que las limitaciones en el número de descriptores de contexto
de archivos abiertos en determinadas plataformas den lugar a más de una
instancia del planificador cuando el número de agentes lógicos sobrepasa el límite
del descriptor de contexto de archivo.
Restricciones del concentrador de conexiones:
101
Capítulo 11. Rendimiento