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 :

Connexion réseau perdue - Champs verrouillés


Sujet :

Firebird

  1. #41
    Membre régulier
    Inscrit en
    Août 2010
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 123
    Points : 93
    Points
    93
    Par défaut
    En tous cas, c'est la solution la plus propre pour le moment, car ne nécessite pas d'intervention de l'utilisateur.
    Son seul défaut est que l'utilisateur doit se reconnecter ou redémarrer le logiciel. (mais ce sera le cas généralement).

    Sous FB3, j'ai rapidement regardé les modifications, et j'ai lu que certaines tables n'étaient plus modifiables...
    Mais bon le plus simple est de faire le test. Mais pour l'instant je reste sous FB2.5, je vais encore attendre un peu.

  2. #42
    Membre confirmé Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Points : 574
    Points
    574
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Bonjour,
    une autre solution à étudier : faire les mises à jour via une procédure (si c'est possible)
    je n'aime pas trop ça,car j'estime qu'il ne faut pas en abuser (ça peut vite devenir un gros foutoir , j'ai eu une maintenance à faire de ce genre, pas facile trop de paramètres, trop de procédures appelant d'autres procédures << pas bon, pas de rollback possible )
    mais une procédure = une transaction bien encapsulée
    le problème reste le retour d'information (mais la procédure peut très bien retourner quelque chose )

    je suis en train de préparer quelque chose de ce genre, le résultat dans un ou deux mois d'exploitation
    Oui c'est possible de mettre toutes tes requêtes sur le serveur sous forme de PS avec des transactions autonomes, mais ce n'est pas franchement leurs rôle et je ne parle pas des limitations que ça induit.
    En plus, les transactions lancé par l'applicatif resterons en suspend et vont encombrer le serveur a la longue.
    Si vous êtes libre, choisissez le Logiciel Libre.

  3. #43
    Membre confirmé Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Points : 574
    Points
    574
    Par défaut
    Citation Envoyé par PocoYote Voir le message
    En tous cas, c'est la solution la plus propre pour le moment, car ne nécessite pas d'intervention de l'utilisateur.
    Son seul défaut est que l'utilisateur doit se reconnecter ou redémarrer le logiciel. (mais ce sera le cas généralement).
    Lorsqu'on a une déconnexion, il auras forcement une reconnexion... alors ou est le défaut ?
    Citation Envoyé par PocoYote Voir le message
    Sous FB3, j'ai rapidement regardé les modifications, et j'ai lu que certaines tables n'étaient plus modifiables...
    Mais bon le plus simple est de faire le test. Mais pour l'instant je reste sous FB2.5, je vais encore attendre un peu.
    Ne pas confondre les tables systèmes RDB$ et les tables de monitoring MON$.
    Si vous êtes libre, choisissez le Logiciel Libre.

  4. #44
    Membre régulier
    Inscrit en
    Août 2010
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 123
    Points : 93
    Points
    93
    Par défaut
    Lorsqu'on a une déconnexion, il auras forcement une reconnexion... alors ou est le défaut ?
    Le cas où le Wifi est planté et l'utilisateur éteint son PC pour en prendre un autre.

  5. #45
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut

    Citation Envoyé par TryExceptEnd
    J'ai rien repris de ton idée, tu parlait de tâche et une tâche est soit un service ou une application, or il s'agit d'une connexion interne au serveur.
    J'ai pris le sens du mot tâche (le thread en anglais) dans celui qui correspond à un traitement (cela peut-être n'importe quoi derrière, un service, une application ...) qui s'exécute en arrière plan sur le serveur.
    Pour débloquer la situation, il suffit de la supprimer, et c'est ce que tu as donné comme solution, en détaillant la façon de le faire.
    C'est ce que l'on nomme aussi un daemon dans le sens Unix.

    Ce n'est pas la perte de la connexion (la cause) qui bloque, mais le fait que ce daemon (la conséquence) a planté !

    Citation Envoyé par TryExceptEnd
    Comme je l'ai déjà explique, il s’agit d'un verrou mis par firebird sur une ligne et que la perte de la connexion rend inaccessible et du coup impossible de lever ce verrou.
    Oui, j'ai bien compris le problème.
    Mais le blocage est dû à ce daemon qui continue à s'exécuter, tout en bloquant les dernières transactions.
    Supprimer le daemon va débloquer la situation !

    Citation Envoyé par TryExceptEnd
    Troisièmement, prévoir une sortie de secours, comme la déconnexion "sauvage" laisse la connexion crée par votre application en suspend et bloque les lignes "updatés", le seul moyen de "finir" cette connexion est de la "tuer".
    S'il s'agit de cela, nous sommes bien d'accord sur la solution à envisager, à savoir tuer ce daemon qui bloque les lignes.

    Citation Envoyé par TryExceptEnd
    La perte de connexion est facile à détecter et la reconnexion doit se faire automatiquement sans redémarrer l'application et sans intervention humaine et s'il n'y avait pas de blocage la requête "delete" aura le mérite de faire le nettoyage coté serveur.
    Selon moi, la seule chose à faire est cette intervention manuelle.

    Que voulez-vous faire au niveau application ? A vrai dire, je n'ai pas compris ce que vous désirez faire ?

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  6. #46
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    599
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 599
    Points : 2 024
    Points
    2 024
    Par défaut
    L'article en lien ci-dessous, semble exactement décrire le problème :
    https://www.ibphoenix.com/resources/...how_to/doc_104

    Extrait :
    It is important to promptly release the resources busy with such phantom connections, especially when using servers with Classic architecture. If some users connect to the server through an unstable modem connection, then the risk of disconnection becomes rather high.

    For instance, a client saves a modified record set, and after UPDATE is executed (while COMMIT is not) the connection is released.

    As a rule, client applications in such situations reconnect to the server, but the client (as he/she continues working with the data, after saving which one received error message due to connection fail) will be unable to save changes, since he/she will receive a message about lockout conflict (”lock conflict on update”). The previous connection, which opened the transaction (in the context of which UPDATE was executed, while COMMIT wasn’t), still holds these records.
    Mais l'article semble expliquer comment Firebird évite que cela arrive - alors que visiblement ce n'est pas le cas.
    --
    vanquish

  7. #47
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Merci vanquish pour le lien.
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  8. #48
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    599
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 599
    Points : 2 024
    Points
    2 024
    Par défaut
    Après une lecture un peu plus approfondie, il y a dans firebird.conf un paramètre : DummyPacketInterval

    Ce paramètre sert à dire au bout de combien de temps, le serveur va s'inquiéter du silence d'un client et lui envoyer un "packet" pour voir s'il est toujours là.
    Par défaut c'est 2H.

    Soucis, les remarques du fichiers firebird.conf indique : DO NOT USE THIS OPTION
    Dommage

    En gros ça peut faire crasher les clients Windows (visiblement windows lui même).
    Mais quand on regarde les KB Microsoft cités en référence, cela semble surtout lié à de vieilles versions de Windows 2000.

    Voir les autres infos dans firebird.conf au niveau de cette variable pour plus de détails.
    --
    vanquish

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/04/2010, 11h46
  2. Réponses: 1
    Dernier message: 11/09/2008, 21h07
  3. Erreur accès fichier, connexion réseau peut être perdue!
    Par CAPRI_456 dans le forum VBA Access
    Réponses: 4
    Dernier message: 18/12/2007, 21h13
  4. verrouiller session et garder connexion réseau
    Par Tex-Twil dans le forum Windows Vista
    Réponses: 0
    Dernier message: 07/10/2007, 11h20
  5. API MySQL - Connexion réseau
    Par klael dans le forum Bases de données
    Réponses: 3
    Dernier message: 18/03/2004, 09h25

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