2009-10-03 6 views
2

Une fois l'application fermée, fbclient.dll reste en mémoire pendant environ 3 secondes. Donc, il verrouille le fichier de base de données et empêche le déchargement de mon application. J'utilise Firebird intégré.Délai de déchargement Firebird intégré

Le problème est lié aux événements. Je m'inscris aux événements en utilisant isc_que_events. Si je ne m'inscris pas aux événements, Dll se décharge instantanément.

J'ai fait face à ce problème dans les versions FB précédentes et maintenant en 2.1.3 c'est toujours pareil.

Le même problème est décrit ici http://tracker.firebirdsql.org/browse/CORE-15, mais il est résolu comme "Impossible à reproduire".

Est-ce que quelqu'un est confronté à ce problème ou y at-il un problème avec mon code?

+0

Sous-titrez-vous quelque chose dans Firebird Tracker? –

+0

Non Fedor

+0

Vous abonnez-vous correctement (isc_cancel_events, iirc) avant d'essayer de décharger? –

Répondre

0

J'ai réécrit ma logique et maintenant je ne ai pas besoin de souscrire à des événements locaux. Donc ce n'est plus un problème pour moi. Mais le problème demeure.

2

Utilisez-vous le fournisseur .NET? Celui-ci maintient les connexions ouvertes dans une piscine, c'est peut-être le problème. Essayez d'effacer le pool de connexion avant de quitter votre application:

FbConnection.ClearAllPools(); 
+0

Non J'utilise l'API Firebird native – Fedor

+0

J'utilise le fournisseur .NET et vous m'aidez à résoudre le problème sur lequel j'ai travaillé toute la journée. J'ai choisi d'appeler simplement ClearPool (connexion), et cela a très bien fonctionné. – NielW