Pool di connessioni – sviluppo di applicazioni mobili, servizi web, architettura SOA - Tecnologia
Vai al contenuto

Pool di connessioni: sviluppo di app mobili, servizi Web, architettura SOA

Annunci

Cos'è il pool di connessioni?

Il pool di connessioni consente il riutilizzo delle connessioni esistenti per ridurre l'overhead della creazione e dell'eliminazione continue di connessioni con la stessa configurazione. In altre parole, l'apertura e la chiusura delle connessioni che usano la stessa stringa di connessione e le stesse credenziali possono riutilizzare una connessione disponibile nel pool. Le applicazioni tipiche utilizzano gli stessi oggetti di connessione per recuperare e aggiornare continuamente i dati da un database. Il pool di connessioni fornisce un livello di prestazioni molto più elevato eliminando la necessità per il database di creare ed eliminare costantemente le connessioni. I pool di connessioni sono separati per processo, dominio applicazione e stringa di connessione. Per le stringhe di connessione che usano la sicurezza integrata, viene creato un pool separato per ogni identità univoca.

Controllo delle opzioni di pool di connessioni

Il pool di connessioni è attivato per impostazione predefinita durante la creazione di oggetti di connessione ADO.NET. È possibile controllare il comportamento del pool di connessioni (o disabilitare del tutto il pool di connessioni) impostando parole chiave specifiche della stringa di connessione per il pool di connessioni. Ad esempio, per disabilitare in modo specifico il pool di connessioni, impostare Pooling=False nella stringa di connessione. La Tabella 5-7 fornisce un elenco di parole chiave della stringa di connessione che possono essere utilizzate per controllare il modo in cui una connessione specifica interagisce con il pool di connessioni. Non tutte le parole chiave sono disponibili per tutti i fornitori. Ad esempio, il provider OLE DB tiene traccia del pool di connessioni (noto anche come pool di risorse o sessioni) in base al valore impostato per la parola chiave Servizi OLE DB nella stringa di connessione.

Stringa di connessione pool di connessioni tabellaOltre alle proprietà della stringa di connessione che controllano il comportamento del pool di connessioni, sono disponibili anche metodi sugli oggetti di connessione che possono influire anche sul pool di connessioni. I metodi disponibili vengono in genere utilizzati quando chiudi le connessioni nella tua applicazione e sai che non verranno più utilizzati. Questo pulisce il pool di connessioni eliminando le connessioni invece di restituirle al pool quando vengono chiuse. Eventuali connessioni già presenti nel pool e aperte verranno eliminate alla successiva chiusura. La Tabella 5-8 elenca i metodi disponibili per l'interazione con i pool di connessione.

Configurazione delle connessioni per l'utilizzo del pool di connessioni

Per impostazione predefinita, tutti i provider di dati .NET Framework disponibili in ADO.NET hanno il pool di connessioni abilitato, ma il livello di controllo disponibile per l'utilizzo del pool di connessioni varia a seconda del provider utilizzato.

Configurazione del pool di connessioni con connessioni SQL Server

Per impostazione predefinita, l'oggetto SqlConnection utilizza automaticamente il pool di connessioni. Ogni volta che chiami Sqlconnection.Open con una stringa di connessione univoca, viene creato un nuovo pool. Controllare il comportamento del pool di connessioni impostando le parole chiave del pool di connessioni nella stringa di connessione come descritto in precedenza nella Tabella 5-7. Si consideri, ad esempio, una connessione in cui si desidera impostare la dimensione minima del pool. Assegnando un valore maggiore di zero alla parola chiave Mîn Pool Size, si garantisce che il pool non venga distrutto fino al termine dell'applicazione. Per impostare la dimensione minima del pool su 5, utilizzare una stringa di connessione simile alla seguente:

Origine dati=SqlServerName; Catalogo iniziale=DatabaseName; Sicurezza integrata=True; Dimensione minima del pool=5

La dimensione minima del pool è 0 per impostazione predefinita, il che significa che ogni connessione deve essere creata e inizializzata come richiesto, aumentando la dimensione minima del pool nella stringa di connessione, il numero indicato di connessioni viene creato e pronto per l'uso, il che può ridurre il tempo serve per stabilire la connessione su queste connessioni iniziali.

Configurazione del pool di connessioni con connessioni Oracle

Le connessioni che utilizzano il provider di dati .NET Framework per Oracle utilizzano automaticamente il pool di connessioni per impostazione predefinita. È possibile controllare il modo in cui la connessione utilizza il pool impostando le parole chiave della stringa di connessione. La Tabella 5-10 descrive in dettaglio le parole chiave della stringa di connessione disponibili per modificare le attività di pool di connessioni.

Gestione degli errori di connessione

Quando SQL Server restituisce un avviso o un errore, il provider di dati .NET Framework per SQL Server crea e genera un'eccezione SqlException che puoi rilevare nell'applicazione per gestire il problema. Quando viene generata SqlException, ispezionare la proprietà SqlException.Errors per accedere alla raccolta di errori restituiti dal server SQL. La proprietà SqlException.Errors è una classe SqlErrorCollection (una raccolta di classi SqlError) che contiene sempre almeno un oggetto SqlError.

Informazioni Errori di SQL Server

SqlConnection rimarrà aperto per i messaggi con un livello di gravità pari o inferiore a 19, ma normalmente si chiuderà automaticamente quando la gravità è pari o superiore a 20.

Riepilogo

  • Il pool di connessioni è abilitato per impostazione predefinita.
  • Le opzioni del pool di connessioni sono definite nella stringa di connessione, ad eccezione del provider ODBC, che utilizza la finestra di dialogo Amministratore origine dati ODBC in Windows.
  • Un oggetto SqlException viene creato quando viene rilevato un errore sul server SQL.
  • Ogni istanza di un'eccezione SqlException contiene almeno un avviso SqlError che contiene le informazioni effettive sull'errore del server.
  • L'autenticazione di Windows (chiamata anche sicurezza integrata) è il metodo suggerito per connettersi in modo sicuro ai dati.
  • Archivia le stringhe di connessione che contengono informazioni riservate nel file di configurazione dell'applicazione e crittografa tutte le impostazioni che contengono informazioni riservate.