Konfigurieren von Transaktionsisolationsstufen
COM+ bietet Entwicklern mehr Kontrolle über ihre Anwendungen, indem konfigurierbare Transaktionsisolationsstufen ermöglicht werden. Versionen von COM+ vor COM+ 1.5 verwendeten immer die höchste Isolationsstufe für Transaktionen. Diese Ebene garantiert zwar, dass die Datenintegrität immer beibehalten wird, kann jedoch zu Leistungsproblemen führen, z. B. Time outs, wenn viele Transaktionen für eine große Datenbank ausgeführt werden müssen. Mit konfigurierbaren Isolationsstufen können erfahrene Entwickler die Parallelität erhöhen, um die Leistung und Skalierbarkeit zu verbessern.
COM+ bietet die folgenden Transaktionsisolationsstufen.
| Ebene | Beschreibung |
|---|---|
| Serialisierte | Daten, die von einer aktuellen Transaktion gelesen werden, können erst von einer anderen Transaktion geändert werden, wenn die aktuelle Transaktion abgeschlossen ist. Es können keine neuen Daten eingefügt werden, die sich auf die aktuelle Transaktion auswirken würden. Dies ist die sicherste Isolationsstufe und die Standardeinstellung. |
| Repeatable Read | Daten, die von einer aktuellen Transaktion gelesen werden, können erst von einer anderen Transaktion geändert werden, wenn die aktuelle Transaktion abgeschlossen ist. Jeder Typ neuer Daten kann während einer Transaktion eingefügt werden. |
| Read Committed | Eine Transaktion kann keine Daten lesen, die von einer anderen Transaktion geändert werden, für die kein Committed ausgeführt wurde. Dies ist die Standardisolationsstufe in Microsoft SQL Server. |
| Read Uncommitted | Eine Transaktion kann beliebige Daten lesen, auch wenn sie von einer anderen Transaktion geändert werden. Dies ist die am wenigsten sichere Isolationsstufe, ermöglicht aber die höchste Parallelität. |
| Beliebig | Jede Isolationsstufe wird unterstützt. Diese Einstellung wird am häufigsten von Downstreamkomponenten verwendet, um Konflikte zu vermeiden. Diese Einstellung ist nützlich, da jede Downstreamkomponente mit einer Isolationsstufe konfiguriert werden muss, die gleich oder kleiner als die Isolationsstufe ihrer unmittelbaren Upstreamkomponente ist. Daher verwendet eine Downstreamkomponente, deren Isolationsstufe als Any konfiguriert ist, immer die gleiche Isolationsstufe wie die direkte Upstreamkomponente. Wenn die Isolationsstufe des Stammobjekts in einer Transaktion auf Any (Alle) konfiguriert ist, wird die Isolationsstufe serialisiert. |
Hinweis
Wenn eine Downstreamkomponente mit einer höheren Isolationsstufe als eine Upstreamkomponente konfiguriert ist und versucht, eine Eintragung in eine Transaktion zu versuchen, tritt ein Fehler auf, und die Transaktion wird abgebrochen.