22-01-2010, 09:42 PM
(22-01-2010, 08:12 PM)Sephi-Chan a écrit : Ta première impression est la bonne. Les transactions sont effectuées les unes à la suite des autres.
C'est juste que dans son cas, en emballe un ensemble de requête de transaction pour effectuer une résolution globale (pour plusieurs joueurs) complexe qui n'a besoin que d'être fait une fois. Si on a plusieurs requêtes qui viennent pour la même résolution, c'est chiant. Donc la première qui arrive teste un flag "résolution effectuée". S'il est à false, la résolution s'effectue puis le flag est passé à false. Les autres demandes (qui se sont allés dans la file) effectuent également le test mais échouent (c'est voulu) : la résolution est bien effectuée une seule fois.
je crois ce que voulais dire Ter Rowan c'est qu'il y a des rollback() inutiles quand plusieurs transaction sont effectuées au meme moment mais que certaine ne sont pas realisées...
mais cela ne semble par etre le cas
dans ma transaction (avec try et catch pour les exeptions), je SELECT tout ce qui a pour flag=0 et je pose un flag=1 des que possible ensuite je manipule des tables et des entrees puis vient le commit()...et d'apres ce que j'ai pu tester il n'y a pas de rollback, les transactions qui echoues sont tout simplement pas realisées
desolé mais Ter Rowan et moi meme semblont avoir du mal à comprendre les transactions:$