Forbindelsespulje – udvikling af mobilapplikationer, webtjenester, SOA-arkitektur - Teknologi
Gå til indhold

Forbindelsespooling - udvikling af mobilapps, webtjenester, SOA-arkitektur

Annoncer

Hvad er forbindelsespooling?

Forbindelsespooling giver dig mulighed for at genbruge eksisterende forbindelser for at reducere omkostningerne ved konstant at oprette og slette forbindelser, der har den samme konfiguration. Med andre ord kan åbning og lukning af forbindelser, der bruger den samme forbindelsesstreng og legitimationsoplysninger, genbruge en tilgængelig forbindelse i poolen. Typiske applikationer bruger de samme forbindelsesobjekter til løbende at hente og opdatere data fra en database. Forbindelsespooling giver et meget højere ydeevne ved at eliminere behovet for, at databasen konstant skal oprette og afbryde forbindelser. Forbindelsespuljer er adskilt af proces, applikationsdomæne og forbindelsesstreng. For forbindelsesstrenge, der bruger integreret sikkerhed, oprettes en separat pulje for hver unik identitet.

Styring af forbindelsespoolingmuligheder

Forbindelsespooling er aktiveret som standard ved oprettelse af ADO.NET-forbindelsesobjekter. Du kan styre forbindelsespooling-adfærd (eller deaktivere forbindelsespooling fuldstændigt) ved at indstille specifikke forbindelsesstrengnøgleord til forbindelsespooling. For eksempel, for specifikt at deaktivere forbindelsespooling, skal du indstille Pooling=False i din forbindelsesstreng. Tabel 5-7 giver en liste over forbindelsesstrengnøgleord, der kan bruges til at kontrollere, hvordan en specifik forbindelse interagerer med forbindelsespuljen. Ikke alle søgeord er tilgængelige for alle udbydere. For eksempel styrer OLE DB-udbyderen forbindelsespuljen (også kendt som ressource- eller sessionspuljen) baseret på den værdi, der er angivet for OLE DB Services-nøgleordet i forbindelsesstrengen.

Tabelforbindelse PoolforbindelsesstrengUd over forbindelsesstrengegenskaber, der styrer forbindelsespooling-adfærd, er der også tilgængelige metoder på forbindelsesobjekter, som også kan påvirke forbindelsespooling. Tilgængelige metoder bruges typisk, når du lukker forbindelser i din applikation, og du ved, at de ikke vil blive brugt igen. Dette renser forbindelsesbassinet ved at kassere forbindelser i stedet for at returnere dem til poolen, når de er lukket. Eventuelle forbindelser, der allerede er i poolen og åbne, vil blive kasseret, næste gang de lukkes. Tabel 5-8 viser de tilgængelige metoder til at interagere med forbindelsespuljer.

Konfiguration af forbindelser til at bruge forbindelsespooling

Som standard har alle .NET Framework-dataudbydere, der er tilgængelige i ADO.NET, forbindelsespooling aktiveret, men det tilgængelige kontrolniveau for at arbejde med forbindelsespooling varierer afhængigt af den udbyder, der bruges.

Konfiguration af forbindelsespooling med SQL Server-forbindelser

Som standard bruger SqlConnection-objektet automatisk forbindelsespooling. Hver gang du kalder Sqlconnection. Åbn med en unik forbindelsesstreng, oprettes en ny pulje. Styr forbindelsespuljens adfærd ved at indstille forbindelsespuljens nøgleord i forbindelsesstrengen som tidligere beskrevet i Tabel 5-7. Overvej f.eks. en forbindelse, hvor du vil indstille den mindste poolstørrelse. Ved at tildele en værdi større end nul til nøgleordet Mîn Pool Size, sikrer du, at poolen ikke bliver ødelagt, før applikationen afsluttes. For at indstille den mindste poolstørrelse til 5 skal du bruge en forbindelsesstreng, der ligner følgende:

Datakilde=SqlServerName;Initial Catalog=DatabaseName; Integreret sikkerhed=Sandt;Minimum poolstørrelse=5

Minimumspoolstørrelsen er som standard 0, hvilket betyder, at hver forbindelse skal oprettes og initialiseres som anmodet, ved at øge minimumspoolstørrelsen i forbindelsesstrengen oprettes det angivne antal forbindelser og er klar til brug, hvilket kan reducere tid det tager at etablere forbindelsen på disse indledende forbindelser.

Konfiguration af forbindelsespooling med Oracle-forbindelser

Forbindelser, der bruger .NET Framework Data Provider til Oracle, bruger automatisk forbindelsespooling som standard. Du kan kontrollere, hvordan forbindelsen bruger puljen ved at angive nøgleord for forbindelsesstrenge. Tabel 5-10 beskriver de forbindelsesstrengnøgleord, der er tilgængelige for ændring af forbindelsespuljeaktiviteter.

Håndtering af forbindelsesfejl

Når SQL Server returnerer en advarsel eller en fejl, opretter og kaster .NET Framework Data Provider for SQL Server en SqlException, som du kan fange i din applikation for at håndtere problemet. Når SqlException kastes, skal du inspicere egenskaben SqlException.Errors for at få adgang til samlingen af fejl, der returneres fra SQL-serveren. Egenskaben SqlException.Errors er en SqlErrorCollection-klasse (en samling af SqlError-klasser), der altid indeholder mindst ét SqlError-objekt.

MERE INFORMATION SQL Server-fejl

SqlConnection forbliver åben for meddelelser med et alvorlighedsniveau på 19 eller derunder, men vil typisk lukke automatisk, når sværhedsgraden er 20 eller derover.

Resumé

  • Forbindelsespooling er aktiveret som standard.
  • Indstillinger for forbindelsespooling er defineret i forbindelsesstrengen, undtagen ODBC-udbyderen, som bruger dialogboksen ODBC Data Source Administrator i Windows.
  • Et SqlException-objekt oprettes, når der opdages en fejl i SQL-serveren.
  • Hver forekomst af en SqlException-undtagelse indeholder mindst én SqlError-advarsel, der indeholder den faktiske serverfejlinformation.
  • Windows-godkendelse (også kaldet integreret sikkerhed) er den foreslåede metode til sikker forbindelse til data.
  • Gem forbindelsesstrenge, der indeholder følsomme oplysninger, i applikationskonfigurationsfilen, og krypter alle konfigurationer, der indeholder følsomme oplysninger.