anpera.net https://anpera.dyndns.org/phpbb3/ |
|
Fehler bei Wiedererweckung https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=2526 |
Seite 1 von 1 |
Autor: | Lestat [ Mi 03 Mai, 2006 22:28 ] |
Betreff des Beitrags: | Fehler bei Wiedererweckung |
Hi Community ![]() Meine User haben in letzter Zeit immer öfter mal das Problem, dass wenn ein Char seine Partnerin aus dem Reich der Toten wiedererwecken lässt, dass sie dennoch tot bleibt. Wenn sie sich ausloggt, er sie erweckt, und sie sich dann wieder einloggt klappt es immer, nur ist das eine recht unbefriedigende Lösung. Hatte jemand von euch auch schon das Problem, und hat eine Lösung parat? Oder zumindest einen Ansatz wo das Problem hängen könnte? Gruß |
Autor: | Eliwood [ Do 04 Mai, 2006 19:16 ] |
Betreff des Beitrags: | Re: Fehler bei Wiedererweckung |
Lestat hat geschrieben: Hi Community
![]() Meine User haben in letzter Zeit immer öfter mal das Problem, dass wenn ein Char seine Partnerin aus dem Reich der Toten wiedererwecken lässt, dass sie dennoch tot bleibt. Wenn sie sich ausloggt, er sie erweckt, und sie sich dann wieder einloggt klappt es immer, nur ist das eine recht unbefriedigende Lösung. Hatte jemand von euch auch schon das Problem, und hat eine Lösung parat? Oder zumindest einen Ansatz wo das Problem hängen könnte? Gruß ==> Transferbug. (Bisher) Unlöslich, vermeidbar wenn die Userin keinen Schritt macht bist der Geliebte sie befreit hat. Im Posteingang kann man beliebig Erfrischern => Möglichkeit für Worte wie "Darfst wieder drücken"; |
Autor: | Lestat [ So 07 Mai, 2006 22:09 ] |
Betreff des Beitrags: | |
Hatte ich schon befürchtet. Vielen Dank für die Klarheit, auch wenns nicht die Gewünschte Antwort ist. ![]() |
Autor: | Auric [ Mo 08 Mai, 2006 00:24 ] |
Betreff des Beitrags: | |
Transferbugs lassen sich manchmal durch die Wahl eines anderen Tabellentyps beseitigen. InnoDB soll da ganz gut sein... |
Autor: | Eliwood [ Mo 08 Mai, 2006 15:59 ] |
Betreff des Beitrags: | |
Sorry, aber das bezweifle ich bei dieser Art von Bug aber völlig. Wie kann bitte ein Tabellentyp entscheident seind für eine Überschreibung von Daten? Der Transferbug in LoGD läuft folgendermassen ab: User A startet Script, Startwert für Gold: 20'000 User B schickt nur wenige Millisekunden darauf Gold an User A - In der Datenbank wird auf 25'000 hochgeschrieben. Das "session["user"]"-Array von User A weiss das aber nicht dass sich da ein neuer Wert befindet - Somit überschreibt die Funktion saveuser einfach die 25'000 wieder mit den 20'000. Und ich denke nicht dass ein Tabellentyp plötzlich Funktionen in mitten des Scriptes aufrufen kann die zuerst prüft ob da alles richtig ist. Hingegen hab ich eine Wirksame Methode gefunden - Und bessere sie aus - Um die Wahrscheinlichkeit deutlich zu verringern und nebenbei noch den Update-Query des Users zu verkleinern. |
Autor: | Auric [ Mo 08 Mai, 2006 19:26 ] |
Betreff des Beitrags: | |
Er kann Transferbusg nicht völlig ausschließen, allerdings hat InnoDB gewisse vorteie wie: wikipedia hat geschrieben: Mit InnoDB bezeichnet man die transaktionsorientierte Storage-Engine von Innobase Oy Inc. für das Datenbankmanagementsystem MySQL, welche seit der Version 3.23.34a verfügbar ist.
Im Gegensatz zur standardmäßig verwendeten Engine MyISAM unterstützt InnoDB Transaktionen, das heißt: * Alle Schreiboperationen können rückgängig gemacht werden (rollback) * Wiederholte Lesezugriffe innerhalb einer Transaktion sind von Schreibzugriffen anderer Transaktionen nicht beeinflusst (Isolation aus ACID). * Schreibzugriffe in einer Transaktion bewirken eine Schreibsperre der betroffenen Datensätze für alle anderen Transaktionen (Row level locking). vor allem das Row level locking dürfte intressant sein. |
Autor: | Rikkarda [ Di 09 Mai, 2006 00:12 ] |
Betreff des Beitrags: | |
hm eine ein wenig umständlichere aber durchaus wirkungsvolle Version um den Transferbug ziemlich gut auszuschliessen, habe ich durch das Gildensystem mit der special_vars funktion, die die transaktionen erst in eine seperate Tabelle speichert und bei Klick des Empfängers (bei mir village.php) im Dorf dann ausgeführt werden.. so kann es so gut wie gar nicht zu überschreibungen kommen. Ich nutze es mittlerweile in fast allen transaktionsmöglichkeiten, die ich so gefunden habe.. bekommen habe ich es damals von Raven aus Rabenthal, da er damit den Transferbug im Gildentool ausgeschlossen hatte.. Falls wer interesse an dieser Variation hat, bin ich gern bereit sie mal zu posten. Nur da es ein wenig viel wäre, alles zu erklären, wenn kein Interesse besteht, mach ich es net direkt *fg* lg Rikka |
Autor: | Kevz [ Di 09 Mai, 2006 11:58 ] |
Betreff des Beitrags: | |
InnoDB, ist garnicht so aufwendig wie alle denken. Man schickt einfach via. MySQL-Query ein "commit", fügt dazu noch einen kleinen Tracker mit "rollback" Option hinzu und fertig ist das ganze. 100% Schutz natürlich und man kann das ganze ggf. widerholen bei fehlschlag.. Also wesentlich Sinnvoller und einfacher ![]() |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |