Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD9] Erreurs diverses lors de l'acces a mes fichiers HF

13 réponses
Avatar
Emmanuel Haefele
Bonjour,

Je craque car sur l'un de nos sites j'ai différentes erreurs qui se
produisent lors de l'accès à nos fichiers HF et que vraiment je ne
comprends pas !

Exemple des erreurs les plus couramment rencontrées :

- Erreur : 70012 sur un HModifie
Une clé cherchée dans un noeud du fichier <s:\Repertoire\FICHIER.NDX> n'a
pas été trouvée. Vous devez réindexer votre fichier.

- Erreur : 70150 sur un HLitRecherchePremier
Impossible de se repositionner dans le fichier
<s:\Repertoire\FICHIER.NDX>.

Erreur : 70150
Impossible d'ouvrir le fichier <s:\Repertoire\FICHIER.NDX>.

Erreur 70037 sur un HAjoute
Le fichier <FICHIER> n'a pas été ouvert avec des droits en écriture.
Impossible d'effectuer l'opération.

L'aide de windev sur ces codes erreurs me dit :

<<<
70012: NOM DE CLÉ INCONNU
Le nom de la clé donné dans la fonction de gestion de fichier n'existe
pas. H.ErrIgnore est sans effet pour cette erreur.
Remarque perso : C'est un hModifie qui pose problème, aucun nom de clé
n'est passé à la fonction
>>>

<<<
70037: FICHIER NON MODIFIABLE
Tentative de modification sur un fichier non modifiable (read-only).
Remarque perso : Cette erreur est très ponctuelle, apparait et disparait
immédiatement après
>>>

<<<
70150: ERREUR SYSTÈME INATTENDUE
Erreur système inattendue. Répétez l'opération.
>>>>

N'importe quel fichier peut être touché, à chaque fois l'appli plante
brutalement et moi pendant ce temps je deviens fou car ça me pose de très
gros soucis au niveau de l'intégrité de la base. Ces erreurs peuvent ne
pas apparaitre durant 15 jours ou apparaitre 1 à 2 fois par semaine.

Le client me dit naturellement qu'il ne touche à rien sur le serveur et
que l'antivirus (Trend Micro) n'est pas en cause. Vraiment je ne sais plus
ou chercher car tout est ondulé, switch compris.

Est-ce que Trend Micro (que je ne connais pas) pourrait-être la cause ?

Même si tout est ondulé j'ai tendance également à penser que ça pourrait
être lié à des problèmes électriques. Une surtension pourrait être la
cause ?

Toutes idées serait vraiment la bienvenue ...


Amicalement,

Emmanuel Haefelé.

10 réponses

1 2
Avatar
Albert
Bonjour Emmanuel

"Emmanuel Haefele" a écrit dans le message de news:
441ebf27$0$20147$
Bonjour,

Je craque car sur l'un de nos sites j'ai différentes erreurs qui se
produisent lors de l'accès à nos fichiers HF et que vraiment je ne
comprends pas !

Exemple des erreurs les plus couramment rencontrées :

- Erreur : 70012 sur un HModifie
Une clé cherchée dans un noeud du fichier <s:RepertoireFICHIER.NDX> n'a
pas été trouvée. Vous devez réindexer votre fichier.

- Erreur : 70150 sur un HLitRecherchePremier
Impossible de se repositionner dans le fichier
<s:RepertoireFICHIER.NDX>.

Erreur : 70150
Impossible d'ouvrir le fichier <s:RepertoireFICHIER.NDX>.

Erreur 70037 sur un HAjoute
Le fichier <FICHIER> n'a pas été ouvert avec des droits en écriture.
Impossible d'effectuer l'opération.

L'aide de windev sur ces codes erreurs me dit :

<<<
70012: NOM DE CLÉ INCONNU
Le nom de la clé donné dans la fonction de gestion de fichier n'existe
pas. H.ErrIgnore est sans effet pour cette erreur.
Remarque perso : C'est un hModifie qui pose problème, aucun nom de clé
n'est passé à la fonction








<<<
70037: FICHIER NON MODIFIABLE
Tentative de modification sur un fichier non modifiable (read-only).
Remarque perso : Cette erreur est très ponctuelle, apparait et disparait
immédiatement après








<<<
70150: ERREUR SYSTÈME INATTENDUE
Erreur système inattendue. Répétez l'opération.










N'importe quel fichier peut être touché, à chaque fois l'appli plante
brutalement et moi pendant ce temps je deviens fou car ça me pose de très
gros soucis au niveau de l'intégrité de la base. Ces erreurs peuvent ne
pas apparaitre durant 15 jours ou apparaitre 1 à 2 fois par semaine.

Le client me dit naturellement qu'il ne touche à rien sur le serveur et
que l'antivirus (Trend Micro) n'est pas en cause. Vraiment je ne sais plus
ou chercher car tout est ondulé, switch compris.

Est-ce que Trend Micro (que je ne connais pas) pourrait-être la cause ?

Même si tout est ondulé j'ai tendance également à penser que ça pourrait
être lié à des problèmes électriques. Une surtension pourrait être la
cause ?

Toutes idées serait vraiment la bienvenue ...


Amicalement,

Emmanuel Haefelé.




J'ai rencontré une galère à peu près similaire avec un projet WD9 en HF
classic.
Pour l'instant et comme je n'ai pas encore trouvé les causes, j'ai bidouillé
une "rustine" que j'avais utilisée à d'autres fins et qui, pour l'instant,
semble contenter le client puisqu'il ne m'hurle plus au téléphone (si tu
vois ce que je veux dire).

Donc, dans un premier temps, j'ai activé la ré-indexation "à chaud".
Ensuite, dans le code INIT du projet, j'ai modifié le QUAND EXCEPTION qui
s'y trouvait de façon à intercepter la plupart des erreurs liées aux
problèmes d'index.
De fait, lorsqu'une telle erreur se produit, j'affiche un message à l'écran
qui demande à l'utilisateur de bien vouloir re-démarrer le logiciel, pour
faire une maintenance automatique de la base de données.
Ceci fait, lorsque le logiciel s'arrête, je place la valeur "OUI" dans la
clé "REINDEX" de la base de registres via Sauveparametre.
Ensuite, lorsque l'utilisateur re-démarre le logiciel et avant toute
fonction du wlangage sur les fichiers HF, je lis la valeur qui se trouve
dans la clé "REINDEX" de la base de registres via Chargeparametre.
Si elle est égale à "OUI", j'efface tous les fichiers .NDX qui se trouvent
dans le dossier de stockage des fichiers HF (via FSupprimeFichier).
Et hop ... les index sont re-créés au fur et à mesure des besoins et le
client n'est pas obligé d'aller mettre les mains dans le cambouis.

Bon, c'est vrai que cela oblige à re-démarrer le logiciel mais, pour
l'instant, je n'ai pas encore réussi à voir ce qu'il se passait.

A+

Val
Avatar
Emmanuel Haefele
"Albert" a écrit

Bonjour,

J'ai rencontré une galère à peu près similaire avec un projet WD9 en HF
classic.



Je ne suis pas encore passé en version 10, si seulement j'avais la
garantie que ça règle ce problème !

Autre solution passer en C/S mais là non plus à mon avis il n'y a pas de
certitude car ces plantages apparaissent sans raison, ce n'est pas un
CTRL-ALT-SUPPR sur le poste client par exemple qui est à l'origne de
l'erreur.

Pour l'instant et comme je n'ai pas encore trouvé les causes, j'ai
bidouillé une "rustine" que j'avais utilisée à d'autres fins et qui,
pour l'instant, semble contenter le client puisqu'il ne m'hurle plus au
téléphone (si tu vois ce que je veux dire).



Je vois très bien ce que tu veux dire !

Donc, dans un premier temps, j'ai activé la ré-indexation "à chaud".



Chez moi c'est fait aussi.

Ensuite, dans le code INIT du projet, j'ai modifié le QUAND EXCEPTION
qui s'y trouvait de façon à intercepter la plupart des erreurs liées aux
problèmes d'index.



J'utilise là aussi le même principe que toi et ça fonctionne dans certain
cas mais malheureusement pas dans ceux-ci en particulier, bizarre
d'ailleurs.

De fait, lorsqu'une telle erreur se produit, j'affiche un message à
l'écran qui demande à l'utilisateur de bien vouloir re-démarrer le
logiciel, pour faire une maintenance automatique de la base de
données.



Chez moi au redémarrage (puisqu'il y a automatiquement un plantage et une
fermeture de l'appli), proposition de réindexation systématique, de plus
sur ce site s'il y a lieu de la faire, elle est faite. J'en ai la
certitude car chez moi en plus de tout ça j'ai des alertes par mail qui
arrivent directement dans ma boite aux lettres et qui m'avertissent du
moindre évenement en clientèle avec détail et tout et tout ....

Ceci fait, lorsque le logiciel s'arrête, je place la valeur "OUI" dans
la clé "REINDEX" de la base de registres via Sauveparametre.



Pareil chez moi sur le principe.

Si elle est égale à "OUI", j'efface tous les fichiers .NDX qui se
trouvent dans le dossier de stockage des fichiers HF
(via FSupprimeFichier).



C'est vrai que la suppression des fichiers est une solution ultra efficace
je l'ai déjà constaté plusieurs fois en 5.5.

Et hop ... les index sont re-créés au fur et à mesure des besoins et le
client n'est pas obligé d'aller mettre les mains dans le cambouis.



Oui tout ça est très bien. Comme dit j'applique à la lettre le même
principe que toi mais je dois dire que ça ne me suffit pas car
personnellement je veux trouver la raison de ces problèmes qui me font
perdre du temps. De mon côté ça met en cause de temps à autre
l'intégrité de la base et là c'est le foutoir il faut bien l'avouer.
Théoriquement je devrais gérer des transactions dans certains cas mais
ayant constaté en 5.5 qu'elles n'étaient pas du tout efficace, je n'ai pas
l'intention de retenter le coup en version 9. De toute manière il n'y a
pas de raison, il y a quelque chose qui fait que ... et je veux trouver
quoi !!!

Merci pour ton aide.


Amicalement,

Emmanuel Haefelé.
Avatar
Fredo MT
Bonjour,

Depuis 1 an j'ai changé mon système de base de données HF contre du SQL
Server. Je sais c'est très long à migrer pour de grosses applications, mais
vraiment pas mécontent d'avoir changé, plus de problèmes d'index, plus de
blocage, plus rien. Les applications tournent avec un VRAI Client/Server
(C/S HF pas testé donc je n'ai pas d'opinions à émettre). Les applications
sont beaucoup plus performantes et les données se chargent beaucoup plus
rapidement.

Je sais ça ne résout pas ton problème mais avec du recul je peux dire que
passer sous SQL Server m'a évité d'en avoir des problèmes et cela sans le
savoir. ;-)

"Emmanuel Haefele" a écrit dans le message de news:
441ed3ab$0$6688$
"Albert" a écrit

Bonjour,

J'ai rencontré une galère à peu près similaire avec un projet WD9 en HF
classic.



Je ne suis pas encore passé en version 10, si seulement j'avais la
garantie que ça règle ce problème !

Autre solution passer en C/S mais là non plus à mon avis il n'y a pas de
certitude car ces plantages apparaissent sans raison, ce n'est pas un
CTRL-ALT-SUPPR sur le poste client par exemple qui est à l'origne de
l'erreur.

Pour l'instant et comme je n'ai pas encore trouvé les causes, j'ai
bidouillé une "rustine" que j'avais utilisée à d'autres fins et qui,
pour l'instant, semble contenter le client puisqu'il ne m'hurle plus au
téléphone (si tu vois ce que je veux dire).



Je vois très bien ce que tu veux dire !

Donc, dans un premier temps, j'ai activé la ré-indexation "à chaud".



Chez moi c'est fait aussi.

Ensuite, dans le code INIT du projet, j'ai modifié le QUAND EXCEPTION
qui s'y trouvait de façon à intercepter la plupart des erreurs liées aux
problèmes d'index.



J'utilise là aussi le même principe que toi et ça fonctionne dans certain
cas mais malheureusement pas dans ceux-ci en particulier, bizarre
d'ailleurs.

De fait, lorsqu'une telle erreur se produit, j'affiche un message à
l'écran qui demande à l'utilisateur de bien vouloir re-démarrer le
logiciel, pour faire une maintenance automatique de la base de
données.



Chez moi au redémarrage (puisqu'il y a automatiquement un plantage et une
fermeture de l'appli), proposition de réindexation systématique, de plus
sur ce site s'il y a lieu de la faire, elle est faite. J'en ai la
certitude car chez moi en plus de tout ça j'ai des alertes par mail qui
arrivent directement dans ma boite aux lettres et qui m'avertissent du
moindre évenement en clientèle avec détail et tout et tout ....

Ceci fait, lorsque le logiciel s'arrête, je place la valeur "OUI" dans
la clé "REINDEX" de la base de registres via Sauveparametre.



Pareil chez moi sur le principe.

Si elle est égale à "OUI", j'efface tous les fichiers .NDX qui se
trouvent dans le dossier de stockage des fichiers HF
(via FSupprimeFichier).



C'est vrai que la suppression des fichiers est une solution ultra efficace
je l'ai déjà constaté plusieurs fois en 5.5.

Et hop ... les index sont re-créés au fur et à mesure des besoins et le
client n'est pas obligé d'aller mettre les mains dans le cambouis.



Oui tout ça est très bien. Comme dit j'applique à la lettre le même
principe que toi mais je dois dire que ça ne me suffit pas car
personnellement je veux trouver la raison de ces problèmes qui me font
perdre du temps. De mon côté ça met en cause de temps à autre
l'intégrité de la base et là c'est le foutoir il faut bien l'avouer.
Théoriquement je devrais gérer des transactions dans certains cas mais
ayant constaté en 5.5 qu'elles n'étaient pas du tout efficace, je n'ai pas
l'intention de retenter le coup en version 9. De toute manière il n'y a
pas de raison, il y a quelque chose qui fait que ... et je veux trouver
quoi !!!

Merci pour ton aide.


Amicalement,

Emmanuel Haefelé.



Avatar
Emmanuel Haefele
"Fredo MT" a écrit

Bonjour Fredo,

Depuis 1 an j'ai changé mon système de base de données HF contre du SQL
Server.



Ca c'est LA solution, c'est bien évident.

J'y pense beaucoup mais pour l'instant la masse de boulot que représente
une telle évolution m'a toujours stoppé dans mon élan à le faire.
Malheureusement passer proprement de HF à SQL Server ne se fait pas d'un
claquement de doigt

Je sais c'est très long à migrer pour de grosses applications, mais
vraiment pas mécontent d'avoir changé, plus de problèmes d'index, plus
de blocage, plus rien.



C'est ce qui me fera sans doute changé d'avis un jour ou l'autre.

Dire qu'il y a 9 ans (avant windev) je bossais avec un véritable SGBDR et
qu'en passant sous windows et windev, j'ai cru au miracle des commerciaux
de pc-soft qui affirmaient que la base HF était gratuite, qu'elle
permettait des accès réseau jusqu'à 200 postes (il me semble) et surtout
que cette base était d'une fiabilité totale !

Il est exact que cette base ne fonctionne pas trop mal notamment si tout
ton réseau est ondulé mais s'il y a un problème, il est là et il est
souvent très difficile d'y remédier et ça pc-soft a largement oublié de
nous le signaler !!!!


Amicalement,

Emmanuel Haefelé.
Avatar
Emmanuel Haefele
"Albert" a écrit

Rebonjour Albert,

J'ai rencontré une galère à peu près similaire avec un projet WD9 en HF
classic.
Pour l'instant et comme je n'ai pas encore trouvé les causes, j'ai
bidouillé une "rustine" que j'avais utilisée à d'autres fins et qui,
pour l'instant, semble contenter le client puisqu'il ne m'hurle plus au
téléphone (si tu vois ce que je veux dire).



Comme je sens que comme moi tu es très sensible à ce problème, voici
une dernière chose dont tu ne m'as pas parlé et qui me parait aussi très
importante. Ca m'a été rappelé sur la liste windev-forum mais de mon côté
je l'applique aussi systématiquement. Modifier la base de registre dans ce
sens :

Registre NT/2K/XP
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanWorkstationParameters]
"UtilizeNtCaching"=dword:00000000
"UseOpportunisticLocking"=dword:00000000

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRdrParameters]
"UseWriteBehind"=dword:00000000

Registre W98SE
[HKEY_LOCAL_MACHINESystemCurrentControlSetServicesVxDVREDIR]
"NetClean"=hex:01
"DiscardCacheOnOpen"=hex:01

Cette modification règle des problèmes de cache réseau qui sont souvent à
l'origine des problèmes d'index. Si tu ne fais pas déjà cette modif à
l'heure actuelle, je te conseille vivement dorénavant de la faire aussi.


Amicalement,

Emmanuel Haefelé.
Avatar
Fred
Bonsoir Emmanuel !

Le monde ne sait pas fait en un jour et non ! ;-)
Petit à petit, projet par projet on s'en sort assez bien. Il m'a fallu un
peu moins d'un an pour migrer tous mes projets, mais pas mécontent de
l'avoir fait. Avec du recul je regrette de ne pas l'avoir fait plus tôt. De
plus l'interface d'un projet avec de l'HF migré en SQLServer ne change pas.
Toute la partie interface n'est pas à refaire et ça va relativement vite. Ah
oui, j'allais oublié aussi, Erreur 50, analyse différente pattin couffin ça
n'existe plus non plus :-). Que du bonheur !!!!
Création de l'analyse avec Fichiers de base externe, tu choisis SQLServer,
tu remontes la structure de tes tables et tu peux ainsi utiliser le nom de
tes champs comme variable pour tout ce qui concerne le SQLAssocie.
C'est une autre façon de travailler différente mais tellement meilleure en
performance.
Je dois avoir une dizaine d'applis qui fonctionnent avec la même structure,
tout ça en SQL, dès que je mets à jour d'un côté la structure, ça met à jour
de l'autre. Puis j'ai créé une collection de procédures propres au SQL que
j'utilise dans tous mes projets en important ma collection de procédure SQL.
Sur les états la programmation par ordre SQL est assez facile à intégrer
aussi.
Avec la même analyse je gère aussi un site Web réalisé en WebDev.
Je sais je te raconte ma vie mais si tu veux des infos ou autres pour migrer
sans problèmes et ne pas galérer comme moi au début, je peux toujours
t'aider.

Cordialement,

Fredo


"Emmanuel Haefele" a écrit dans le message de news:
441fb98c$0$20183$
"Fredo MT" a écrit

Bonjour Fredo,

Depuis 1 an j'ai changé mon système de base de données HF contre du SQL
Server.



Ca c'est LA solution, c'est bien évident.

J'y pense beaucoup mais pour l'instant la masse de boulot que représente
une telle évolution m'a toujours stoppé dans mon élan à le faire.
Malheureusement passer proprement de HF à SQL Server ne se fait pas d'un
claquement de doigt

Je sais c'est très long à migrer pour de grosses applications, mais
vraiment pas mécontent d'avoir changé, plus de problèmes d'index, plus
de blocage, plus rien.



C'est ce qui me fera sans doute changé d'avis un jour ou l'autre.

Dire qu'il y a 9 ans (avant windev) je bossais avec un véritable SGBDR et
qu'en passant sous windows et windev, j'ai cru au miracle des commerciaux
de pc-soft qui affirmaient que la base HF était gratuite, qu'elle
permettait des accès réseau jusqu'à 200 postes (il me semble) et surtout
que cette base était d'une fiabilité totale !

Il est exact que cette base ne fonctionne pas trop mal notamment si tout
ton réseau est ondulé mais s'il y a un problème, il est là et il est
souvent très difficile d'y remédier et ça pc-soft a largement oublié de
nous le signaler !!!!


Amicalement,

Emmanuel Haefelé.



Avatar
Emmanuel Haefele
"Fred" a écrit

Bonjour Fred,

Avec la même analyse je gère aussi un site Web réalisé en WebDev.
Je sais je te raconte ma vie mais si tu veux des infos ou autres pour
migrer sans problèmes et ne pas galérer comme moi au début, je peux
toujours t'aider.



Merci beaucoup pour ta proposition d'aide. On sens vraiment que tu n'as
rien regretté dans ce changement et qu'il n'y a que du bon à vouloir
franchir le pas. Je vais encore y réfléchir ...


Amicalement,

Emmanuel Haefelé
Avatar
Eric Demeester
dans (in) fr.comp.developpement.agl.windev, "Fredo MT"
ecrivait (wrote) :

Bonjour,

Depuis 1 an j'ai changé mon système de base de données HF contre du SQL
Server.



Question bête mais sérieuse (ce n'est pas un troll) : Tant qu'à migrer,
as-tu des raisons précises d'avoir choisi SQL Server plutôt qu'un
équivalent dans le monde du logiciel libre (MySQL ou PostGreSQL pour ce
citer que les deux plus connus) ?

Amicalement,

--
Eric
Avatar
Daniel
Eric Demeester <eric+ writes:

dans (in) fr.comp.developpement.agl.windev, "Fredo MT"
ecrivait (wrote) :

Bonjour,

> Depuis 1 an j'ai changé mon système de base de données HF contre du
>SQL Server.

Question bête mais sérieuse (ce n'est pas un troll) : Tant qu'à
migrer, as-tu des raisons précises d'avoir choisi SQL Server plutôt
qu'un équivalent dans le monde du logiciel libre (MySQL ou PostGreSQL
pour ce citer que les deux plus connus) ?

Amicalement,

--
Eric



Je me suis posé la même question en lisant ce thread. D'autant que le
fait de choisir SQLserver (sans remettre la qualité de cette base)
ferme la porte à l'utilisation d'autre OS pour le serveur.



--
suivre ce lien pour répondre:
http://cerbermail.com/?2KrV3YZXnn
Daniel
;-)
Avatar
VincentC
Emmanuel Haefele a exprimé avec précision :
"Fred" a écrit

Bonjour Fred,

Avec la même analyse je gère aussi un site Web réalisé en WebDev.
Je sais je te raconte ma vie mais si tu veux des infos ou autres pour
migrer sans problèmes et ne pas galérer comme moi au début, je peux
toujours t'aider.



Merci beaucoup pour ta proposition d'aide. On sens vraiment que tu n'as
rien regretté dans ce changement et qu'il n'y a que du bon à vouloir
franchir le pas. Je vais encore y réfléchir ...


Amicalement,

Emmanuel Haefelé



j'avais des soucis de lenteur sur des tables HF avec quelques centaines
de millier d'enregistrement. j'ai profité de la migration 5.5 vers 9
pour passer en HF C/S.

Pour l'instant, ça va mieux. et la migration (vers HF C/S) ne prend pas
beaucoup de temps. (à part des pb avec des tables qui ont des noms
réservé du type user, group ...

C'est peux être un essai à faire. Question timing, il m'a fallu
beaucoup plus de temps pour passer de 5.5 à 9 que de HF Classic à HF
C/S.

Au fil, de l'eau, il reste à optimiser les accès.

Le prochaine étape pour moi, c'est de migrer vers FireBird. mais là, il
y a un peu plus de boulot.


Est-ce que tes problèmes ne serait pas lier à des pics d'utilisation
réseau ? ou des pics d'utilisation du serveur (CPU à 100%, pas assez de
mémoire, etc ... )?

Ca me rappelle mes problèmes avec paradox quand il y a avait trop d'E/S
les index crashés.
1 2