![]() |
Erreur lecture fichier.db - Version imprimable +- Communauté Eggdrop (https://forum.eggdrop.fr) +-- Forum : Eggdrop et scripts (https://forum.eggdrop.fr/forumdisplay.php?fid=8) +--- Forum : Scripts (https://forum.eggdrop.fr/forumdisplay.php?fid=4) +--- Sujet : Erreur lecture fichier.db (/showthread.php?tid=716) |
Erreur lecture fichier.db - heretoc - 09/07/2010 Bonjour, Mon robot marche avec vhost dans une fichier.db sous le nom de "hosts.db" hors si je fait trop de fois une meme commande (exemple: !eggdrop) le robot plante avec l'erreur suivante: [01:54] Erreur tcl : can not find channel named "couldn't open "scripts/clams/sources/hosts.db": file table overflow" A l'interieur du fichier.db les vhosts sont ligne par ligne sous la forme "vhost lvl" (Exemple pour la ligne1 : test.eggdrop.fr 1) Malheuresement je ne comprend pas cette erreur si quelqu'un a deja eu cette erreure et peut m'expliquer cela serais bien gentil. RE: Erreur lecture fichier.db - MenzAgitat - 09/07/2010 A vue de nez, tu ouvres des handles sur des fichiers (avec open) que tu ne refermes jamais (avec close). Ceci dit, sans voir ton code, on peut supposer un peu tout et n'importe quoi, y compris l'éventualité que tu aies foutu dedans la ligne suivante : tcl
RE: Erreur lecture fichier.db - heretoc - 09/07/2010 Oui, excusez moi de l'erreur voici ci-dessou le code tcl qui appel les vhosts dans le fichier hosts.db tcl
RE: Erreur lecture fichier.db - MenzAgitat - 10/07/2010 C'est bien ce que je disais donc, tu ne fermes pas les fichiers que tu ouvres au moyen de "close" et au bout d'un moment tu dépasses le nombre maximum de handles ouverts. RE: Erreur lecture fichier.db - heretoc - 10/07/2010 Je doit dire que la je suis dans le flou RE: Erreur lecture fichier.db - MenzAgitat - 10/07/2010 la ligne return $lvl met fin à ta procédure en retournant le contenu de la variable $lvl; par conséquent, quand cela se produit, la ligne catch {close $channel} n'est pas exécutée et le handle reste ouvert. Après un certain nombre d'utilisations de ta commande, les handles restés ouverts se sont cumulés jusqu'à atteindre la limite maximum autorisée par ton eggdrop et tu obtiens cette erreur. La solution est de remplacer tcl
par tcl
Et au passage, pourquoi utiliser catch lors de l'ouverture et de la fermeture ? Il existe une panoplie de commandes pour vérifier l'existence d'un fichier ou non, le droit de le lire/écrire ou non, etc... Plutôt qu'utiliser catch pour que les erreurs ne soient pas gênantes, gère-les. Jette un oeil aux commandes suivantes : file exists file readable file writable RE: Erreur lecture fichier.db - heretoc - 10/07/2010 Ouki je vais voir demain matin les commandes que tu m'a cité , merci beaucoup. |