Zugriff synchronisieren?

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

  • Zugriff synchronisieren?

    Hi

    ich hab ein merkwürdiges phänomen. Bisher dachte ich, der Zugriff würde autom Synchronisiert werden, aber vielleicht fehlt mir da noch was...


    Ich hab ein onlinespiel mit einem Shop. In dem Shop werden Artikel aufgelistet sind und es gibt jeweils einen Button zum Kaufen. Wenn der User drauf klickt geht der Artikel, der nur einmal vorhanden ist, in seinen Bestand und das Geld wird von seinem Online-Spiel-Kontostand abgezogen.

    Es gibt eine Tabelle Artikel:
    ArtikelID, BenutzerNr

    Und eine Tabelle Benutzer:
    BenutzerNr, Kontostand

    Wenn der Benutzer den Artikel kauft wird seine BenutzerNr in der ArtikelNr eingetragen.

    Jetzt ist es mir schon 2 Mal passiert, daß 2 Benutzer scheinbar gleichzeitig den Kaufbutton geklickt haben und bei beiden zwar das Geld abgezogen wurde, aber nur einer logischerweise den Artikel bekommen hat.

    Wie kann ich sowas verhindern?

  • #2
    Zitat von Pebbles123 Beitrag anzeigen
    Jetzt ist es mir schon 2 Mal passiert, daß 2 Benutzer scheinbar gleichzeitig den Kaufbutton geklickt haben und bei beiden zwar das Geld abgezogen wurde, aber nur einer logischerweise den Artikel bekommen hat.

    Wie kann ich sowas verhindern?
    In dem du überprüfst, ob der Artikel noch verfügbar ist, bevor du das Geld abziehst.

    „Bevor“ ist hier natürlich im atomaren Sinne gemeint - sprich, Transaktion.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Hallo,

      das kannst du mit Transaktionen oder pessimistic locking verhindern.

      Gruß,

      Amica
      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar


      • #4
        Danke für die Tips. Eine Prüfung erfolgt ja, aber die scheint ganz selten das falsche zu liefern. Ich vermute, daß es da wirklich genau zeitlich ist... werd mich mal zu dem locking Thema einlesen

        Kommentar

        Lädt...
        X