Il pool di connessioni fornito da ODP.NET è completamente opaco. Cioè, non perde nel modo in cui vorrei che fosse:non c'è modo di sapere se una connessione è stata utilizzata prima o è nuova di zecca. Tuttavia è un'astrazione che perde in un altro modo:qualsiasi stato di sessione (ad es. variabili con ambito di pacchetto, che sono con ambito di sessione) viene preservato tra gli usi della connessione. Poiché questa è una domanda sulla determinazione dello stato usato e nuovo di una connessione senza andare al database , la risposta è che semplicemente non può essere fatto utilizzando il pool di connessioni integrato di ODP.NET.
Ciò lascia due opzioni:
- Crea un'implementazione del pool di connessioni che fornisca tali informazioni o esegua l'inizializzazione definita dall'utente alla creazione di ogni nuova connessione; o
- Esegui un round trip al database per determinare lo stato usato e nuovo della connessione.