sql >> Database >  >> RDS >> Oracle

Hoe de ODP.NET-verbindingspool op verbindingsfouten wissen?

Als u odac (odp) 11g kunt gebruiken , heeft u de instelling Validate Connection voor uw pool. Het kan de verbinding valideren voordat u deze gebruikt.

De Verbinding valideren attribuut valideert verbindingen die uit de pool komen. Dit kenmerk mag alleen worden gebruikt wanneer dit absoluut noodzakelijk is, omdat het een retour naar de database veroorzaakt om elke verbinding te valideren onmiddellijk voordat deze aan de toepassing wordt verstrekt. Als ongeldige verbindingen ongebruikelijk zijn, kunnen ontwikkelaars hun eigen gebeurtenishandler maken om een ​​nieuwe verbinding op te halen en te valideren, in plaats van het kenmerk Verbinding valideren te gebruiken. Dit levert over het algemeen betere prestaties op.

Als het niet goed genoeg is, kun je dit document van oracle proberen.

Beheer van verbindingspool

ODP.NET-verbindingspoolbeheer biedt expliciete verbindingspoolcontrole voor ODP.NET-toepassingen. Applicaties kunnen expliciet verbindingen in een verbindingspool wissen.

Met het beheer van de verbindingspool kunnen toepassingen het volgende doen:

Opmerking:deze API's worden niet ondersteund in een .NET-opgeslagen procedure. Wis verbindingen uit verbindingspools met behulp van de ClearPool methode.

Wis verbindingen in alle verbindingspools in een applicatiedomein, met behulp van de ClearAllPools methode.

Wanneer verbindingen uit een pool worden gewist, vult ODP.NET de pool opnieuw met nieuwe verbindingen die ten minste het aantal verbindingen hebben dat is ingesteld door Min Pool Size in de verbindingsreeks. Nieuwe verbindingen betekenen niet noodzakelijk dat de pool geldige verbindingen heeft. Als de databaseserver bijvoorbeeld niet beschikbaar is wanneer ClearPool of ClearAllPools wordt aangeroepen, maakt ODP.NET nieuwe verbindingen, maar deze verbindingen zijn nog steeds ongeldig omdat ze geen verbinding kunnen maken met de database, zelfs als de database later verschijnt.

Het wordt aanbevolen ClearPool en ClearAllPools niet aan te roepen totdat de toepassing geldige verbindingen naar de database kan maken..NET-ontwikkelaars kunnen code ontwikkelen die continu controleert of er een geldige databaseverbinding kan worden gemaakt en ClearPool of ClearAllPools aanroepen zodra dit waar is.

Misschien helpt dit bericht je ook.

Bijwerken :Zoals aangegeven door @MPelletier, voor orakel 12 is de link anders.



  1. SQL Server Linked Server Voorbeeld Query

  2. SQL Server, de misleidende XLOCK &optimalisaties

  3. Moeten we niet null opgeven voor de primaire sleutel? Oracle/SQL

  4. Functies versus opgeslagen procedures