|
Publicité ' | ||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mai 2010 Messages : 1 ![]() |
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 |
|
|
00
|
|
|
#2 |
|
Futur Membre du Club
![]() Inscription : mars 2007 Messages : 29 ![]() |
Bonjour,
l'idée est bonne. Pour ton problème de lock bloqué, tu peux faire tourner un script qui déloque au bout d'un certain délai (ta table temporaire prend le moment du lock) A toi de voir si tu le déloques automatique ou pas. exemple pour un delock au bout de 30 secondes et un script qui tourne toutes les minutes : Lock se fait à 20:00:05 A 20:01:00 le lock existe depuis 55 secondes (> 30 secondes) => Delock |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() |
Bonjour,
Il suffit d'utiliser correctement le mécanisme de transaction de ta base de données SQL. Pas besoin de réinventer la roue. Quelle base utilises-tu? |
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : décembre 2005 Messages : 31 ![]() |
cflock ? sans définir de scope ?
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com