L'unico motivo per il pooling sono le prestazioni, quindi se il tuo lavoro notturno viene eseguito all'interno della sua finestra, non c'è niente di sbagliato in quello che stai facendo, soprattutto perché semplifica la tua implementazione non dovendoti preoccupare di connessioni morte.
Detto questo, non farei questa pratica standard. Raramente scrivo codice per gestire connessioni obsolete e anche in questo caso è una semplice fabbrica. La domanda inizia con il motivo per cui hai connessioni obsolete? In genere si tratta di un firewall o di un processo DBA che interrompe le connessioni inattive, che devono essere entrambe modificate o allentate per un account dell'applicazione. Anche in questo caso puoi fare quanto segue:
- Specifica la dimensione minima del pool=0 nella stringa di connessione. In questo modo ODP.net ripulisce anche l'ultima connessione della tua app, consentendo alla tua app di disconnettersi completamente quando è inattiva per un periodo sufficientemente lungo.
- Specifica una dimensione del pool Decr più alta nella stringa di connessione. Ciò consentirà la chiusura di più connessioni inattive ogni 3 minuti da ODP.net.
- Potresti provare a impostare Convalida connessione =true - La mia ipotesi sarebbe che ci sia meno sovraccarico nella convalida della connessione rispetto all'apertura di una.
Maggiori informazioni possono essere trovate qui:http:// docs.oracle.com/cd/E15296_01/doc.111/e15167/featConnecting.htm#i1006228