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

Firebird Discussion :

Restauration sur serveur linux, client windows


Sujet :

Firebird

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Restauration sur serveur linux, client windows
    Bonjour,

    Je développe un composant de sauvegarde / restauration de base firebird (version utilisée 1.54),
    La sauvegarde fonctionne sur serveur firebird windows et linux.
    Mais la restauration ne fonctionne que sur windows (accès local et distant).
    SERVEUR: Sur le serveur (Ubuntu 7.04 server sur vmWare player), firebird est lancé par xinetd
    CLIENT: XP

    La restauration se passe "presque bien", le fichier restauré est correct mais une exception apparait en fin de restauration.

    Au départ j'avais une boucle comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while (not zIBRes.Eof) do  
    begin
      zGbakLine := zIBRes.GetNextLine;                        
      DoLogEvent(zGbakLine);                      
    end;
    Mais sur serveur linux, le EOF ne fonctionne pas.
    La dernière ligne est affichée 'gbak: finishing, closing, and going home ' puis on rentre dans la boucle une dernière fois avant plantage sur le GetNextLine.
    Avec le message suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'EIBInterBaseError, Unable to complete network request to host "192.168.58.128", Error reading data from the connection'
    J'ai donc rajouté une condition dans ma boucle mais l'exception est générée un peu plus loin, au Detach.

    J'utilise un composant TIBRestoreService (variable zIBRes) sous Delphi 6
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     try
            zIBRes.Verbose :=  True;
    	zIBRes.ServiceStart;
            if zIBRes.Verbose then
            begin
              zGbakLine := '';
              while (not zIBRes.Eof) and (zGbakLine <> 'gbak: finishing, closing, and going home ') do       // Sous linux le EOF seul n'arrête pas la boucle
              begin
                zGbakLine := zIBRes.GetNextLine;                        
                DoLogEvent(zGbakLine);                      
              end;
            end;
            Result := True;
          except
            on E: EIBError do
            begin
              DoLogEvent(zGbakLine);
              DoLogEvent(E.Message);
            end;
          end;
        finally
          if zIBRes.Active then
          begin
            try
              zIBRes.Detach;    // PLANTE ICI !!!!!!!!!!
            except
               on E: EIBError do
                begin
                  DoLogEvent('Erreur lors du détachement: ' + E.Message);
                end;
            end;
          end
        end;
      finally
        zIBRes.Free;
      end;
    Donc la condition supplémentaire sur la boucle ne fait que déplacer le problème.
    Le EOF semble fermer TOUS les ports de connexion, du coup quand on appelle une méthode la connexion au socket étant fermée le composant ne trouve
    plus le serveur.
    Cela se vérifie sur le processus "fbserver", son pid est constant jusqu'au EOF puis il change ensuite.

    Bizarrement le problème n'existe pas avec le composant de sauvegarde.
    Serait-ce un bug?
    Comment éviter le problème?

    Merci.

  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
    en changeant de composant ?
    parce que ce n'est pas un bug Firebird
    tu as regardé du coté d'UIB ?
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    merci de ta réponse,

    a priori le problème est plutôt côté serveur, et ne provient donc pas du composant utilisé.
    j'ai testé la restauration de la base exemple ("employee") donnée avec firebird et là tout se passe parfaitement bien.

    effectivement il ne doit pas s'agir de bug firebird mais plutôt d'un problème soit avec les udfs ou les données de la base...

    je continue mes recherches...

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    j'ai continué des tests de restauration avec différents outils, toujours le même problème.
    également avec gbak en ligne de commande (mode service).
    par contre fbserver ne s'arrête pas brusquement en fin de restauration avec gbak (sans mode service).

    si quelqu'un à une piste... je suis preneur!

  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
    sauvegarde et ou base abimée peut être ?

    faire toutes les vérifications d'usage, essayer sur une autre machine ....
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    test avec firebird2: la restauration se passe bien.
    le problème est que je suis obligé de rester avec firebird 1.54...

    donc je vais essayer d'enlever les triggers et les procédures...

Discussions similaires

  1. [Débutant] Executer un programme sur serveur Linux depuis client Windows
    Par jmarc830 dans le forum C#
    Réponses: 5
    Dernier message: 08/04/2015, 18h36
  2. creer un VPN serveur linux, client windows 8
    Par Viouu dans le forum Réseau
    Réponses: 0
    Dernier message: 14/05/2014, 17h17
  3. Réseau avec Serveur Linux / Client Windows
    Par rems033 dans le forum Administration système
    Réponses: 4
    Dernier message: 04/12/2008, 15h48
  4. Serveur linux - Client Windows/Mac/linux
    Par bjacque2 dans le forum Réseau
    Réponses: 6
    Dernier message: 13/07/2008, 12h25
  5. Réponses: 0
    Dernier message: 07/02/2008, 11h26

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