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

Come cancellare il pool di connessioni ODP.NET in caso di errori di connessione?

Se puoi usare odac (odp) 11g , hai impostato Convalida connessione per il tuo pool. Può convalidare la connessione prima di utilizzarla.

La Convalida connessione l'attributo convalida le connessioni in uscita dal pool. Questo attributo deve essere utilizzato solo quando è assolutamente necessario, poiché determina un round trip al database per convalidare ogni connessione immediatamente prima che venga fornita all'applicazione. Se le connessioni non valide sono rare, gli sviluppatori possono creare il proprio gestore eventi per recuperare e convalidare una nuova connessione, anziché utilizzare l'attributo Convalida connessione. Questo generalmente fornisce prestazioni migliori.

Se non sarà abbastanza buono, puoi provare questo documento da Oracle.

Gestione del pool di connessioni

La gestione del pool di connessioni ODP.NET fornisce un controllo esplicito del pool di connessioni alle applicazioni ODP.NET. Le applicazioni possono cancellare esplicitamente le connessioni in un pool di connessioni.

Utilizzando la gestione del pool di connessioni, le applicazioni possono eseguire le seguenti operazioni:

Nota:queste API non sono supportate in una stored procedure .NET. Cancella le connessioni dai pool di connessioni utilizzando ClearPool metodo.

Cancella le connessioni in tutti i pool di connessioni in un dominio applicazione, utilizzando ClearAllPools metodo.

Quando le connessioni vengono cancellate da un pool, ODP.NET ripopola il pool con nuove connessioni che hanno almeno il numero di connessioni impostato da Min Pool Size nella stringa di connessione. Nuove connessioni non significano necessariamente che il pool disporrà di connessioni valide. Ad esempio, se il server del database è inattivo quando viene chiamato ClearPool o ClearAllPools, ODP.NET crea nuove connessioni, ma queste connessioni non sono ancora valide perché non possono connettersi al database, anche se il database viene visualizzato in un secondo momento.

Si consiglia di non chiamare ClearPool e ClearAllPools fino a quando l'applicazione non può creare connessioni valide al database. Gli sviluppatori NET possono sviluppare codice che controlla continuamente se è possibile creare o meno una connessione al database valida e chiama ClearPool o ClearAllPools una volta che questo è vero.

Inoltre, questo post potrebbe aiutarti.

Aggiorna :Come indicato da @MPelletier, per Oracle 12 il collegamento è diverso.