DB Begin-Transaktion

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Aktionen > Datenbank >

DB Begin-Transaktion

Bei Auslösung des Ereignisses beginnt die DB Begin-Transaktion eine Transaktion mit der in der Auswahlliste Verbindung ausgewählten Datenquelle. In dieser Auswahlliste werden alle Datenquellen des Projekts aufgelistet. Sie haben hier auch die Möglichkeit, eine zusätzliche Datenbankverbindung speziell für die Aktion "DB Begin-Transaktion" zu definieren.

MTDBeginTransaction

Mit der Option Transaktionssperre setzen definieren Sie den Grad der Sperre und stellen damit sicher, dass die Daten bei Schreib-Aktionen nicht beschädigt sind. Die folgenden Optionen stehen zur Verfügung:

 

Datenbankstandardeinstellung: Sammelt die Standarddatenbankeinstellungen von Datenbank, Server und Client.
Schreiben betroffener Tabellen verhindern: Es wird nicht in die Datenbank geschrieben, falls gerade von einer anderen Verbindung aus Daten in die Datenbank geschrieben werden. Die Schreib-Transaktion wird erst dann ausgeführt, wenn die andere Schreib-Transaktion abgeschlossen ist. Andernfalls wird eine Fehlermeldung angezeigt.
Schreiben und Lesen betroffener Tabellen verhindern: Daten werden weder in die Datenbank geschrieben noch daraus gelesen, falls gerade von einer anderen Verbindung aus Daten in die Datenbank geschrieben werden. Die Transaktion wird erst dann ausgeführt, wenn die andere Transaktion abgeschlossen ist oder es wird eine Fehlermeldung angezeigt.

 

Fehlerverarbeitung

Mit der Option Bei Fehler können Sie definieren, wie bei Auftreten eines Fehlers vorgegangen wird:

 

Skript abbrechen: Sobald ein Fehler auftritt, werden alle nach diesem Ereignis durchzuführenden Aktionen beendet. Dies ist das Standardverhalten bei Auftreten eines Fehlers. Wenn Sie möchten, dass auch bei einem Fehler fortgefahren werden soll, wählen Sie entweder die Option Weiter oder Throw aus.
Weiter: Die Aktionen werden nicht beendet. Sie können stattdessen auswählen, was in jedem der beiden Fälle (kein Fehler (Bei Erfolg) oder Auftreten eines Fehlers (Bei Fehler)) geschehen soll. So kann z.B. ein Meldungsfeld definiert werden, das den Benutzer darüber informiert, ob eine Seite erfolgreich geladen werden konnte oder nicht.
Throw: Wenn ein Fehler aufgetreten ist, wird mit dieser Option eine Ausnahme ausgelöst, die in der Variablen der Try/Catch-Aktion gespeichert wird. Mit dem Catch-Teil der Try/Catch-Aktion wird definiert, welche Aktion bei Auftreten eines Fehlers durchgeführt werden soll. Wenn kein Fehler auftritt, wird die nächste Aktion verarbeitet. Nähere Informationen dazu finden Sie im Abschnitt zur Aktion "Try/Catch Ausnahme".

 

Informationen zu DB-Transaktionen

Für jeden DB-Aufruf, für den eine Transaktion erforderlich ist, wird automatisch eine erstellt und anschließend geschlossen. Dies ist in einigen Konfigurationen eventuell nicht wünschenswert. Angenommen, Sie haben zwei DB-Seitenquellen, die einzeln zusammen aktualisiert werden sollen: Wenn beide Tabellen erfolgreich gespeichert wurden, so wird die Transaktion in die DB übernommen, andernfalls erfolgt ein Rollback. Zu diesem Zweck können Transaktionen auf einer Verbindungsbasis erstellt werden.

 

Wenn Sie eine Transaktion beginnen, verwenden alle DB-Operationen, die zur selben DB-Verbindung gehören, diese Transaktion.

 

Bei Verwendung einer Commit-Transaktion werden die Änderungen außerhalb Ihrer Transaktionsumgebung sichtbar. Änderungen können mit Rollback rückgängig gemacht werden. In diesem Fall sind die Änderungen, selbst wenn Sie Ihre Seitenquelle gespeichert haben, nach Durchführung eines Rollback nicht sichtbar! Beachten Sie, dass jede nicht abgeschlossene Transaktion (jede Transaktion, die nicht mit Commit übernommen oder mit Rollback rückgängig gemacht wurde) bei Erreichen des Endes der Aktionsstruktur automatisch mit Rollback rückgängig gemacht wird! Im Meldungsfenster wird dann eine entsprechende Warnung angezeigt.

 

Beachten Sie bitte, dass sich dieses Verhalten zwar auf explizite Transaktionsaktionen bezieht, aber auch für alle DB-Operationen gilt, die dieselbe Verbindung wie die Transaktion verwenden.

 

 


© 2019 Altova GmbH