Soporte para la agrupación de conexiones JDBC y SQLJ
La agrupación de conexiones es compatible con IBM® Data Server Driver for JDBC and SQLJ.
La agrupación de conexiones ofrece las ventajas siguientes respecto a la gestión manual de conexiones físicas individuales:
- Reduce el número de veces que se crean nuevos objetos de conexión
- Promueve la reutilización de objetos de conexión
- Aumenta la velocidad con la que las aplicaciones pueden obtener conexiones
- Simplifica la tarea de gestión de objetos de conexión
Cómo funciona la agrupación de conexiones
La agrupación de conexiones es un sistema para almacenar en antememoria temporalmente conexiones físicas con fuentes de datos, que son equivalentes a hebras de servidor de datos. Cuando JDBC reutiliza conexiones físicas con fuentes de datos, se minimizan las operaciones costosas necesarias para la creación y el cierre posterior de objetos java.sql.Connection.
Cuando no se utiliza la agrupación de conexiones, cada objeto java.sql.Connection representa una conexión física con la fuente de datos. Cuando la aplicación establece una conexión con un servidor de datos, este crea una conexión física con la fuente de datos. Cuando la aplicación invoca el método java.sql.Connection.close, el servidor de datos cierra la conexión física con la fuente de datos.
En cambio, cuando se utiliza la agrupación de conexiones, un objeto java.sql.Connection es una representación lógica y temporal de una conexión física con una fuente de datos. La conexión física con la fuente de datos puede ser reutilizada secuencialmente por instancias de java.sql.Connection. La aplicación puede utilizar el objeto lógico java.sql.Connection exactamente del mismo modo en que utiliza un objeto java.sql.Connection cuando no es posible utilizar la agrupación de conexiones.
Con la agrupación de conexiones, cuando una aplicación de e JDBC a invoca el método de e DataSource.getConnection a, el origen de datos determina si existe una conexión física adecuada. Si dicha conexión existe, la fuente de datos devolverá una instancia de java.sql.Connection a la aplicación. Cuando la aplicación JDBC invoca el método java.sql.Connection.close, JDBC no cierre la conexión de la fuente de datos física. En su lugar, JDBC cierra solo los recursos JDBC, como por ejemplo los objetos Statement o ResultSet. La fuente de datos devuelve la conexión física a la agrupación de conexiones para su reutilización.
Tipos de soporte JDBC y SQLJ para la agrupación de conexiones
- Agrupación de conexiones por un servidor de aplicaciones, como WebSphere® Application Server
- Agrupación de conexiones por el IBM Data Server Driver for JDBC and SQLJ
La agrupación de conexiones con un servidor de aplicaciones
El IBM Data Server Driver for JDBC and SQLJ proporciona una fábrica de conexiones agrupadas que son utilizadas por WebSphere Application Server u otros servidores de aplicaciones. En realidad, el servidor de aplicaciones realiza la agrupación. La agrupación de conexiones es completamente transparente para las aplicaciones JDBC o SQLJ.
Agrupación de conexiones por el IBM Data Server Driver for JDBC and SQLJ
A partir de la versión 4.29 de IBM Data Server Driver for JDBC and SQLJ, una aplicación puede solicitar que se agrupen las conexiones. Los métodos y las propiedades están disponibles en la clase DB2ConnectionPool para gestionar conexiones agrupadas. Consulte la clase DB2ConnectionPool para obtener más información.
Agrupación de conexiones homogéneas o heterogéneas
La agrupación de conexiones puede ser homogénea o heterogénea.
Con una agrupación homogénea, todos los objetos Connection que provengan de la misma agrupación de conexiones deben tener las mismas propiedades. El primer objeto Connection lógico que se crea con DataSource tiene las propiedades que se han definido para DataSource. No obstante, una aplicación puede cambiar dichas propiedades. Cuando se devuelve un objeto Connection a la agrupación de conexiones, un servidor de aplicaciones o un módulo de agrupación deberá restaurar los valores originales de las propiedades. Sin embargo, es posible que un servidor de aplicaciones o un módulo de agrupación no pueda restaurar las propiedades modificadas. El controlador JDBC no modifica las propiedades. Por lo tanto, en función del diseño del servidor de aplicaciones o del módulo de agrupación, es posible que las propiedades de un objeto Connection lógico reutilizado sean las mismas que las que se han definido para DataSource o que sean propiedades diferentes.
Con la agrupación heterogénea, los objetos Connection con propiedades diferentes pueden compartir la misma agrupación de conexiones.