Bonjour,
Je suis grand débutant dans l'exploitation d'Interbase. J'ai à construire une application multithreadée accèdant à une base de données :
- Un thread effectue des suppression dans la base de données,
- Un thread consulte la base de données
- Un thread effectue des modifications dans la base de données
En fait, ces threads sont gérés par des serveurs TCP Indy et représentent des connexions clientes.
Je me pose un problème au niveau de la gestion des transactions sur cette BD.
Théoriquement, un même client devrait utiliser la même transaction, pour que les suppressions et les modifications puissent être COMMITés ou ROLLBACKées de manière cohérente... Et c'est là que je me pose la question : comment faire ?
Chaque thread devrait avoir son TIbSQL, mais au niveau des TIbTransactions ? Dois-je gérer une liste (TList) de composants, et suivant le client du thread, assigner au TIbSQL la transaction qui lui est liée ? Au niveau du TIbDataBase, vu que normalement tous les threads se le partagent, puis-je utiliser le même pour tous les threads (est-ce threadsafe ?) Bref, au niveau de l'architecture, je sèche un peu.
Si quelqu'un a déjà été confronté au même problèe...
Cordialement,
A.R.
Partager