sql >> Base de Datos >  >> RDS >> Oracle

Conceptos fundamentales de JDBC, Pooling y Threading

Los grupos de conexiones decoran las instancias de Connection y Statement con sus propias implementaciones de contenedores. Cuando llamas para cerrar una conexión, en realidad solo la estás liberando de nuevo al grupo. Cuando llama a close en una declaración preparada, en realidad solo la está liberando de nuevo a la memoria caché de la declaración de la conexión. Cuando prepara una declaración, es posible que simplemente obtenga una instancia de declaración en caché de la conexión. Todo esto está oculto a la vista para que no tengas que preocuparte por ello.

Cuando se otorga una conexión a un cliente, ya no está disponible para que la use ningún otro cliente hasta que la conexión se libera nuevamente al grupo. Por lo general, solo busca conexiones cuando las necesita y luego las devuelve tan pronto como termina con ellas. Debido a que las conexiones se mantienen abiertas en el grupo, hay poca sobrecarga al buscar y liberar conexiones.

Debe usar una conexión del grupo tal como lo haría con una única conexión JBDC y seguir las mejores prácticas con respecto al cierre de recursos para que no se filtre ninguna conexión o declaración. Vea los ejemplos de intentar/atrapar/finalmente en algunas de las otras respuestas.

Los grupos pueden administrar los recursos de conexión y probarlos antes de entregarlos a los clientes para asegurarse de que no estén obsoletos. Además, un grupo creará y destruirá conexiones según sea necesario.