# Webmasters - Dveloppement Web > Autres langages pour le Web > Coldfusion >  Problme Transactions SQL multiserveur

## patrick1140

Hello,

Ai un probleme un peu pointu, des ides pour le rsoudre mais prfere des avis avant....

Vais essayer d'etre simple...

On part sur la base d'un systme bancaire qui tourne sur plusieurs serveurs et UNE base de donnes 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 mme moment on lui paye ses intrets bancaires...

Le but d'un mouvement financier est de prendre le solde prcdent et de le mouvementer du montant (+ ou -) de la transaction... 

Or quand je regardes mes logs serveurs les 2 transactions se dbutent ( la meme milliseconde pret) en mme temps et prennent dont toutes les 2 le mme solde prcdent ce qui provoque une incohrence (dtectes 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 ide .. 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 prsent... le hic ... si pour une raison quelquonque de lock reste.. client bloqu ...

Je suis prenneur de toute ide

----------


## djtadpole

Bonjour,

l'ide est bonne.
Pour ton problme de lock bloqu, tu peux faire tourner un script qui dloque au bout d'un certain dlai (ta table temporaire prend le moment du lock)
A toi de voir si tu le dloques 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

----------


## jowo

Bonjour,

Il suffit d'utiliser correctement le mcanisme de transaction de ta base de donnes SQL. Pas besoin de rinventer la roue. Quelle base utilises-tu?

----------


## LarZuK

cflock ? sans dfinir de scope ?

----------

