Configurazione dei livelli di isolamento delle transazioni

COM+ offre agli sviluppatori un maggiore controllo sulle applicazioni consentendo livelli di isolamento delle transazioni configurabili. Le versioni di COM+ precedenti a COM+ 1.5 usavano sempre il livello di isolamento più elevato per le transazioni. Anche se questo livello garantisce che l'integrità dei dati venga sempre mantenuta, può causare problemi di prestazioni, ad esempio timeout, quando molte transazioni devono essere eseguite in un database di grandi dimensioni. Con i livelli di isolamento configurabili, gli sviluppatori esperti possono aumentare la concorrenza per migliorare le prestazioni e la scalabilità.

COM+ fornisce i livelli di isolamento delle transazioni seguenti.

Livello Descrizione
Modello I dati letti da una transazione corrente non possono essere modificati da un'altra transazione fino al termine della transazione corrente. Non è possibile inserire nuovi dati che influiscono sulla transazione corrente. Questo è il livello di isolamento più sicuro ed è il valore predefinito.
Lettura ripetibile I dati letti da una transazione corrente non possono essere modificati da un'altra transazione fino al termine della transazione corrente. È possibile inserire qualsiasi tipo di nuovi dati durante una transazione.
Read Committed Una transazione non può leggere i dati modificati da un'altra transazione di cui non è stato eseguito il commit. Questo è il livello di isolamento predefinito in Microsoft SQL Server.
Read Uncommitted Una transazione può leggere qualsiasi dato, anche se viene modificato da un'altra transazione. Si tratta del livello di isolamento meno sicuro, ma consente la concorrenza più elevata.
Qualsiasi È supportato qualsiasi livello di isolamento. Questa impostazione viene usata più comunemente dai componenti downstream per evitare conflitti. Questa impostazione è utile perché qualsiasi componente downstream deve essere configurato con un livello di isolamento uguale o inferiore al livello di isolamento del relativo componente upstream immediato. Pertanto, un componente downstream con il livello di isolamento configurato come Any usa sempre lo stesso livello di isolamento usato dal componente upstream immediato. Se il livello di isolamento dell'oggetto radice in una transazione è configurato su Any, il livello di isolamento diventa Serializzato.

 

Nota

Se un componente downstream è configurato con un livello di isolamento superiore rispetto a un componente upstream e tenta di eseguire l'integrazione in una transazione, viene restituito un errore e la transazione viene interrotta.

 

Impostazione del livello di isolamento delle transazioni