Verbindingspool – ontwikkeling van mobiele applicaties, webservices, SOA-architectuur - Technologie
Doorgaan naar artikel

Connection Pooling – ontwikkeling van mobiele applicaties, webservices, SOA-architectuur

Advertenties

Wat is verbindingspooling?

Met het poolen van verbindingen kunt u bestaande verbindingen hergebruiken om de overhead te verminderen die gepaard gaat met het voortdurend maken en verbreken van verbindingen met dezelfde configuratie. Met andere woorden: het openen en sluiten van verbindingen die dezelfde verbindingsreeks en referenties gebruiken, kan een beschikbare verbinding in de pool hergebruiken. Typische toepassingen gebruiken dezelfde verbindingsobjecten om voortdurend gegevens uit een database op te halen en bij te werken. Het poolen van verbindingen biedt een veel hoger prestatieniveau doordat de database niet langer voortdurend verbindingen hoeft te maken en te verbreken. Verbindingspools worden gescheiden op basis van proces, toepassingsdomein en verbindingsreeks. Voor verbindingsreeksen die geïntegreerde beveiliging gebruiken, wordt voor elke unieke identiteit een aparte pool gemaakt.

Opties voor het poolen van verbindingen beheren

Verbindingspooling is standaard ingeschakeld bij het maken van ADO.NET-verbindingsobjecten. U kunt het gedrag van het poolen van verbindingen bepalen (of het poolen van verbindingen volledig uitschakelen) door specifieke trefwoorden voor verbindingsreeksen in te stellen voor het poolen van verbindingen. Als u bijvoorbeeld het groeperen van verbindingen specifiek wilt uitschakelen, stelt u Pooling=False in uw verbindingsreeks in. Tabel 5-7 biedt een lijst met sleutelwoorden voor verbindingsreeksen die kunnen worden gebruikt om te bepalen hoe een specifieke verbinding met de verbindingspool interageert. Niet alle zoekwoorden zijn voor alle aanbieders beschikbaar. De OLE DB-provider beheert bijvoorbeeld de verbindingspool (ook wel de resource- of sessiepool genoemd) op basis van de waarde die is ingesteld voor het sleutelwoord OLE DB Services in de verbindingsreeks.

TabelverbindingspoolverbindingsreeksNaast de eigenschappen van verbindingsreeksen die het gedrag van verbindingspooling bepalen, zijn er ook methoden beschikbaar voor verbindingsobjecten die ook van invloed kunnen zijn op verbindingspooling. Beschikbare methoden worden doorgaans gebruikt wanneer u verbindingen in uw toepassing verbreekt en u weet dat ze niet opnieuw zullen worden gebruikt. Hiermee wordt de verbindingspool opgeschoond door verbindingen te verwijderen in plaats van ze terug te sturen naar de pool wanneer ze worden gesloten. Alle verbindingen die zich al in de pool bevinden en open zijn, worden de volgende keer dat ze worden gesloten, weggegooid. Tabel 5-8 geeft een overzicht van de beschikbare methoden voor interactie met verbindingspools.

Verbindingen configureren om verbindingspooling te gebruiken

Standaard hebben alle .NET Framework-gegevensproviders die beschikbaar zijn in ADO.NET het poolen van verbindingen ingeschakeld, maar het beschikbare controleniveau voor het werken met het poolen van verbindingen varieert afhankelijk van de provider die wordt gebruikt.

Verbindingspooling configureren met SQL Server-verbindingen

Standaard maakt het SqlConnection-object automatisch gebruik van verbindingspooling. Elke keer dat u Sqlconnection.Open aanroept met een unieke verbindingsreeks, wordt er een nieuwe pool gemaakt. Beheer het gedrag van de verbindingspool door trefwoorden voor de verbindingspool in de verbindingsreeks in te stellen, zoals eerder beschreven in Tabel 5-7. Denk bijvoorbeeld aan een verbinding waarbij u de minimale poolgrootte wilt instellen. Door een waarde groter dan nul toe te kennen aan het trefwoord Mîn Pool Size, zorgt u ervoor dat de pool niet wordt vernietigd voordat de toepassing wordt beëindigd. Om de minimale poolgrootte in te stellen op 5, gebruikt u een verbindingsreeks die er ongeveer als volgt uitziet:

Gegevensbron=SqlServernaam;Initiële catalogus=Databasenaam; Geïntegreerde beveiliging=Waar; Minimale poolgrootte=5

De minimale poolgrootte is standaard 0, wat betekent dat elke verbinding moet worden gemaakt en geïnitialiseerd zoals gevraagd. Door de minimale poolgrootte in de verbindingsreeks te verhogen, wordt het aangegeven aantal verbindingen gemaakt en klaar voor gebruik, wat de tijd die nodig is om de verbinding tot stand te brengen via deze eerste verbindingen.

Verbindingspooling configureren met Oracle Connections

Verbindingen die gebruikmaken van de .NET Framework Data Provider voor Oracle maken standaard automatisch gebruik van verbindingspooling. U kunt bepalen hoe de verbinding de pool gebruikt door trefwoorden voor verbindingsreeksen in te stellen. Tabel 5-10 geeft details over de sleutelwoorden voor de verbindingsreeks die beschikbaar zijn voor het wijzigen van activiteiten van de verbindingspool.

Afhandeling van verbindingsfouten

Wanneer SQL Server een waarschuwing of fout retourneert, maakt en genereert de .NET Framework Data Provider voor SQL Server een SqlException die u in uw toepassing kunt opvangen om het probleem op te lossen. Wanneer SqlException wordt gegenereerd, inspecteert u de eigenschap SqlException.Errors om toegang te krijgen tot de verzameling fouten die worden geretourneerd door de SQL-server. De eigenschap SqlException.Errors is een klasse SqlErrorCollection (een verzameling SqlError-klassen) die altijd minimaal één SqlError-object bevat.

MEER INFORMATIE SQL Server-fouten

SqlConnection blijft open voor berichten met een ernstniveau van 19 of minder, maar wordt doorgaans automatisch gesloten wanneer de ernst 20 of hoger is.

Samenvatting

  • Verbindingspooling is standaard ingeschakeld.
  • Opties voor het poolen van verbindingen worden gedefinieerd in de verbindingsreeks, behalve voor de ODBC-provider, die gebruikmaakt van het dialoogvenster ODBC Data Source Administrator in Windows.
  • Er wordt een SqlException-object gemaakt wanneer er een fout wordt gedetecteerd op de SQL-server.
  • Elk exemplaar van een SqlException-uitzondering bevat ten minste één SqlError-waarschuwing die de daadwerkelijke serverfoutinformatie bevat.
  • Windows-verificatie (ook wel Integrated Security genoemd) is de aanbevolen methode om veilig verbinding te maken met gegevens.
  • Sla verbindingsreeksen die gevoelige informatie bevatten op in het toepassingsconfiguratiebestand en versleutel alle configuraties die gevoelige informatie bevatten.