Hello,
Ai un probleme un peu pointu, des idées pour le résoudre mais préfere des avis avant....
Vais essayer d'etre simple...
On part sur la base d'un système bancaire qui tourne sur plusieurs serveurs et UNE base de données SQL..
J'ai un probleme qui se produit une fois par mois environ ...
Supposons qu'un client fasse un retrait d'argent et qu'exactement au même moment on lui paye ses intérets bancaires...
Le but d'un mouvement financier est de prendre le solde précédent et de le mouvementer du montant (+ ou -) de la transaction...
Or quand je regardes mes logs serveurs les 2 transactions se débutent (à la meme milliseconde pret) en même temps et prennent dont toutes les 2 le même solde précédent ce qui provoque une incohérence (détectées vu qu'on check toutes les nuits) du solde du client...
Aucun lock au niveau du serveur ne peut fonctionner car ce sont plusieurs serveurs distincts qui font les transactions..
Mon idée .. une table de locks temporaires au niveau sql qui contient l'id du client et qui empeche toute autre transation tant qu'un lock est présent... le hic ... si pour une raison quelquonque de lock reste.. client bloqué ...
Je suis prenneur de toute idée
Partager