.
Transaction begin|end|rollback
LocalTransaction begin|end|rollback
RemoteTransaction begin|end|rollback
PyroBatchFTP bietet eine grundlegende Transaktionssteuerung. Eine Transaktion ist eine Gruppe von Befehlen, die entweder alle zusammen oder überhaupt nicht ausgeführt werden sollen. PyroBatchFTP ist in der Lage, im Falle eines Fehlers die bereits ausgeführten Teilkommandos lokal, am Server oder auf beiden Rechnern rückgängig zu machen.
Die Gruppe von Befelen wird zwischen Transaction begin und Transaction end Befehle geschrieben. Falls am Ende der Skript-Verarbeitung das Ende der Transaktion nicht ausgeführt wird, z.B. weil das Skript wegen eines Fehlers komplett abbricht oder weil der Transaction end Befehl wegen eines OnError Befehls übersprungen wurde, werden alle Dateibefehle seit Transaction begin rückgangig gemacht. Diese Rückgängigmachung kann auch explizit durch Transaction rollback erfolgen.
Der Befehl Transaction leitet eine Transaktion auf dem lokalen Rechner und am Server sein, d.h. Befehle werden ggf. auf beiden Rechnern rückgängig gemacht. Die Befehle LocalTransaction und RemoteLocalTransaction gelten dagegen nur für den entsprechenden Computer.
Hinweis: Serverseitige Transaktionen werden nur von PyroServer/Pro unterstützt. Für Verbindungen mit anderen Servern (PyroServer, Eurofile Server von Drittherstellern oder FTP Server mit PyroBatchFTP) funktionieren nur loake Transaktionen.
Transaction Unterbefehle:
begin | |
Leitet eine Transaktion ein. Transaktionen können nicht verschachtelt
werden (die führt zu einem Fehler).
| |
end | |
Schließt eine Transaktion ab. End ohne Begin ist nicht
erlaubt.
| |
rollback | |
Macht alle Dateibefehle seit dem letzten begin rückgängig. Rollback impliziert auch end. Rollback außerhalb eines begin/end Abschnitts ist erlaubt, wird aber ignoriert. |
Beispiel 1: Erstellt ein Verzeichnis am Server und verschiebt dorthin
drei Dateien. Falls dabei ein Fehler auftritt, bricht das Skript ab und führt
hierbei für die noch offene Transaktion ein LocalTransaction rollback
durch. Dabei werden die gelöschten (verschobenen) Dateien am PyroBatch Rechner
wieder hergestellt. PyroServer/Pro führt beim Verbindungsende ebenfalls ein
rollback für die offene Transaktion durch, d.h. bereits emfpangene Dateien und
das erstellte Verzeichnis werden gelöscht.
Transaction begin
RemoteMkDir "newsales"
RemoteChDir "newsales"
PutMove "Sales.dat"
PutMove "Expenses.dat"
PutMove "Reports.dat"
Transaction end
Disconnect
Beispiel 2: Gleiches Beispiel wie oben, jedoch mit Anwahl mehrerer Gegenstellen. Wenn ein Fehler auftritt, wird das Skript mit dem nächsten Server (bei Marke :NextSite) fortgesetzt. Hierbei wird Transaction end) übersprungen (nicht ausgeführt). An der Sprungmarke steht ein LocalTransaction rollback Befehl, der die Operationen rückgängig macht da kein Transaktionsende ausgeführt wurde. Der Server macht seine Befehle ebenso rückgängig, entweder weil er den Transaction rollback Befehl empfängt, oder weil er im Fall eines vorherigen Verbindugsabbruchs hierbei automatisch die offene Transaktion rückabwickelt.
Bei Ausführung ohne Fehler wird Rollback nach dem Ende ignoriert (siehe Beschreibung
zu Rollback in der Liste der Teilbefehle).
Connect ...
OnError SkipTo Nextsite
Transaction begin
RemoteMkDir "newsales"
RemoteChDir "newsales"
PutMove "Sales1.dat"
PutMove "Expenses1.dat"
PutMove "Reports1.dat"
Transaction end
:NextSite
Transaction rollback
-Disconnect
// site 2
Connect ...
Transaction begin
...
← Zurück zu Skript-Befehle