Bonjour à toutes et tous
Je me permets de venir vers vous pour exposer un problème que je rencontre depuis peu avec une base de données Firebird
Envrionnement de production
Moteur Base de données Firebird 2.5 installé en Super Classique sur un serveur Citrix (serveur virtualisé)
Base de données hébergée sur ce même serveur volumétrie 10Go environ, 260 tables, aucune contrainte de clé primaire, ni clé étrangère
Environnement applicatif
Application client développée en Delphi XE6 (accès lient serveur) via FireDac, gestion manuelle des transactions
Application exécutée sur 10 serveurs Citrix (environ 2 à 3 utilisateurs par serveur Citrix)
Quelques pics de montée en charge mais rien de bien phénoménal
Problématique
L'application utilise un générateur Firebird pour obtenir une clé technique unique pour la base de données.
Cette clé est ensuite insérée dans une table de données.
L'obtention de la clé se fait via un composant FireDac procédure stockée qui invoque simplement la procédure stockée de la base qui incrémente le générateur de 1.
Depuis quelque temps, je me rends compte que je peux me retrouver avec des doublons de clé, ce qui commence a mettre en péril l'intégrité de la base de données
En mode deboggage, aucun souci et aucune reproductivité possible, le générateur renvoyé est toujours unique.
Pistes de réflexion
Mauvais paramétrage de Firebird (volume de cache,...)
Temps de latence des serveurs Citrix
Montée en charge excessive
Si quelqu'un a déjà rencontré un problème similaire, ou simplement me donner des pistes de réflexion, je vous en remercie par avance