Pula połączeń zapewniana przez ODP.NET jest całkowicie nieprzejrzysta. Oznacza to, że nie jest nieszczelny tak, jak bym chciał — nie ma możliwości sprawdzenia, czy połączenie było używane wcześniej, czy jest nowe. Jest to jednak abstrakcja przeciekająca w inny sposób:każdy stan sesji (np. zmienne o zakresie pakietu, które są objęte zakresem sesji) jest zachowywany między użyciami połączenia. Ponieważ jest to pytanie o określenie używanego i nowego stanu połączenia bez wchodzenia do bazy danych , odpowiedź brzmi, że po prostu nie można tego zrobić za pomocą wbudowanej puli połączeń ODP.NET.
To pozostawia dwie opcje:
- Utwórz implementację puli połączeń, która dostarcza te informacje lub wykonuje inicjalizację zdefiniowaną przez użytkownika po utworzeniu każdego nowego połączenia; lub
- Wykonaj podróż w obie strony do bazy danych, aby określić używany i nowy stan połączenia.