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 :

VPN Très lent et pertes de connexions


Sujet :

Connexion aux bases de données Firebird

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 10
    Points : 10
    Points
    10
    Par défaut VPN Très lent et pertes de connexions
    Bonjour,

    nous avons une application distribuée sur plusieurs sites pour certains clients. Il arrive que ces sites sont reliés via un VPN avec une connexion de (très) mauvaise qualité.
    Chaque site possède sa propre base et nous avons développé un service Windows qui s'occupe de la synchronisation des données entre les différentes bases.
    Problème : il y a régulièrement des pertes de connexion qui interrompent le traitement. Mais la transaction reste active sur le serveur, ce qui provoque des erreurs de verrous ensuite quand le service reprend son traitement.
    Les derniers tests ont été effectués avec FB 2.1, mais le problème déjà constaté avec les versions 1.5.4 et 2.0.3.
    Première question : y a-t-il un moyen de demander au serveur de déconnecter automatiquement assez rapidement ces connexions toujours actives ?

    Nous développons avec Delphi 6. Nous avons utilisé les composants IBO (4.8), puis refait des tests avec UIB (2.1). Il semble que IBO soit moins sensible que UIB (erreur de perte de connexion moins fréquent), mais il arrive que l'appli se bloque alors que cela n'arrive pas avec UIB. Quelqu'un a une explication sur cette différence de réaction, sachant que c'est le même client Firebird qui est utilisé ?

    Merci d'avances pour vos réponses.

    B.L.

  2. #2
    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
    j'aurais d'abord tendance à dire que c'est le service qui est mal fait

    Vous pouvez changer la valeur de keepalive (http://www.linux.org/docs/ldp/howto/.../overview.html)

    # Normally, Firebird uses SO_KEEPALIVE socket option to keep track of
    # active connections. If you do not like default 2-hour keepalive timeout
    # then adjust your server OS settings appropriately. On UNIX-like OS's,
    # modify contents of /proc/sys/net/ipv4/tcp_keepalive_*. On Windows,
    # follow instrutions of this article:
    # http://support.microsoft.com/default.aspx?kbid=140325
    dans la 2.5 on pourra tuer une connexion.

    voilà pour une première réponse
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  3. #3
    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
    un truc à tester, c'est que le client après une perte de connexion, tente d'abord une déconnexion propre au retour du réseau.
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par makowski Voir le message
    j'aurais d'abord tendance à dire que c'est le service qui est mal fait
    Merci, c'est le genre de réponse qui remonte le moral !
    Si, quel que soit le composant (IBO ou UIB), l'appel à Execute ne rend pas la main au bout de plusieurs minutes et que je finis par avoir une erreur de perte de connexion, je ne vois pas ce que je peux faire de plus dans mon code.

    B.L.

  5. #5
    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
    ben quand on est pas certain de la fiabilité d'une connexion, le meiux est de changer de modèle et passer par une transmission de scripts par exemple
    avec un checksum pour être certain de l'intégrité des fichiers transmis.

    mais les autres pistes devraient vous aider aussi.
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  6. #6
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Une autre solution envisageable sous fb2.x c'est l'utilisation des backups différentiels.

    Et donc transmission de cette différence (qu'on aura compressée) sur l'autre serveur, restauration dans une 2eme base et c'est sur ce serveur que vous faites vos opérations de synchronisation entre la base à synchroniser et la 2eme base fraichement restaurée. Et si vous avez à mettre a jour le 1er serveur vous créez un script de mise a jour.

    C'est plus contraignant mais certainement plus économe en échange réseau.

  7. #7
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    j'ai fait des tests d'utilisation de ZeBeDee dont j'ai découvert l'existence en parallèle à mon post dans ce forum. A priori ça améliore pas mal la situation déjà. Par contre, je n'arrive pas à savoir si cela fonctionne mieux grâce à la compression faite par ZeBeDee, ou simplement parce que cet outil est moins sensible que le client Firebird à la mauvaise qualité du réseau ?

    Au final, je pense que nous allons envisager la solution que vous avez évoqué : ne plus faire de connexion directe en Firebird dans ce contexte. L'utilisation des différentiels me semble difficilement applicable pour notre application, nous partirions plutôt sur l'idée des scripts.

    B.L.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/10/2009, 08h00
  2. Montages NFS en réseau VPN très lents !
    Par bbcall1 dans le forum Réseau
    Réponses: 0
    Dernier message: 07/11/2008, 21h36
  3. Connexion très lente à un serveur MySQL
    Par touff5 dans le forum JDBC
    Réponses: 3
    Dernier message: 29/09/2006, 15h13
  4. Connexion depuis un poste distant très lente
    Par Bartuk dans le forum Installation
    Réponses: 2
    Dernier message: 12/04/2006, 16h18
  5. [Tomcat 5.5] Pool de connexion très lent
    Par JFDelges dans le forum Tomcat et TomEE
    Réponses: 9
    Dernier message: 14/10/2005, 14h44

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