Oracle
 sql >> Database >  >> RDS >> Oracle

Pool di connessioni ODP.NET:come sapere se è stata utilizzata una connessione

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:

  1. 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
  2. Esegui un round trip al database per determinare lo stato usato e nuovo della connessione.