Transaktionen in mehrschichtigen Anwendungen verwalten

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Serveranwendung erstellen


Wenn Client-Anwendungen Aktualisierungen an den Anwendungsserver übergeben, kapselt die Provider-Komponente die Aktualisierung und gegebenenfalls das Beheben von Aktualisierungsfehlern automatisch in einer Transaktion. Diese Transaktion wird festgeschrieben, wenn die Anzahl der problematischen Datensätze den in MaxErrors als Argument für die Methode ApplyUpdates angegebenen Wert nicht übersteigt. Andernfalls werden die im Rahmen dieser Transaktion durchgeführten Änderungen rückgängig gemacht.

Sie können die Transaktionsunterstützung durch die Server-Anwendung erweitern, indem Sie eine Datenbankkomponente einfügen oder die Transaktion selbst verwalten, indem Sie SQL-Befehle an den Datenbankserver senden. Das Vorgehen entspricht der Transaktionsverwaltung in zweischichtigen Anwendungen. Weitere Informationen zu dieser Form der Transaktionssteuerung finden Sie unter Transaktionen verwalten.

Bei Verwendung eines transaktionalen Datenmoduls können Sie die normale Transaktionsunterstützung zusätzlich durch den Einsatz von COM+- oder MTS-Transaktionen erweitern. Diese Transaktionen können für jede Art von Operation im Anwendungsserver verwendet werden, nicht nur für den Datenbankzugriff. Da diese Transaktionen das zweiphasige Festschreiben unterstützen, können sie sich über mehrere Datenbanken erstrecken.

Dabei ist zu beachten, dass lediglich die BDE- und ADO-basierten Datenzugriffskomponenten das zweiphasige Festschreiben unterstützen. Verwenden Sie keine InterbaseExpress- oder dbExpress-Komponenten, falls sich Transaktionen auf mehrere Datenbanken beziehen sollen.

Bei Verwendung eines transaktionalen Datenmoduls sind alle IAppServer-Aufrufe an den Anwendungsserver transaktional. Sie müssen nur die Schnittstelle des Anwendungsservers erweitern, so dass die Schnittstelle Methoden zur Kapselung der von Ihnen definierten Transaktion enthält.

Falls das von Ihnen gewählte Transaktionsattribut angibt, dass das Remote-Datenmodul eine Transaktion erfordert, wird jeder Aufruf der Schnittstelle des Remote-Datenmoduls durch den Client im Kontext einer Transaktion durchgeführt. Alle an den Anwendungsserver gerichteten Client-Aufrufe werden dann in der Transaktion protokolliert, bis das Beenden der Transaktion angefordert wird. Diese Aufrufe werden entweder in ihrer Gesamtheit erfolgreich durchgeführt oder rückgängig gemacht.

Hinweis: Kombinieren Sie COM+- oder MTS-Transaktionen nicht mit den expliziten Transaktionen einer Datenbankkomponente oder dem Einsatz expliziter SQL-Anweisungen. Wird das transaktionale Datenmodul in eine Transaktion eingebunden, übernimmt es automatisch auch alle direkten Datenbankaufrufe in die Transaktion.

Siehe auch