Problème de stabilité VB6

djerase Messages postés 2 Date d'inscription dimanche 19 mars 2006 Statut Membre Dernière intervention 23 novembre 2006 - 19 sept. 2006 à 08:38
djerase Messages postés 2 Date d'inscription dimanche 19 mars 2006 Statut Membre Dernière intervention 23 novembre 2006 - 23 nov. 2006 à 17:27
Bonjour,

J'ai développé un programme en VB6 il y a maintenant 6 ans, il fonctionnait à merveille à l'époque. Il tourne sur un parc de 1500 PCs, et est appelé à partir du logon Script d'un domain Windows NT (Migration 2003 prévue pour fin de l'année). Il y a 2500 users sur le domaine.

Le problème est le suivant:
Le programme ne tourne plus que sur 1000 PCs et part en erreur sur les 500 autres. C'est apparemment lié au user plutôt qu'à la config machine et c'est arrivé sans prévenir. Le parc est en NT4 SP6, Win2000 SP4 et XP SP2. J'ai déjà regardé dans le fichier log de Dr. Watson mais il ne me dit pas grand chose, ce n'est jamais les mêmes dll qui sont reprises dans le dump.
Pire encore, quand je trace avec l'outils Depends, le programme fonctionne et ne rentre pas en erreur.
Encore pire, quand je met des msgboxs un peu partout dans le programme, parfois il s'exécute jusqu'au bout, parfois il s'arrête après 10 msgbox, parfois après 15, mais jamais 2 fois le même comportement.

Sur une machine où il ne fonctionne pas, j'ai installé l'environnement VB6 (SP6) et quand je compile le code et l'exécute, il crashe alors que quand je fais "play" dans VB il tourne et ne plante pas !!!!

Ca fait maintenant 2 mois que je cherche et je ne trouve pas. Ce n'est pas lié à mises à jours Windows car le parc n'est pas mis à jour, nous avons suspendu le serveur SUS depuis un moment. En plus un PC où ça fonctionne avec un utilisateur ne foncionne pas avec un autre. Les profiles sont en rooming, les users ne passent en générale pas d'un XP vers 2000 ou NT vers XP ou 2000, ils restent sur le même OS sur des machines différentes-> pas de risque de corruption de profiles.

Quelqu'un a-t-il une idée ? Le programme ne fait que récolter des infos dans la base de registre, écrire dans la base de registre,écrire des infos dans un fichier access 97 en réseau avec DA0 3.51, s'occupe d'installer des programmes, de mettre des accès aux applications, les users sont tous adminstrateurs locaux de leur machine.

D'avance merci

Dj [mailto:Er@se Er@se] - http://TheTempleOfSound.no-ip.info

2 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
19 sept. 2006 à 09:10
Bah là avec aussi peu de détails sur ton application, on va pas pouvoir faire grand chose.

Il y a forcément quelque chose qui a été modifié sur les 500 postes où il ne tourne plus étant donné qu'il a fonctionné durant 6 ans sur ces machines...

Mise à jour d'un firewall, reconfiguration d'un réseau, mise à jour du système (et donc des dll utilisées par ton appli), les problèmes peuvent venir de pleins d'endroits !

Toujours est-il que le mieux, dans un premier temps est de lister les dll utilisées par ton prog, et de comparer les versions sur les machines qui marchent de celle où ca ne marche pas, ce sera déjà un bon début je pense.
0
djerase Messages postés 2 Date d'inscription dimanche 19 mars 2006 Statut Membre Dernière intervention 23 novembre 2006
23 nov. 2006 à 17:27
Désolé mais j'avais perdu le lien de ce poste, j'ai finalement trouvé un problème, la DLL DAO350 avait été remplacée sur tous les PCs par une mise à jour.
Une fois ce problème détecté, le programme refonctionne correctement mais j'ai du faire une astuce car il tourne jusqu'au bout et dès qu'on arrive au end, il par en Dr. Watson, si le form reste visible et que je ne le ferme jamais pas de prob, comme si la mémoire allouée ne se libérait pas ou qu'il essayait de libérer de la mémoire qui ne lui appartient pas.

Pour le moment, je ne fais pas un end, mais un kill du process (il se suicide à la fin de l'exécution), ce n'est pas très propre mais au moins, les utilisateurs ne sont plus embètés par des messages d'erreurs.

Dj [mailto:Er@se Er@se] - http://djerase.no-ip.info:90
0
Rejoignez-nous