Konfigurieren von Transaktionsisolationsstufen
COM+ gibt Entwicklern mehr Kontrolle über ihre Anwendungen, indem konfigurierbare Transaktionsisolationsstufen zugelassen 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 erhalten bleibt, kann jedoch zu Leistungsproblemen führen, z. B. Timeouts, 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 Leistung und Skalierbarkeit zu verbessern.
COM+ stellt die folgenden Transaktionsisolationsstufen bereit.
Ebene | BESCHREIBUNG |
---|---|
Serialisierte | Daten, die von einer aktuellen Transaktion gelesen werden, können von einer anderen Transaktion nicht geändert werden, bis 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 von einer anderen Transaktion nicht geändert werden, bis die aktuelle Transaktion abgeschlossen ist. Während einer Transaktion kann ein beliebiger Typ von neuen Daten eingefügt werden. |
Read Committed | Eine Transaktion kann keine Daten lesen, die von einer anderen Transaktion geändert werden, die kein Commit ausgeführt hat. 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 jedoch die höchste Parallelität. |
Any | Jede Isolationsstufe wird unterstützt. Diese Einstellung wird am häufigsten von nachgeschalteten Komponenten verwendet, um Konflikte zu vermeiden. Diese Einstellung ist nützlich, da jede nachgeschaltete Komponente mit einer Isolationsstufe konfiguriert werden muss, die gleich oder kleiner als die Isolationsstufe ihrer unmittelbaren Upstream-Komponente ist. Daher verwendet eine downstream-Komponente, deren Isolationsstufe als Any konfiguriert ist, immer die gleiche Isolationsstufe, die ihre unmittelbare Upstream-Komponente verwendet. Wenn für das Stammobjekt in einer Transaktion die Isolationsstufe "Any" konfiguriert ist, wird die Isolationsstufe serialisiert. |
Hinweis
Wenn eine downstream-Komponente mit einer höheren Isolationsstufe als eine Upstream-Komponente konfiguriert ist und versucht, eine Transaktion aufzunehmen, tritt ein Fehler auf, und die Transaktion wird abgebrochen.
Zugehörige Themen