|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mai 2005 Messages : 12 ![]() |
Bonjour,
Je rencontre un problème avec Firebird v1.0 sur un serveur Linux. En fait, cela fait 2 fois que je perds toutes informations que j'ai saisies pendant une journée complète. Il n'y a pas de plantage sur le serveur ni sur le poste client, le serveur firebird n'a pas redémarré. J'utilise un alias BDE pour me connecter qui est bien configurer sans cache schema database. Sur ma base j'ai vérifié le paramètre Forced Writes qui est à Enable. Donc je sèche complètement. Si qq'un a déjà rencontré ce cas ou à une idée, je suis preneur. Merci |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() Pierre Ingénieur qualité méthodes Inscription : mars 2003 Messages : 3 726 ![]() |
Le disque n'est pas "full" ?
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet) ----------------------- Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MPUsus magister est optimus |
|
|
00
|
|
|
#3 |
|
Membre éprouvé
![]() Inscription : juillet 2002 Messages : 432 ![]() |
Tu le fais avec des transactions?
__________________
<On fait la science avec des faits, comme on fait une maison avec des pierres : mais une accumulation de faits n'est pas plus une science qu'un tas de pierres n'est une maison> **Poincaré** http://www.mobile-tactile.com/ |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : mai 2005 Messages : 12 ![]() |
Le disque n'est pas full et il n'y a pas de transactions. J'écris directement dans la base de données.
Est-ce qu'il y a des indicateurs qui permettent de revenir comme cela à un état préalable de l'état de la base de données? Si oui, est-ce que vous pouvez m'indiquer quels sont ces marqueurs et s'il est possible de forcer un commit qui écrit les nouvelles données dans la base merci. |
|
|
00
|
|
|
#5 | |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Citation:
Vous êtes comme monsieur Jourdain vous faites de la prose sans le savoir, vous ce sont les transactions que vous faites sans le savoir. En effet fb ou Ib ouvrent une transaction même pour un simple select. Par defaut (donc sans paramétrage de votre part) la transaction est de type snapshoot c'est a dire l'isolation la plus forte. Si vous ne faites jamais de commit les autres utilisateurs ne voient pas les modifications que vous faites et vous ne voyez pas les modifs des autres même ci ceux ci les commits. De plus en fermeture de votre application vous avez un rollback automatique toutes les données que vous avez pu modifiées ou créées sont annulées... Je vous suggère d'étudier de plus pres les transactions sans quoi vous risquez d'avoir de drole de surprises. Ce qui m'étonne tout de même c'est que vous utilisiez BDE pour un nouveau développement alors que celui ci est abandonné par Borland. de plus normalement le BDE fait un commit automatique en fin d'appli il me semble à moins que vous n'ayez touché à quelques paramètres. |
|
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : mai 2005 Messages : 12 ![]() |
Merci pour vos explications. Mais mon problème c'est comme je l'ai précisé que je n'ouvre pas de transactions. J'utilise le BDE car ce n'est pas un nouveau développement.
Ce qu'il s'est passé. Les utilisateurs ont travaillé toute la journée sans problèmes, chacun voyant ce que les autres saississent (ce qui me fait dire que les données sont bien dans la base et commité). D'habitude tout se passe bien, il se trouve que 2 fois on s'est retrouvés à perdre toutes les données de la journée, ce que je n'explique pas. Merci encore pour votre aide Monsieur Jourdain qui n'utilise pas de transaction |
|
|
00
|
|
|
#7 | ||||
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Citation:
Citation:
Citation:
Citation:
|
||||
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : mai 2005 Messages : 12 ![]() |
Le fonctionnement de l'application n'a pas changé.
Le problème est aléatoire, il s'est produit deux fois et je suis incapapble de le reproduire. C'est pour cela que je viens chercher de l'aide sinon j'aurais sûrement pu touver le cas en debuggage sur mon appli. En tout cas merci pour votre aide, toute idée est la bienvenue |
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Avez vous regardé dans firebird.log ?
Sinon vous pouvez aussi créé vos propres logs Par exemple créé une table EXTERNE avec une colonne DATE_EVENEMENT char(24) une colonne TYPE_ACTION char(20) une colonne TABLE CHAR(40) une colonne USERNAME varchar(40) une colonne LIBELLE char(80) puis vous crééz des triggers after insert, update, delete sur les tables à logger. Dans lequel vous faites des insert dans la table externe DATE_EVENEMENT = cast(cast('now' as timestamp) as varchar(24)) TYPE_ACTION = 'INSERT' TABLE = 'MA_TABLE' USERNAME = USER; LIBELLE = NEW.ID || ' ' || ... Par exemple. Il faut savoir que les tables externes sont hors transaction. Ce qui veux dire que si vous faite un rollback de votre transaction ce qui a été inséré dans votre table externe n'est pas enlevé. Et donc vous aurez ainsi une log basique. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com