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

Pool de conexão ODP.NET:como saber se uma conexão foi usada


O pool de conexões fornecido pelo ODP.NET é completamente opaco. Ou seja, não está vazando da maneira que eu gostaria que estivesse - não há como saber se uma conexão foi usada antes ou é nova. No entanto, é uma abstração com vazamento de outra maneira:qualquer estado de sessão (por exemplo, variáveis ​​com escopo de pacote, que são com escopo de sessão) é preservado entre os usos da conexão. Como esta é uma pergunta sobre como determinar o estado usado versus novo de uma conexão sem acessar o banco de dados , a resposta é que isso simplesmente não pode ser feito usando o pool de conexão interno do ODP.NET.

Isso deixa duas opções:
  1. Crie uma implementação de pool de conexões que forneça essas informações ou execute a inicialização definida pelo usuário na criação de cada nova conexão; ou
  2. Faça uma viagem de ida e volta ao banco de dados para determinar o estado usado x novo da conexão.