Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Conceitos fundamentais de JDBC, Pooling e Threading


Os pools de conexões decoram as instâncias de Connection e Statement com suas próprias implementações de wrapper. Quando você chama close em uma conexão, na verdade está apenas liberando-a de volta ao pool. Quando você chama close em uma instrução preparada, você está apenas liberando-a de volta para o cache de instrução da conexão. Quando você prepara uma instrução, pode estar apenas buscando uma instância de instrução em cache da conexão. Tudo isso está oculto para que você não precise se preocupar com isso.

Quando uma conexão é fornecida a um cliente, ela não está mais disponível para uso de qualquer outro cliente até que a conexão seja liberada de volta ao pool. Geralmente, você apenas busca conexões quando precisa delas e as retorna assim que termina de usá-las. Como as conexões estão sendo mantidas abertas no pool, há pouca sobrecarga na busca e liberação de conexões.

Você deve usar uma conexão do pool da mesma forma que faria com uma única conexão JBDC e seguir as práticas recomendadas em relação ao fechamento de recursos para não vazar nenhuma conexão ou instrução. Veja os exemplos try/catch/finally em algumas das outras respostas.

Os pools podem gerenciar os recursos de conexão e testá-los antes de entregá-los aos clientes para garantir que não estejam obsoletos. Além disso, um pool criará e destruirá conexões conforme necessário.