propia conexión. En otras palabras, la ejecución de una transacción significa el
establecimiento de una conexión con la base de datos y la terminación de esta
conexión sólo después de unas cuantas sentencias de SQL. Este proceso de
establecer e interrumpir una conexión resulta muy costoso. Conlleva la creación de
un agente de DB2 Connect, el establecimiento de una conexión con la red entre
este agente y el servidor de DB2 y la creación de una hebra de DB2 en el servidor.
Para las conexiones con una ejecución más larga, estos costes se amortizan sobre
todas las transacciones ejecutadas en esta conexión, pero para una transacción Web
habitual, estos costes suelen superar el coste de la ejecución de la propia
transacción.
La agrupación de conexiones es una técnica que permite la reutilización de una
infraestructura de conexiones establecida para conexiones posteriores. Cuando se
inicia una instancia de DB2 Connect, se crea una conexión de agentes de
coordinación. Cuando llega una petición de conexión, se asigna un agente a esta
petición. El agente se conectará al servidor de DB2 y se creará una hebra en DB2.
Cuando la aplicación emite una petición de desconexión, el agente no pasa esta
petición al servidor de DB2. En lugar de ello, el agente vuelve a dejarse en la
agrupación. El agente de la agrupación sigue en posesión de la conexión con el
servidor de DB2 y la hebra de DB2 correspondiente. Cuando otra aplicación emite
una petición de conexión, este agente se asigna a esta nueva aplicación. Para
garantizar un funcionamiento seguro, se pasa a la hebra de DB2 información sobre
la identidad del usuario y ésta, a su vez, realiza la autentificación del usuario.
La agrupación de conexiones de DB2 Connect proporciona una mejora notable del
rendimiento en estos entornos. DB2 Connect mantiene conexiones abiertas con la
bases de datos en una agrupación disponible. Cuando un cliente solicita una
conexión, ésta puede proporcionarse desde esta agrupación de conexiones
disponibles. La agrupación de conexiones reduce de forma notable la actividad
general que suele ser necesaria para abrir y cerrar estas conexiones.
La agrupación de conexiones resulta transparente para las aplicaciones que se
conectan al sistema principal a través de DB2 Connect. Cuando una aplicación
solicita la desconexión del sistema principal, DB2 Connect descarta la conexión de
entrada con la aplicación pero conserva la conexión de salida con el sistema
principal de una agrupación. Cuando una aplicación nueva solicita una conexión,
DB2 Connect utiliza una de la agrupación existente. Al utilizar la conexión ya
existente, se reduce el tiempo de actividad general de la conexión, así como el
elevado coste de conexión de la CPU en el sistema principal.
Los agentes de DB2 Connect pueden encontrarse en uno de estos dos estados:
desocupado o activo. Un agente está activo cuando está ejecutando trabajo para
una aplicación. Una vez ha finalizado este trabajo, el agente pasa a estado
desocupado en espera de recibir más trabajo de la misma aplicación o de otra
distinta. Todos los agentes desocupados se guardan juntos en lo que se conoce
como la agrupación de agentes desocupados. El tamaño de esta agrupación puede
configurarse utilizando el parámetro de configuración NUM_POOLAGENTS. Este
parámetro indica el número de máximo de agentes desocupados que debe
mantener el sistema. Establecer este parámetro en cero equivale a desactivar la
función de agrupación de conexiones.
DB2 Connect no establece conexiones con la base de datos hasta que no recibe la
primera petición del cliente. De forma alternativa, también pude rellenar la
agrupación de agentes desocupados antes de que los clientes realicen una petición.
La agrupación puede rellenarse durante el arranque utilizando el parámetro de
configuración NUM_INITAGENTS. Este parámetro determina el número de
98
Guía del usuario