Jedynym powodem łączenia w pulę jest wydajność, więc jeśli twoje nocne zadanie działa w jego oknie, nie ma nic złego w tym, co robisz, zwłaszcza że upraszcza to implementację, nie martwiąc się o martwe połączenia.
To powiedziawszy, nie robiłbym tej standardowej praktyki. Rzadko piszę kod do obsługi przestarzałych połączeń, a nawet wtedy jest to prosta fabryka. Pytanie zaczyna się od tego, dlaczego w ogóle masz nieaktualne połączenia? Zazwyczaj dotyczy to zapory lub zadania DBA, które kończy bezczynne połączenia, które należy zmienić lub rozluźnić dla konta aplikacji. Nawet w takim przypadku możesz wykonać następujące czynności:
- Określ minimalny rozmiar puli=0 w ciągu połączenia. Dzięki temu ODP.net może wyczyścić nawet ostatnie połączenie, jakie ma Twoja aplikacja, umożliwiając jej całkowite rozłączenie, gdy jest bezczynna przez wystarczająco długi czas.
- Określ większy Decr Pool Size w ciągu połączenia. Umożliwi to zamknięcie większej liczby nieaktywnych połączeń co 3 minuty przez ODP.net.
- Możesz spróbować ustawić Validate Connection =true - Przypuszczam, że nakład pracy na walidację połączenia jest mniejszy niż przy otwieraniu jednego.
Więcej informacji można znaleźć tutaj:http:// docs.oracle.com/cd/E15296_01/doc.111/e15167/featConnecting.htm#i1006228