Introduction Erreurs avec numéro

Transcription

Introduction Erreurs avec numéro
Introduction
Cette liste part de la liste officielle des erreurs publiée par prologue software. J'ai simplement rajouté des
commentaires sur des contextes rencontrés en tant que programmeur, ces commentaires peuvent permettre de
retrouver plus rapidement la source d'une erreur, mais ne sont en aucun cas une solution à tous vos problèmes.
Dans quelques cas, les commentaires sur les erreurs peuvent aussi servir au SAV.
Erreurs avec numéro
0 pbm programmation
remarque : dans d'autre cas, on peut avoir des comportements aléatoire, comme des arrêts complets de
l'exécution.
1 Périphérique non prêt
si Use-It et impression, on doit envoyer des données merdique dans les print (.FF. par exemple)
si windows et impression, l'imprimante est mal parametree : soit absente dans windows, soit partage
avec pbm. verifier configurateur abal et imprimantes windows surtout si partages
si windows et impression, voir les parametrages, ca peut etre :
print=imp_nlog:tab(0)
Erreur 1 on wcreat : voir plus bas
2 Erreur de lecture/écriture
si Use-It graphique et lancement de programmes externes, essayer de passer par
xterm -e "leprg les arguments"
3 Erreur de positionnement de tête de lecture
Error 3 on wcreat :
a priori, lié à criteria 3.7c en Useit console, voir Error 1 on wcreat,
très probablement lié à l'utilisation de l'instrution validptr qui ne renvoie pas la meme valeur avec
criteria 3.7.
Probablement un bug d'afficahge avec un zwinclear de trop
Error 3 on wcreat
screen=(80,24)
wanted=(50,12)
4 Descripteur d'entrée/sortie incorrect
5 Support protégé en écriture
11 (pas de description)
call d'une procédure située dans un overlay, sans avoir fait l'attach avant.
13 table des invalides saturés
dfile(SI) d'un fichier .pdf
sur 13
20/03/2008 21:20
2 sur 13
(useit) : dfile d'un fichier non criteria, dont on n'as aucun droit de suppression (prologue essaye de
supprimer un fichier appertenant exclusivement à root)
20 Paramètre d'appel incorrect (erreur classique avec la BDA FAC)
si fac, verifier que nlog > zero !
si fac et strmread, verifier les longueurs de buffer si > 0
constaté dans le programme diffusions (v2)
on assigne un fichier inexistant : 40 (normal)
on assigne un fichier existant : 0 (normal)
on assigne un fichier inexistant (mais que l'on veut créér) : 20 (pas normal)
=> SOLUTION
un strmclose() après l'assignation du fichier existant
Remarque importante :
: la FAC est une BDA (DLL), elle est persistante toute au long de l'existence du processus exécuteur
ABAL, la fermeture du programme, par le chainage d'un autre ne ferme pas les fichiers assignés par la
fac. Donc, on peut se retrouver avec des erreurs 20 en assignant un fichier FAC dans un programme
(a.at par exemple), cette erreur est due a un oubli de fermeture d'un fichier FAC dans le menu (menu.at).
En résumé, il n'y a que deux facons de décharger l'assignation d'un fichier FAC :
Arrèt de l'exécuteur,
fermeture du fichier par strmclose(nlog)
C'est exactement le même problème rencontré avec Report maker, qui gardait une exclusivité des
fichiers assignés, meme au menu général.
Il faut imaginer que la bda fac est une dll qui s'éxecute avec l'exécuteur, c'est lui qui la dirige, par
l'intermédiaire du programme abal. (un programme abal ne peut pas de lui même executer du code
dans une dll, techniquement, c'est toujours l'exécuteur qui exécute cette tache).
24 Table des descripteurs de taches saturé, aucun descripteur de tache disponible
27 Allocation mémoire impossible (système)
si ca plante suite a 1 transfert FTP penser a regarder le BIN !!!
pour eviter des erreurs 27 sous useit (constaté 1.3) il faut :
arreter criteria
si /etc/criteria.cfg existe, ajouter la ligne -s1024 par vi, sinon le créer avec la ligne -s
30 Erreur de syntaxe (désignation de fichier)
TWS : fichier avec un nom depassant la norme 8.3
USEIT : nom de fichier en relatif (peut etre qd > 64 car...)
toute version : appel d'un programme avec un argument, dans un programme qui n'a aucun ARG.
36 Structure de fichier incorrecte
peut etre essaye tu d'executer un .o comme un .at...
40 Fichier non trouvé ou accès impossible
si useit et dfile, regarder si pas un espace dans le nom de fichier
si useit et find, le chemin sur l'assigne est supérieur à 64 octets (non testé windows)
si useit et redirecteur CRITERIA, et instructions find ou dfile ou strmopen, c normal, ca n'as jamais
marché.
20/03/2008 21:20
3 sur 13
(MAJ : correction abal3 annoncée en fevrier 2006)
si assignation d'un fichier dont le nom contient un espace, il semblerait qu'en remplacant l'espace par
underscore _ ca marcherait.
a priori, les accès direct (read, write) passent correctement via le redirecteur criteria, contrairement à la
fac.
41 Fichier déjà existant
.I sans .D ou vice versa
42 Fichier fermé
43 Fichier encore ouvert
44 Fichier déjà ouvert (non partageable)
si rename, à priori il faut un accès exclusif au fichier (vérifier assignation du fichier, sinon c'est qu'il est
en cours d'utilisation ailleurs)
45 Fichier trop grand
46 Débordement de volume
47 Droits d'accès incorrects
erreur dans la FAC quand on veut dupliquer un fichier assigné dans un nouveau fichier via filecopy.
ERR47 car le fichier source est ouvert.
48 Fin de fichier
49 Répertoire saturé
50 Numéro logique invalide
si zlib et liste, verifier les longueurs d'enreg dans zasklalpha. surement trop petit
probablement un effet d'ecrasement de mémoire - grave- voir bt2679
51 Trop de fichiers ouverts
53 Adresse fichier incorrecte
fichier deja ouvert, peut etre en debug.
adresse d'un fichier qui n'existe pas (genre 7:\chemin\inexistant)
souvent, le .i est pété
54 Format de volume incorrect
55 Fonction incohérente
si useit et redirecteur criteria : l'ordinateur serveur de fichier n'est pas à jour dans les programmes(mini :
1.3b ou 1.4b)
on a ouvert un fichier en lecture, et on essaie d'écrire.
pbm de client criteria avec une version supérieure à celle du serveur, qui fait que le redirecteur se met en
20/03/2008 21:20
4 sur 13
erreur
56 Fonction non supportée
assign=0
numero logique pas assigné
il peut manquer un xxx_ovl
Exemple
programme_overlay.at (3 procedures dedans)
programme_appelant.at appelle le pointeur de la proc num. 1250 dans programme_overlay.at
==> ERREUR 56
Un pointeur n'est pas créé (genre tampon MC dans l'assigne)
dans certain cas, un reboot serveur peut faire disparaire le pbm jusque là systematique.
58 Fonction interdite par la configuration.
Sous Unix, tentative d'accès à un fichier ou à un périphérique dont l'utilisateur ne possède pas les droits
d'accès. (voir man chmod, man chown, man chgrp)
si erreur sur close, regarder si des fois c pas des numeros logiques > 64 qui provoquent l'erreur. Il faut
rajouter #files 256 sous le #stack dans l'entete du programme
Utilisation d'un numéro logique supérieur à la valeur de #files (en windows, erreur 58, en useit, exa
meurt sans message)
60 Type de fichier incorrect
tentative de suppression d'un fichier MC assigné en SI seulement (assigner obligatoirement en MC) ce
fichier (et en exclusif si on veut une suppression physique aussi).
useit (1.4b et 2.1a.0.03) : si le nom d'assignation est trop long (>42 et qq caractères) alors erreur
62 Perte d'information en écriture
les tampons de clef / data sur MODIF ou INSERT ne sont pas EXACTEMENT a la bonne taille
63 Perte d'information en lecture
FAC : lecture fichier : le tampon de lecture est trop petit (meme logique que lecture criteria)
64 Début de fichier
66 Noms longs non supportés
70 Longueur de clé trop petite
71 Longueur de clé trop grande
72 Trop de fichiers ouverts (SI)
20/03/2008 21:20
5 sur 13
73 Valeur de marqueur interdite
marqueur = 0 lors d'un insert, ou modif, ou delete
74 Enregistrement bloqué par un autre usager (ou un autre numéro logique).
75 Débordement du fichier des clés
Erreur 75 sur SVAM fichier STOCK : le fichier était trop important (env 3Go) ; pb de version de
critéria.
76 Incohérence dans le fichier des clés
77 Débordement du fichier des données
78 Clé inexistante
constaté une fois sur un clink (top) lors d'un creemag mais jamais compris d'où ca pouvait venir,
probablement une erreur de programmation (clink sur une zone non déclarée).
79 Clef existante, mais valeur de marqueur incorrecte
80 Débordement de la structure des clés
81 Clé déjà existante
82 Tampon d'entrée trop petit
83 Code fonction inexistant (MC) ou numéro logique incorrect.
84 Trop de fichiers ouverts (MC)
85 Incohérence du dictionnaire
86 Débordement fichier de données (MC).
Trop de rubriques ou trop d'articles (255).
Trop de liens (255) : s'assurer que les liens ne soient pas redondants.
Trop d'enregistrements dans le fichier des données. ou nombre 224-1 atteint (en fonction de la méthode
d'accès).
87 Rubrique incorrecte ou lien existant.
Rubrique déjà existante ou index déjà existant.
la dcl doit etre fausse, le filler doit etre trop grand. a tout les coups ca pete sur une creation de la
rubrique filler : le poids des rubriques depasse le poids de la dcl
88 Rubrique inexistante ou rubrique figurant plusieurs fois dans une question.
Une rubrique non déclarée figure dans une description de lien.
20/03/2008 21:20
6 sur 13
Une rubrique non déclarée figure dans une interrogation.
Une rubrique figure plusieurs fois dans la même question.
89 Nombre de critères incorrect.
Trop de rubriques dans un lien.
Trop de rubriques dans une interrogation.
90 Description de lien inexistante.
Aucun lien déjà créé ne peut répondre à la question. Créez le lien manquant.
on essaye de faire un link sur un constituant de la clef
si posit.u : verifier le 'order by'
91 Valeur multicritère trop longue.
Une rubrique lors d'une interrogation possède une longueur incorrecte.
Le critère de recherche a une longueur supérieur à celle de la déclaration,
where ANNULE='
O'
; or ANNULE fait 1 octet, gros bug d'utilisation de l'instruct
92 Données et dictionnaire sont incompatibles.
Des modifications ont été apportées au fichier des données sans passer par le multicritère.
a priori, un delete puis insert peut aider a résoudre le pbm.
93 Opérateur inconnu du multicritère.
pas de WHERE dans ton SQL ou faute de synthaxe
94 Descripteur multicritère incorrect.
si use-it, verifier version du exa (Version 2.2b.0.01 -X11 -11 minimum).
si SUBSTR(chaine, index, longueur) / LEFT(...) / RIGHT(..) : verifier la longueur si pas nulle ou
negative , ou que l'index ne dépasse pas la longeur de la chaine
96 Fin des réponses (MC).
97 Expression multicritère incorrecte
mauvais opérateur, erreur de syntaxe.
98 Utilisation d'une rubrique non déclarée.
Rubrique non-interrogeable car de dimension supérieure à 255 octets.
99 Type de valeur incorrect.
Le type est différent de celui décrit dans l'instruction KEY.
100 Segment inexistant.
assign pas fait
search=zéro
20/03/2008 21:20
7 sur 13
.at mal compilé
Execution d'un .at abal32 avec un exa16
101 READ ou RESTORE sans DATA.
102 Indice à zéro ou division par zéro
sur zfilesi : numero logique a zero !
2 zaskbout avec le mm numero
103 Indice trop grand sur un tableau
104 Chaîne utilisée comme numérique
105 RETURN sans GOSUB
106 Débordement de variable BCD. / Débordement (MC)
Le nom d'une rubrique est supérieur à 16 caractères,
la valeur d'une rubrique est supérieure à la déclaration KEY,
le compteur associé à POSIT, POSIT.D, ou COUNT est trop petit pour recevoir le nombre de
réponses.(passer le compteur en bcd)
107 Trop de niveaux de GOSUB / LDGO.SEG ou de CALL - appel segment nommé
inexistant
108 Débordement arithmétique
109 Fichier traduit incorrect
110 Variable BCD incorrecte dans sa structure
si useit et redirecteur criteria : l'ordinateur cible n'est pas joignable
111 Numéro logique interdit pour ASK ou PRINT. Touche de fonction non
programmable.
112 Format incorrect
zlibrary (zpriVar) : problème de mise à jour d'une zone qui ne va pas (genre zpalpha() d'un bouton)
113 Variable trop grande
114 Débordement de mémoire (exécuteur)
si erreur sur ZLIFBEGIN, voir le sql du zlifposit
pbm de lien multicritere
simplifier les ORDER BY
si SUBSTR(chaine, index, longueur) / LEFT(...) / RIGHT(..) : verifier la longueur si pas nulle ou
negative
chaine = "xxx"!chr$(9) ... chaine = chaine!"yyy" => 114 : le ! gère mal la tabulation en fin de ligne.
passer par chaine = left(chaine, len$(chaine))+"yyy"
trop de concaténation par ! sur une seule ligne,
20/03/2008 21:20
sur 13
Sur une requete posit, on passe un valeur de recherche plus grande que la variable
d'une manière générale, c'est surtout un problème de mémoire qui apparait, éventuellement de maniere
aléatoire, suivant le volume de mémoire que l'on travaille
115 Structure T-Code inconnue
116 Numéro logique non déclaré par ASSIGN
117 Numéro logique incorrect
numéros logique > 128 par exemple, en particulier FAC.
118 Variable externe interdite dans ce cas, ou pointeur invalide.
il manque un CREATE
verifier les field=m car une variable peut en ecraser une autre, et si c'est un pointeur qui se fait ecraser,
=> 118
si compile d'un at, un module n'est pas trouvé.
on fait un create sur autre chose qu'un pointeur (exa32 en particulier)
119 Numéro logique associé à un support, non à un fichier
un repertoire qui porte le nom d'un fichier que l'on essayes de creer.
on essaye de linker un module abal2 avec un programme abal3
120 Fichier protégé en écriture
si DFILE : regarder l'ASSIGN si WR et EX !!!
ou bien assigné sur un autre nlog
ou bien dfile=0...
dans sélection zlib, pbm de numéro logique demandé APRES vidage sélection.
ATTENTION ! si useit graphique, le mm programme en useit console peut bloquer la machine
121 Désignation incorrecte dans un ASSIGN
122 Mémoire tampon trop petite pour le résultat
123 RESUME sans ON ERROR
Appel d'un overlay, avec mauvais proto. de fonction (pas systématique, on peut tomber sur une autre
erreur). En programmation, ajouter l'option -L dans les options de traductions, et chercher les
déclarations de procédures dans le fichier programme.lst, en général, les déclarations de procs ne sont
pas bien placées (les procs publiques sont toujours les premieres procs de l'overlay).
Appel d'un overlay, qui porte un nom système impossible : exemple *.at
En windows,dans configurateur abal, sys_zlibpath : retirer les guillemets autour de "c:\progra
....\zlibrary"
124 RESUME sans erreur.
125 Instruction non supportée par l'exécuteur.
126 Fonction interdite dans le contexte.
20/03/2008 21:20
9 sur 13
numéro logique pas assigné (erreur visible sous UseIt, et pas forcément sous windows)
posit sur fichier SI, ou fichier pas assigné ...
127 Variable virtuelle inexistante
sous useit, c'est en général un appel à un exectuble inexistant, ou un appel a une mauvaise instruction
shell. (genre : zload_go_new("zip.exe", "patatipatata"))
si zlib & useit(v. 2.x), verifier droits d'acces des images .bmp
peut etre un effet d'ecrasement de mémoire - grave-
128 Variable incorrecte comme argument
si pbm overlay, voir 123
129 Conversion de données pendant un appel
130 Instruction interdite dans une procédure
131 Procédure inconnue
constaté une fois dans l'attach d'un overlay corrompu suite crash disque.
Erreur système 131 a l'adresse 0089 (proc -1)
on constate que le numéro de proc -1 est abhérant
132 Procédure(s) incorrecte(s) dans le traduit
call avec ,d et autres end.proc
134 Saturation du nombre de verrous du système (ne peut se produire que sous UNIX)
135 Chargement d'une bibliothèque dynamique impossible
pbm sur une .dll absente
136 Chargement d'une bibliothèque .AT impossible
tentative d'entree impossible en Overlay dans un .AT soit absent, soit HS (err100 qd exa)
137 un module / .DLL / programme qui part en live
un module est charge alors qu'il ne devrait pas (vitale/reportmekouy/...)
autrement : 1 solution : rebooter . - sinon net stop criteria + net start criteria (windows)
si windows et pbm persistant, chercher et tuer le docteur watson dans les process...
138 Erreur fatale dans une bibliothèque dynamique.
139 Fonction externe inconnue.
170 Code de fonction inexistant.
171 Trop de fichiers ouverts simultanément.
20/03/2008 21:20
0 sur 13
172 Numéro logique incorrect. Descripteur incorrect. Mode d'ouverture incorrect.
173 Incohérence du dictionnaire.
174 Longueur de clef incorrecte. Type de fichier incorrect.
175 Description de jointure incorrecte.
Nombre de joints binaires incorrect.
Opérateur incorrect.
Jointure sur le même fichier.
Jointure impossible.
Longueur et type de rubriques différentes.
176 Description ou nom de fichier existant.
177 Description ou nom de fichier inexistant.
178 Nom de rubrique existant.
179 Nom de rubrique inexistant.
180 Description ou nom de jointure existant.
181 Description ou nom de jointure inexistant.
182 Trop de fichiers dans le dictionnaire.
Trop de rubriques dans le dictionnaire.
Trop de jointures dans le dictionnaire.
183 Pas de POSIT avant le DOWN ou le UP.
184 Clef trouvée, mais index faux.
185 Pas de réponse pour ce fichier.
217 (FAC)
strmread avec strmopen avec numlogic a 0
221 criteria
problème de licence :
tentative d'acces à 1 personnal criteria comme si crinet.
sous useit 1.4 et + : tentative d'acces distant à un fichier via un redirecteur criteria, et la licence du
serveur de fichier I&D n'est pas activée chez prologue
problème de fiabilité du réseau
222 station déconnectée
problème de fiabilité du réseau
20/03/2008 21:20
11 sur 13
223 serveur deconnecté,ou absent ou service criteria non lance sur serveur
Vérifier :
la version de criteria (3.8 minimum pour vista)
la config du criteria
qu'il n'y a pas de soucis de firewall.
224 erreur lors de la transmission d'un paquet sur le réseau (ex changement d'adresse ip
sur adsl)
serveur useit criteria 3.7 qui interroge un client criteria 3.6
242
444
sortie de procedure sans exit() alors que le prototype l'impose.
;appelant.at
l_err = call (totoptr);on appelle toto() dans overlay.at
...
;overlay.at
proc toto()
;t'as vu un :% toi ????
;pas de retour attendu !
endproc
proc abcdef():%
if 1=2
exit(1)
endif
endproc
-4096
attach overlay avec nlogiq à zero
Erreurs sans numéro
reboot pc useit planté en console, mais pas en graphique
voir 120
wabal se ferme / debugger wabal qui se coupe / wabal se ferme sans rien dire
pbm de programmation.
wexa qui tourne en boucle
erreur de programmation constaté une fois avec wabal et useit: le forward existe, l'appel existe mais pas
la proc (cela arrive facilement, dès que la cible est un peu grosse).
si le projet est un peu important, winabal ne fait plus la verif (forward = proc) .
err zlib z32.dll zlib - windows - abal2 : incomplete z32.dll, put it in the path c.r.
erreur de mélange de zlib2 et zlib3
20/03/2008 21:20
12 sur 13
on a écrasé une zlib3 par une zlib2, sauf qu'il y a 3 fichiers de plus dans la zlib3, qui ne seront pas
écrasés.
il faut supprimer z.dll
liste zlib déconnade zlib avec les listes qui ne se rafraichissent pas bien
a priori, la fonction zlifposit
peut perturber des rafraichissement, il semblerait des valeurs mises en memoire dans l'overlay zlib
puissent etre renvoyées dans le callback d'affichage.
2 soluces
1. ajouter un order by dans la requete, ca marche dans quelques cas
2. ajouter un search dans le callback. c'est un peut lourd, mais tres efficace
core dump sous useit, pas forcément immédiat, à la sortie du programme par exemple
(mais aussi aléatoire).
close=0
posit qui tourne en boucle
point virgule en plein milieu d'une requete SQL
;
l_quest = "WHERE OPTANN LIKE ... AND (SREG='TM' OR SREG='M' OR SREG='S' OR SREG = 'TS')
AN
caractère "invisible" dans le posit, comme une tabulation. Supprimer tous les caractèrs d'espacements et
remettres des espaces. ca arrive en développement, et ca fait perdre bcp de tps.
Error 1 on wcreat
Exemple de message d'erreur complet :
Error 1 on wcreat
screen=(80,24)
wanted=(50,25)
En fait, l'erreur se produit lorsque l'on essaie d'ouvrir une fenêtre trop grande. Il ne faut pas dépasser la 24ième
ligne car sous Use-It, cela provoque cette erreur.
Attention : même si l'écran fait bien 80 lignes * 24 colonnes, pensez à retirer la coche "status", qui dans
certains cas rajoute la 25 ème ligne.
Crash de critéria
constaté une fois sous windows, lié à la modification extérieur d'un fichier assigné, criteria explosait
assignation de c:/fonclog => fon_nlog
écrasement de c:/fonclog par une nouvelle version du fichier (copie strm ou extérieure)
comptage, posit, ou lecture du fichier en question => crash critéria
critéria a en mémoire les anciennes références (adresse mémoire des enreg) du fichier, et veut lire
le nouveau fichier avec, du coup, la situation devient abhérente pour critéria.
faire un close avant la copie, puis une réassignation après suffit a résoudre le pbm
problème probable de programmation
Plantage sans message
20/03/2008 21:20
13 sur 13
constaté sous Useit 1.4b uniquement (pas windows, pas dans les versions supérieurs de UseIt).
on essayait de faire un débloque sur un fichier à zéro. donc search=0:next,l_err. par contre, on
ne sait pas si c'est en faisant le search=0 ou close=0 que ca plante, d'autant plus que l'instruction
next, l_err etait bien précisée.
20/03/2008 21:20