[ Client serveur ] besoin d'explication sur accés concurent ...

besoin d'explication sur accés concurent ... [ Client serveur ] - SQL/NoSQL - Programmation

Marsh Posté le 01-05-2002 à 22:35:52    

J'au un logiciel a faire pour des reservations de billet d'avion ... jusque la rien de dificil ....
 
 Mais quand je prend le meme executable et que j'attaque ma base Oracle avec 3 postes pour 1 seule et unique place restante ... le sablier SQL généré par oracle apparait et 2 postes se bloquent ...  
 
 J'aimerai que l'on m'explique le role du Rollback ?
 ------------------------------------- du commit ?
 
 Comment faire pour eviter cette situation ? Il convient que plusieur postes doivent pouvoir se servir de la base de donnée et non pas une seule machine seulement ...
 
Please confrére en detresse ...
 
 
Enfin il me semble que si je pouvais faire une reqete SQL testant le nombre de place avec une condition sa pourait m'aider...  
 
 
 du genre  If plus de place then  
               Message d'erreur  
               Rollback  
            else  
              Update ...  
              placedisponible :=lacedisponible-1;
 
               
merci d'avance

Reply

Marsh Posté le 01-05-2002 à 22:35:52   

Reply

Marsh Posté le 02-05-2002 à 08:57:42    

tu dois utiliser des locks sur les objets pour que tes transactions fonctionnent correctement.
 
Genre du 2PC (2 phase commit) ou un système de verrour
 
commit = valider les changements dans la BD
rollback = annuller ces changements (= revenir à la situation telle qu'elle était au départ).
 
Pour ton code il est complètement foireux. Suppose que tu as 3 postes qui attaque la BD en meme temps. Tu as donc 3 fois la meme instance de ta méthode qui s'execute.
 
Place restante = 1
 
Poste 1 =  Place restant -> update
pendant l'update (donc avant -1)
 
 
Poste 2 & 3 place restante = 1 -> update chacun de leur cotté et place disponible -1
 
donc tu te retrouves avec placeDisponible = -2
 
C'est un cas d'école la réservation de billets d'avion. Tu ferais bien de relire ton cours ... (parce que le roolback ne sert absolument pas a ce que tu veux lui faire faire)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 02-05-2002 à 12:00:41    

Je suis désolé j'ai pas de cours la dessus , mais stp indique moi de la doc ...  
 
please help

Reply

Marsh Posté le 02-05-2002 à 12:45:57    

australe a écrit a écrit :

Je suis désolé j'ai pas de cours la dessus



 
 :heink:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 02-05-2002 à 12:52:09    

c'est écrit en quoi ton logiciel ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 02-05-2002 à 22:02:32    

Delphi  
 
mais j'attaque une base Oracle ..

Reply

Marsh Posté le 02-05-2002 à 22:03:36    

J'ai effectivement pas de cours , car c'est a nous de se mettre dans le bain . Il parait que c'est seulement en etant confronté au probleme que l'on comprendra réellement le cours

Reply

Marsh Posté le 03-05-2002 à 00:18:42    

Je ne m'y connais pas trop en SQL mais cela est possible je ferais une liste d'attente (un peu comme un serveur d'impression c'est chacun sont tour  :hap: )


---------------
[:procat]
Reply

Marsh Posté le 03-05-2002 à 09:23:53    

ta question est intéressanete mais deplhi je connais pas du tout. Ca m'étonne qd meme qu'on vous donne pas de cours. C'est vraiment pas sympas. Et puis dire que ca va s'apprendre comme ca c'est le meilleur moyen  d'éduquer des programmeurs avec un paquets de rustines dans la main ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 03-05-2002 à 09:31:29    

oui , mais si 4 personne se connecte ne meme temps , et que le premier fume une clope , les autres il peuvent se gratter en attendant qu'il termine sa reservation ...

Reply

Marsh Posté le 03-05-2002 à 09:31:29   

Reply

Marsh Posté le 03-05-2002 à 10:05:03    

australe a écrit a écrit :

oui , mais si 4 personne se connecte ne meme temps , et que le premier fume une clope , les autres il peuvent se gratter en attendant qu'il termine sa reservation ...  




 
j'ai bien compris ton problème ... si c'est à moi que tu t'adresses évidemment.


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 03-05-2002 à 22:42:09    

please help ...

Reply

Marsh Posté le 04-05-2002 à 11:47:38    

je peux évidemment te filer un cours que j'ai eu à l'unnif en PDF. Je ne sais pas si ca te servira ... Si ca t'intéresse msg me


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 04-05-2002 à 12:37:57    

australe a écrit a écrit :

oui , mais si 4 personne se connecte ne meme temps , et que le premier fume une clope , les autres il peuvent se gratter en attendant qu'il termine sa reservation ...  




 
il faut mettre interdiction de fumer en utilisant ton prog !!!lol
 
non plus serieusement tu envoi les données petit a petit ? ou en une seule fois a la fin ?


---------------
[:procat]
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed