Bonjour Bonjour !
Je développe un logiciel sous Delphi (7) utilisant une base de données Interbase (6) et composé de plusieurs Threads chacun pouvant avoir besoin d'accéder à la base de données.
De temps à autre, il arrive qu'un Thread reste bloqué en faisant un ExecSQL ou Open. Fichier log aidant, j'ai noté que cela arrivé si 2 Threads commençaient à faire une requête au même instant (Et pas seulement un chevauchement commencé à 2 instants différents. Il ne s'agit pas non plus d'un Deadlock car je ne reçois pas d'exception même avec 'nowait' défini clairement dans la transaction). Et à partir de ce moment, même une requête qui fait un Update dans une table à part avec une transaction à part se bloque alors qu'une requête sur les mêmes données mais dans une autre application ne pose aucun problème.
D'où ma question : Pouvez-me dire si Interbase est connu pour avoir des problèmes avec une utilisation Multithreads sur un unique composant TIBDatabase ?
Donc comme solution, j'utilise un Event Windows pour synchronisé mes accès base de données au sein de l'application et à priori ca marche.
Partager