IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

InterBase Discussion :

Blocage Interbase Delphi MultiThreads


Sujet :

InterBase

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 17
    Points : 13
    Points
    13
    Par défaut Blocage Interbase Delphi MultiThreads
    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.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 190
    Points : 218
    Points
    218
    Par défaut
    bonjour

    J'utilise firebird en mode superserveur et je n'ai pas de problemes particulier avec les query dans les threads (avec un seul tdatabase global)

    mais regarde voir cet article

    http://www.delphicorner.f9.co.uk/articles/db1.htm

    d'après l'article il faudrait utiliser des tsession diffférents pour chaque thread

    a voir ?
    @+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Merci beaucoup.

    Cet article est fort intéressant. J'avais choisi les composants Interbase (IBDatabase, IBTransaction, ...) pour pouvoir avoir plusieurs Transactions simltanées. Tu me donnes manifestement une solution plus adaptée et plus généraliste (BDE par rapport à IB).

    Bref, il va falloir que je réécrive ma partie BD ....

    Merci encore

  4. #4
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    ATTENTION
    inspire toi de l'exemple, mais surtout n'utilise pas le BDE
    c'est vieux, non suivi, et une catastrophe pour une application avec un serveur SQL comme Firebird ou Interbase
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Quel jeu de composants Delphi ai-je intéret à utiliser alors (pour avoir accès aux sessions) ?

    Ou alors dois-je changer de base de données ?

  6. #6
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    UIB, c'est fait pour ça et c'est écrit pour le multithread
    open source, de qualité et livré avec les exemples qui vont bien bien

    et au passa arreter d'utiliser Interbase 6, vieux, buggé, il faut utiliser soit Interbase 7 soit Firebird
    mais utiliser Interbase 6, c'est utiliser windows millénium, c'est du même tonneau
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. les + et - d l'interbase delphi
    Par bel_louiza dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/09/2006, 17h32
  2. blocage de delphi au moment du debogage
    Par sweetdreamer dans le forum Delphi
    Réponses: 2
    Dernier message: 06/06/2006, 22h55
  3. [Interbase]Delphy 2005
    Par JMDG13 dans le forum Bases de données
    Réponses: 2
    Dernier message: 15/10/2005, 19h22
  4. pb connection interbase delphi 7
    Par bianco dans le forum Bases de données
    Réponses: 3
    Dernier message: 19/08/2004, 12h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo