Jeśli możesz użyć odac (odp) 11g , masz ustawienie Sprawdź poprawność połączenia dla swojej puli. Może zweryfikować połączenie przed użyciem.
Weryfikuj połączenie atrybut sprawdza poprawność połączeń wychodzących z puli. Atrybut ten powinien być używany tylko wtedy, gdy jest to absolutnie konieczne, ponieważ powoduje, że w obie strony do bazy danych sprawdzana jest poprawność każdego połączenia bezpośrednio przed przekazaniem go do aplikacji. Jeśli nieprawidłowe połączenia są rzadkie, deweloperzy mogą utworzyć własny program obsługi zdarzeń, aby pobrać i zweryfikować nowe połączenie, zamiast używać atrybutu Sprawdź poprawność połączenia. To generalnie zapewnia lepszą wydajność.
Jeśli to nie wystarczy - możesz wypróbować ten dokument z Oracle.
Zarządzanie pulą połączeń
Zarządzanie pulą połączeń ODP.NET zapewnia jawną kontrolę puli połączeń dla aplikacji ODP.NET. Aplikacje mogą jawnie czyścić połączenia w puli połączeń.
Korzystając z zarządzania pulą połączeń, aplikacje mogą wykonywać następujące czynności:
Uwaga:te interfejsy API nie są obsługiwane w procedurze składowanej .NET. Usuń połączenia z pul połączeń za pomocą ClearPool metoda.
Wyczyść połączenia we wszystkich pulach połączeń w domenie aplikacji za pomocą ClearAllPools metoda.
Gdy połączenia są usuwane z puli, ODP.NET ponownie wypełnia pulę nowymi połączeniami, które mają co najmniej liczbę połączeń ustawioną przez Minimalny rozmiar puli w parametrach połączenia. Nowe połączenia niekoniecznie oznaczają, że pula będzie miała prawidłowe połączenia. Na przykład, jeśli serwer bazy danych nie działa po wywołaniu ClearPool lub ClearAllPools, ODP.NET tworzy nowe połączenia, ale te połączenia są nadal niepoprawne, ponieważ nie mogą połączyć się z bazą danych, nawet jeśli baza danych pojawi się później.
Zaleca się, aby nie wywoływać ClearPool i ClearAllPools, dopóki aplikacja nie utworzy prawidłowych połączeń z powrotem do bazy danych. Programiści NET mogą opracowywać kod, który stale sprawdza, czy można utworzyć prawidłowe połączenie z bazą danych, i wywołuje ClearPool lub ClearAllPools, gdy jest to prawdą.
Być może ten post ci pomoże.
Aktualizacja :Jak wskazał @MPelletier, dla Oracle 12 link jest inny.