Announcement

Collapse
No announcement yet.

inkonsistente Zustände?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • inkonsistente Zustände?

    Hi,
    ich hab mal eine Frage zu inkonsistente Zustände:
    Wieso sind in diesem Beispiel (Anhang) die Zustände inkonsistent?

    Ich würde jetzt davon ausgehen, dass der r/w - Vorgang bei x1 durch das w(x1) abgeschlossen wurde und deshalb keine Auswirkungen auf die folgenden Operationen mit x2 hat.

    Wie kann ich allgemein inkonsistente Zustände erkennen?
    Attached Files
    PHP Code:
    <?php
    echo 'http://acs-it-worx.de/';
    echo 
    'http://www.youtube.com/user/ACSITWorx/'// mein YouTube Kanal
    echo '-----------------------------------------------------------------';
    echo 
    'http://www.autoservice-asberg.de/';
    ?>

  • #2
    Das erste write bucht den Betrag vom Konto ab. Damit ist das Geld weg, auf dem zweiten Konto ist es aber noch nicht vorhanden. Dieser Zustand ist erstmal inkonsistent - wenn auch unvermeidlich, denn ein gewisser Betrag hängt in der Luft.
    Erst wenn der Betrag dem Konto gutgeschrieben wurde, ist die Differenz wieder ausgeglichen.

    Innerhalb einer Transaktion können und dürfen solche inkonsistenten Zustände auftreten, wichtig ist nur, dass diese Zustände zum Ende der Transaktion entweder aufgelöst oder aber zurückgerollt werden.
    In die Transaktion selbst kann von außen nicht hineingesehen werden.

    Dim
    Zitat Tom Kyte:
    I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

    Comment


    • #3
      Hallo,

      wenn dazwischen ein Fehler passiert und das Geld von Kto1 weg ist, aber noch nicht auf Kto2 angelangt ist ist das Geld nicht mehr da. Das ist ein inkonsistenter Zustand - Abhilfe schafft im Beispiel der Überweisung eine Transaktion die im Fehlerfall das Geld wieder auf Kto1 legt.

      Wie kann ich allgemein inkonsistente Zustände erkennen?
      Einen allgemeinen Rat kann ich nicht geben, aber sobald es ähnlich zugeht wie bei einer Überweisung hast du einen - wenn er nicht per Transaktion geschützt ist.


      mfG Gü
      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

      Comment


      • #4
        Ok, also kommt es auf den Betrag y an. Danke an euch beiden.

        Wenn man das nun beheben möchte. wäre dann ein ROLLBACK angebracht? Bei Fehlern geht der ja auf den Ursprungsvorgang der Transaktion zurück.
        PHP Code:
        <?php
        echo 'http://acs-it-worx.de/';
        echo 
        'http://www.youtube.com/user/ACSITWorx/'// mein YouTube Kanal
        echo '-----------------------------------------------------------------';
        echo 
        'http://www.autoservice-asberg.de/';
        ?>

        Comment


        • #5
          Hallo,

          COMMIT wenns passt, sonst ROLLBACK.


          mfG Gü
          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

          Comment

          Working...
          X