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

  • 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

  • #2
    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);
            }
        } 
    I like cooking my family and my pets.
    Use commas. Don't be a psycho.
    [URL="http://jscouch.de"]Blog[/URL] - [URL="http://coverflowjs.github.io/coverflow/"]CoverflowJS[/URL]

    Kommentar


    • #3
      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?!

      Kommentar


      • #4
        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
        [url]www.php-maven.org[/url] PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
        Twitter @ [url]https://twitter.com/#!/mepeisen[/url] und Facebook @ [url]http://t.co/DZnKSUih[/url]

        Kommentar

        Lädt...
        X