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

Connexion aux bases de données Firebird Discussion :

Problème de connexion Firebird


Sujet :

Connexion aux bases de données Firebird

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 513
    Par défaut Problème de connexion Firebird
    Bjr
    j'utilise depuis des années Firebird pour accéder à une base depuis un client vers un serveur en réseau local. Sous réserve de créer une règle entrante sur le port 3050 je n'ai jamais eu de problème. Récemment sur une de mes machines j'ai installé Win 8.1 et la suite embarcadero RAD Studio interbase XE7 compris. Depuis lorsque j’exécute une application qui fait appel à Firebird je dois placer GDS32.DLL (de Firebird autrement dit fbclient.dll renommé) dans le répertoire d'icelle pour éviter l'appel de la DLL de même nom qui réside dans le répertoire Windows et n'est compatible qu'avec Interbase. Jusque là pas de problème. Quand j'accède depuis ce poste à une base Firebird sur un poste local relié par Ethernet ou par Wifi aucun problème. C'est l'inverse qui ne fonctionne pas. Évidemment la règle d'ouverture du port 3050 est généralisée sur tous mes postes de travail.
    L'erreur est du type -904 "unavailable database".

    Je résume par ce croquis :
    POSTEWIN8 (présence de Interbase XE7) requête vers BD sur POSTEWIN7 : OK (Liaison Wifi ou Ethernet)
    POSTEWIN7 requête vers BD POSTEWIN8 (présence de Interbase XE7) : erreur -904 (Liaison Wifi ou Ethernet)

    Intrigué je refais la même série de tests avec un poste sous Win XP. cela donne les mêmes résultats
    La connexion se fait si la requête sort du poste POSTEWIN8 (présence de Interbase XE7) mais jamais si elle y entre.

    Tous les tests sont fait avec Flamerobin 0.9.2 ou 0.9.3 selon les postes.

    Les DataPath sont du type : 192.168.1.10:C:\ProgramData\MyDir\MyBase.fdb

    Pour le moment je suis à court d'idée.

  2. #2
    Membre Expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 052
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 052
    Par défaut
    Bonjour,

    Si je comprend bien quand les postes se connectent au "serveur" POSTEWIN8 c'est interbase qui est utilisé ?

    Interbase et Firebird (à confirmer car ca fait un moment que je n'ai pas installé interbase) utilisent le même port 3050. Donc l'installation sur POSTEWIN8 d'interbase XE7 fait que c'est lui qui va répondre sur ce port.

    Interbase fourni avec RAD studio est une licence developpeur il y a quelques restrictions comme le nombre de connexion et aussi il me semble que le serveur ne peut pas rester allumer plus de 48h (il faut le redémarrer manuellement). Vérifiez que le service est bien démarré.

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 706
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 706
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    tout d'abord il s'agit de quelle version de l'OS 32 ou 64 bits ?

    en admettant que cela soit du 64 bits (la plupart des postes le sont maintenant) et que Firebird soit également 64 bits (si l'OS est 64 bits il est logique de mettre la version 64 bits de Firebird) et en écartant tout problème de pare-feu

    Tout d'abord FlameRobin : il est étrange qu'il soit impossible de se connecter car ce dernier utilise fbclient.dll et non gds32.dll. Sauf si, le service Interbase est démarré et de surcroit sur le même port ! << AMHA c'est là ton problème !

    Ce qui suit est plus général
    Pourquoi GDS32.dll ?
    uniquement pour de la compatibilité avec de vieille version de programmes utilisant la gds32.dll et sur lesquels on ne peut changer la bibliothèque d'accès
    (je pense par exemple aux composants BDE (obsolètes) ou DBExpress de Delphi)
    et comment ?
    lors de l'installation de Firebird la proposition de génération et copie de gds32.dll est en option, dans le cas d'un 64 bits deux gds32.dll (une 64 bits et une 32 bits) seront en fait copiées la 64 bits dans le répertoire System32 et la 32 bits dans SYSWOW64. oui, je sais il y a de quoi être plus que confus !
    maintenant si l'installation d'Interbase se fait après celle de Firebird : deux choix soit réinstaller firebird soit faire une copie manuelle de fbclient.dll (en la renommant), dernière solution que tu sembles avoir adopté! cependant attention aux versions 32/64 bits et à leur répertoires !

    reste le cas, complexe, où l'on veut à la fois Interbase et Firebird !
    première chose déjà, on utilisera deux ports d'écoutes différents et oui on se verra dans l'obligation (en cas d'utilisation de composants ne permettant pas de changer de bibliothèque) de copier la bonne version de gds32.dll (quand je dis bonne version il s'agit à la fois du SGBD mais aussi du 64/32 bits) là encore le fait que la dll soit nommer gds32 rend les choses compliquées.

    toutes ces choses claires à l'esprit, je peux te dire que à la maison j'ai aussi un réseau poste WIN8 64 /XE4,XE7,XE10 firebird 2.5 64 interbase XE7
    et un poste VISTA 32 (même pas XP) avec Firebird 2.5 32
    et que je n'ai aucun soucis pour me connecter aux bases sur mes PC wifi (sauf peut être avec mes nouveaux programmes en debug et ce pare-feu de norton) je me connecte même à distance aux bases sur un autre site (FB 2.1 32 bits, windows server)

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 513
    Par défaut
    Bonjour et merci pour vos réponses.

    1) Je souhaite utiliser Firebird et non Interbase, même si pour des usages ultérieurs je préfère ne pas désinstaller complètement ce dernier. Dès le début de l'installation de RAD Studio j'ai consulté la maintenance pour savoir si je pouvais faire cohabiter Firebird (en production) et Interbase (en études). J'ai finalement arrêté les services Interbase : InterbaseGuardian Developer_ibxe7 et Interbase Server developer_ibex7 qui sont en mode manuel au cas où un jour je voudrais faire des tests. Il me semble que ces services ne sont pas ceux installés de façon standard et que leur noms résultent des recommandations de la hotline je ne me souviens plus très bien mais s'ils sont dnas la liste des services ils le sont en mode manuel. J'ai établi la règle suivante pour toute application adressant une requête au serveur Firebird : placer GDS32.DLL (issu de Firebird) dans le répertoire de la dite d'application pour éviter que la GDS32.DLL de Interbase situé dans le système prenne la main.

    A moins que d'autres services Interbase soient lancés je ne pense pas que le port 3050 soit dirigé vers autre chose que le serveur FB. D'ailleurs en local ça fonctionne ainsi je ne vois pourquoi une requête émise depuis le réseau par une application (ayant GDS32.DLL version firebird dans son répertoire) fonctionnerait moins bien.

    2) Mon OS est en 32 bits

    Je suis bien conscient que ça "devrait marcher" et remercie Sergio de me confirmer cette conviction. Reste à découvrir ce qui cloche.

  5. #5
    Membre Expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 052
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 052
    Par défaut
    Citation Envoyé par frantzgac Voir le message
    Je suis bien conscient que ça "devrait marcher" et remercie Sergio de me confirmer cette conviction. Reste à découvrir ce qui cloche.
    Je te confirme aussi que ça devrait marcher. (comme toute chose qui le devrait et qui ne le marche pas quand même)...

    Trêve de plaisanterie, désolé d'avoir voulu exploré la piste d'interbase qui est bien souvent la piste la plus probable lorsqu'on a installé firebird et interbase sur le même poste.

    sur le poste Win8 il n'y aurait pas un firewall /Antivirus qui bloquerait ?

    Avez vous testé avec une autre base ?

    ou même avec GSec en remote ?

    sur POSTEWIN7 ouvrez une fenetre DOS (cmd) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    cd c:\Program files\firebird\firebird_2_5\bin
    gsec -user SYSDBA -password masterkey -database IP_PCWIN8:"c:\program files\firebird\firebird_2_5\security2.fdb"
    di                              <- liste les users
    q                               <- quitte gsec

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 706
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 706
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    J'ai établi la règle suivante pour toute application adressant une requête au serveur Firebird : placer GDS32.DLL (issu de Firebird) dans le répertoire de la dite d'application pour éviter que la GDS32.DLL de Interbase situé dans le système prenne la main.
    moui mais bon, perso je préfère pouvoir indiquer que le bibliothèque est fbclient.dll et ne pas copier des gds32.dll partout

    et cela ne répond pas au faut que flamerobin utilisant fbclient.dll et pas gds32, flamerobin devrait fonctionner (et ce dans les deux sens W7<->W8)

Discussions similaires

  1. Problème connexion FireBird Embedded
    Par Dark Christou dans le forum Firebird
    Réponses: 2
    Dernier message: 31/12/2009, 14h29
  2. Problème connexion FireBird Embedded
    Par Dark Christou dans le forum C#
    Réponses: 0
    Dernier message: 23/12/2009, 10h23
  3. Problème de connexion à firebird
    Par tchezan dans le forum Bases de données
    Réponses: 1
    Dernier message: 17/04/2008, 00h44
  4. Réponses: 3
    Dernier message: 18/11/2007, 15h42
  5. problème de connexion avec une base firebird
    Par vbcasimir dans le forum Bases de données
    Réponses: 1
    Dernier message: 30/05/2005, 12h40

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