Ankündigung

Einklappen
Keine Ankündigung bisher.

Transaktion Rollback bei Timeout?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • DarkManX
    hat ein Thema erstellt Transaktion Rollback bei Timeout?.

    Transaktion Rollback bei Timeout?

    Hallo,

    kann man irgendwie alle vorgenommenen Datenbankeingriffe rückgängig bei einem Timeout des Requests machen? Also wenn ein Script zu lange ausgeführt und nicht zu Ende verarbeitet wird, soll dann alles auf den Ausgangszustand gebracht werden. Geht das?

    Gruß
    DMX

  • mepeisen
    antwortet
    Normalerweise reagiert jede transaktionale Datenbank bei einem Abbruch der Verbindung mit einem Rollback. Bei persistenten Verbindungen ist es eventuell etwas schwieriger.

    Davon abgesehen:
    PHP: Verbindungssteuerung - Manual

    Einen Kommentar schreiben:


  • DarkManX
    antwortet
    Ok, aber wenn du ein Script aufrufst, dann verlängert sich doch nicht automatisch die execution time, nur um eine Exception zu behandeln, oder? Wenn ein Script zu lange ausgeführt wird, dann bricht er doch einfach nach Zeit x ab und fertig ist?!

    Einen Kommentar schreiben:


  • rudygotya
    antwortet
    Bin mir nicht sicher, ob eine Endlosschleife aufgelöst werden würde. Bei Fehlern kannst du ne Exception fangen und rollback machen. Unterstützt aber nicht jede Datenbankengine (bei mysql meines Wissens nach nur InnoDB).

    Such dir ein Framework, verwende den Datenbank-Adapter, dann sieht das in etwa kurz gesagt so aus:

    PHP-Code:
        public function insertFoo() {
            try {
                
    $dbA->startCommit();
                
    //ganz viele queries
                
    $dbA->commit();
                return 
    $id;
            } catch (
    Exception $e) {
                
    $dbA->rollBack();
                throw (
    $e);
            }
        } 

    Einen Kommentar schreiben:

Lädt...
X