Das von ODP.NET bereitgestellte Verbindungspooling ist völlig undurchsichtig. Das heißt, es ist nicht so undicht, wie ich es gerne hätte - es gibt keine Möglichkeit zu wissen, ob eine Verbindung zuvor verwendet wurde oder brandneu ist. Es ist jedoch auf andere Weise eine undichte Abstraktion:Jeder Sitzungsstatus (z. B. paketbezogene Variablen, die sitzungsbezogen sind) wird zwischen Verwendungen der Verbindung beibehalten. Da es hier um die Bestimmung des gebrauchten vs. neuen Zustands einer Verbindung geht, ohne zur Datenbank zu gehen , lautet die Antwort, dass dies einfach nicht mit dem integrierten Verbindungspool von ODP.NET möglich ist.
Damit bleiben zwei Optionen:
- Erstellen Sie eine Verbindungspool-Implementierung, die entweder diese Informationen bereitstellt oder eine benutzerdefinierte Initialisierung bei der Erstellung jeder neuen Verbindung durchführt; oder
- Durchführen eines Roundtrips zur Datenbank, um den verwendeten und den neuen Status der Verbindung zu bestimmen.