Bonjour,
Via un soft developpé en delphi 7, je fait appel une procedure stockée de mon SGBD Firebird via ADO qui lui meme passe par ODBC.
Ma chaine de connection :
CNXSTRING=Provider=MSDASQL.1;Extended Properties="Driver=Firebird/InterBase(r) driver;Dbname=192.168.XXX.XXX:dbname;CHARSET=NONE"
L'appel a ma procedure stockée :
execute procedure CLI$MAJARTICLE (:0,:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13,:14,:15,:16,:SITE)
Cette procedure stockée fait des inserts et des updates tres simples dans ma base.
Or, je me rend compte que ces modifications ne sont visibles par un autre utilisateur que environ une minute apres la fermeture de mon coposant BD.
Durant cette minute les modif ne sont pas visibles, toute tentative de modif de ces enregistrements aboutie a un message d'erreur de type deadlock.
lock conflict on no wait transaction
deadlock
update conflicts with concurrent update
Exemple :
Derniere Update : 17h52m15s (impossible de voir les modif d'un autre client)
Fermeture de la connection : 17h54m15s (impossible de voir les modif d'un autre client)
1 minute apres la fermeture : 17h55mh15 (tout va bien, on voit les modifs) alors que le programme ne fait rien pendant cette minute, enfin en tout cas il ne log aucune activité.
Il est a noter que si tue la tache de ce soft, les modifs ne sont jamais
"commitées".
Tout se passe comme si la fermeture de la connection et donc le "commit" etait effectué avec environ 1 minute de retard (peut etre du a ADO, ODBC ou au soft que j'utilise).
Suivant les symptomes decrits qu'en pensez-vous (ADO,ODBC ou le soft développé en delphi) ?
Si c'est lié au driver (ADO ou ODBC), y'a t'il moyen de ne pas avoir ce délais ?
A noter que quand je fait des updates directement dans ADO, sans
passer par une procedure stockée, je n'ai aucun délais...
genre : UPDATE XXXX SET etc.... et si je met exactement ce meme code dans ma procedure stockée, j'ai ce délais.
Que le session soit ouverte en mode commitretaining ou commit ne change rien a ce délais.
Merci d'avance de votre aide.
- Jerome -
Versions :
Delphi : 7
Firebird serveur et client : 1.5.3
ODBC driver IBPhoenix : 2.00.00.129
ADO : Mis a jour a vec la derniere version (je l'ai plus en tete la)
Partager