2010-10-28 16 views

Respuesta

92

base de datos conexión agrupación es un método utilizado para mantener abiertas las conexiones a la base de datos para que puedan ser reutilizadas por otros.

Normalmente, la apertura de una conexión de base de datos es una operación costosa, especialmente si la base de datos es remota. Debe abrir sesiones de red, autenticarse, tener la autorización activada, etc. La agrupación mantiene activas las conexiones, de modo que cuando se solicita una conexión más tarde, se utiliza una de las activas con preferencia a tener que crear otra.

Consulte el diagrama siguiente para los siguientes párrafos:

+---------+ 
    |   | 
    | Clients | 
+---------+ | 
|   |-+ (1) +------+ (3) +----------+ 
| Clients | ===#===> | Open | =======> | RealOpen | 
|   | |  +------+   +----------+ 
+---------+ |  ^
       |   | (2) 
       |  /------\ 
       |  | Pool | 
       |  \------/ 
      (4) |  ^
       |   | (5) 
       |  +-------+ (6) +-----------+ 
       #===> | Close | ======> | RealClose | 
        +-------+   +-----------+ 

En su forma más simple, es sólo una llamada a la API similar (1) a una llamada API-conexión abierta, que es similar a la "real " uno. Esto primero verifica que el grupo tenga una conexión adecuada (2) y, si hay uno disponible, se le da al cliente. De lo contrario, se crea una nueva (3).

Del mismo modo, hay una estrecha llamada a la API (4) que en realidad no llamar a la verdadera estrecha conexión, sino que pone la conexión a la piscina (5) para su uso posterior. En algún punto, las conexiones en el grupo pueden ser en realidad cerrado (6).

Esa es una explicación bastante simplista. Las implementaciones reales pueden manejar conexiones a múltiples servidores y múltiples cuentas de usuario, pueden preasignar algunas líneas de base de conexiones para que algunas estén listas inmediatamente, y pueden cerrar conexiones antiguas cuando el patrón de uso se aquieta.

+3

¿De dónde saca el pequeño gráfico? –

+6

Lo hice desde cero (me parece tonto). Si desea ver algunos gráficos decentes, eche un vistazo a la respuesta de zengr. – paxdiablo

+0

Muchas gracias ... paxdiablo para explicación y gráfico. – sagar27

39

imágenes hablan más que mil palabras (paxdiablo dio una descripción impresionante):

alt text

Source

+15

Y aparentemente, las imágenes de _good_ también hablan unos cientos de piezas de arte ASCII :-) – paxdiablo

+0

guau, eso fue increíble, ¿cómo lo generaron? – zengr

+0

Muchas gracias ... zengr por la figura. – sagar27

0

Concepto de agrupación de conexiones no solo en Java sino en muchos lenguajes de programación. Crear un nuevo objeto de conexión es costoso, por lo que se crea y se mantiene un número fijo de conexiones en el ciclo de vida creando un grupo virtual Java Just (http://javajust.com/javaques.html) vea la pregunta 14 en esta página

Cuestiones relacionadas