Pool de conexiuni – dezvoltare de aplicații mobile, servicii web, arhitectură SOA - Tehnologie
Sari la conținut

Pooling de conexiuni - dezvoltare de aplicații mobile, servicii web, arhitectură SOA

Reclame

Ce este poolingul de conexiuni?

Gruparea conexiunilor permite reutilizarea conexiunilor existente pentru a reduce costul general al creării și renunțării continue a conexiunilor care au aceeași configurație. Cu alte cuvinte, deschiderea și închiderea conexiunilor care folosesc același șir de conexiune și acreditări pot reutiliza o conexiune disponibilă în pool. Aplicațiile tipice folosesc aceleași obiecte de conexiune pentru a prelua și actualiza în mod continuu datele dintr-o bază de date. Gruparea conexiunilor oferă un nivel mult mai ridicat de performanță, eliminând necesitatea ca baza de date să creeze și să renunțe constant conexiuni. Pool-urile de conexiuni sunt separate prin proces, domeniul aplicației și șirul de conexiune. Pentru șirurile de conexiune care utilizează securitatea integrată, este creat un pool separat pentru fiecare identitate unică.

Controlul opțiunilor de pooling de conexiuni

Gruparea conexiunilor este activată în mod implicit la crearea obiectelor de conexiune ADO.NET. Puteți controla comportamentul de pooling de conexiuni (sau dezactivați complet gruparea de conexiuni) setând cuvinte cheie specifice șirului de conexiuni pentru pooling de conexiuni. De exemplu, pentru a dezactiva în mod specific gruparea conexiunilor, setați Pooling=False în șirul dvs. de conexiune. Tabelul 5-7 oferă o listă de cuvinte cheie șir de conexiune care pot fi utilizate pentru a controla modul în care o anumită conexiune interacționează cu pool-ul de conexiuni. Nu toate cuvintele cheie sunt disponibile pentru toți furnizorii. De exemplu, furnizorul OLE DB urmărește gruparea de conexiuni (cunoscută și sub numele de pooling de resurse sau sesiuni) pe baza valorii setate pentru cuvântul cheie Servicii OLE DB din șirul de conexiune.

Șir de conexiune Pool Connection TablePe lângă proprietățile șirului de conexiuni care controlează comportamentul de pooling de conexiuni, există și metode disponibile pentru obiectele de conexiune care pot afecta și poolingul de conexiuni. Metodele disponibile sunt utilizate de obicei atunci când închideți conexiunile în aplicația dvs. și știți că nu vor fi folosite din nou. Acest lucru curăță pool-ul de conexiuni eliminând conexiunile în loc să le returneze în pool atunci când sunt închise. Orice conexiuni care sunt deja în piscină și deschise vor fi eliminate data viitoare când vor fi închise. Tabelul 5-8 listează metodele disponibile pentru interacțiunea cu pool-urile de conexiuni.

Configurarea conexiunilor pentru a utiliza pooling de conexiuni

În mod implicit, toți furnizorii de date .NET Framework disponibili în ADO.NET au activată gruparea conexiunilor, dar nivelul de control disponibil pentru lucrul cu gruparea conexiunilor variază în funcție de furnizorul utilizat.

Configurarea grupării de conexiuni cu conexiuni SQL Server

În mod implicit, obiectul SqlConnection utilizează automat gruparea conexiunilor. De fiecare dată când apelați Sqlconnection.Open cu un șir de conexiune unic, este creat un nou pool. Controlați comportamentul de pooling de conexiuni setând cuvinte cheie pool de conexiuni în șirul de conexiune, așa cum este descris mai devreme în Tabelul 5-7. De exemplu, luați în considerare o conexiune în care doriți să setați dimensiunea minimă a piscinei. Atribuind o valoare mai mare decât zero cuvântului cheie Mîn Pool Size, vă asigurați că pool-ul nu este distrus până când aplicația se încheie. Pentru a seta dimensiunea minimă a pool-ului la 5, utilizați un șir de conexiune similar cu următorul:

Sursa de date=SqlServerName;Initial Catalog=DatabaseName; Securitate integrată=Adevărat;Dimensiunea minimă a pool-ului=5

Dimensiunea minimă a pool-ului este 0 în mod implicit, ceea ce înseamnă că fiecare conexiune trebuie creată și inițializată conform solicitării, crescând dimensiunea minimă a pool-ului în șirul de conexiuni, numărul indicat de conexiuni sunt create și gata de utilizare, ceea ce poate reduce timpul este nevoie pentru a stabili conexiunea pe aceste conexiuni inițiale.

Configurarea grupării conexiunilor cu Oracle Connections

Conexiunile care utilizează furnizorul de date .NET Framework pentru Oracle utilizează automat gruparea conexiunilor în mod implicit. Puteți controla modul în care conexiunea utilizează gruparea prin setarea cuvintelor cheie pentru șirul de conexiune. Tabelul 5-10 detaliază cuvintele cheie ale șirului de conexiune disponibile pentru modificarea activităților de pooling de conexiuni.

Gestionarea erorilor de conectare

Când SQL Server returnează un avertisment sau o eroare, furnizorul de date .NET Framework pentru SQL Server creează și lansează o SqlException pe care o puteți prinde în aplicația dvs. pentru a rezolva problema. Când se aruncă SqlException, inspectați proprietatea SqlException.Errors pentru a accesa colecția de erori care sunt returnate de la serverul SQL. Proprietatea SqlException.Errors este o clasă SqlErrorCollection (o colecție de clase SqlError) care conține întotdeauna cel puțin un obiect SqlError.

MAI MULTE INFORMAȚII Erori SQL Server

SqlConnection va rămâne deschis pentru mesajele cu un nivel de severitate de 19 sau mai mic, dar în mod normal se va închide automat când severitatea este de 20 sau mai mare.

rezumat

  • Gruparea conexiunilor este activată în mod implicit.
  • Opțiunile de grupare a conexiunilor sunt definite în șirul de conexiune, cu excepția furnizorului ODBC, care utilizează dialogul Administrator surse de date ODBC pe Windows.
  • Un obiect SqlException este creat atunci când este detectată o eroare pe serverul SQL.
  • Fiecare instanță a unei excepții SqlException conține cel puțin un avertisment SqlError care conține informațiile reale despre eroarea serverului.
  • Autentificarea Windows (numită și securitate integrată) este metoda sugerată pentru a vă conecta în siguranță la date.
  • Stocați șirurile de conexiune care conțin informații sensibile în fișierul de configurare al aplicației și criptați toate setările care conțin informații sensibile.