OVH Cloud OVH Cloud

[WD55][WD9] Application qui ne répond plus

11 réponses
Avatar
Emmanuel Haefele
Bonjour,

J'ai une appli très simple (une fenêtre fille appelée depuis une fenêtre
mère) qui tourne en permanence sur un serveur. Son but est de scruter un
répertoire pour récupérer des données à intégrer dans une base HF.

Une procédure est exécutée à intervalle régulier par le biais d'un timer
(TimerSys), dès que la procédure est exécutée le timer est arrêté
(FinTimerSys), puis en fin de procédure, il est réactivé.

Ce programme est généralement réduit dans la barre des tâches et peut
tourner plusieurs jours sans problème, le soucis c'est que de temps à
autre en cliquant sur le bouton dans la barre des taches il n'est plus du
tout possible de réafficher l'appli pour avoir une action dessus. En
allant dans le gestionnaire des tâches, le programme est normalement en
cours d'exécution mais le seul moyen pour le stopper est de tuer la tâche
:-(

Ce phénomène je le rencontrais également en 55 et je n'ai jamais compris
pourquoi il se produisait. Quelqu'un aurait déjà rencontré ce problème,
aurait une idée ?

Par avance, merci.


Amicalement,

Emmanuel Haefelé.

10 réponses

1 2
Avatar
Jean Passe
Salut,

Ce phénomène je le rencontrais également en 55 et je n'ai jamais compris
pourquoi il se produisait. Quelqu'un aurait déjà rencontré ce problème,
aurait une idée ?





J'ai rencontré ce problème avec une appli non WD.
J'ai chez moi un vieux PC avec 256 Mo de RAM qui me sert de serveur
(faudrait que le passe sous Linux).
A un moment donné, il plantait quasiment tous les jours. J'ai mis un certain
temps avant de comprendre que c'était un problème de mémoire.
Trop d'applis qui tournaient et disque presque plein donc pas de swap ou pas
assez.

J'ai viré pas mal de trucs inutiles et ça allait de suite mieux, disons
qu'il ne plantait plus qu'une fois pas semaine ...:-)

Quand j'ai changé des applis de PC (elles tournent en permanence) ça ne
plante plus.

Etant donné que les WD sont quand même assez gourmands en mémoire..... peut
être que ....

a+
Avatar
PYT
Emmanuel Haefele wrote:
Bonjour,

J'ai une appli très simple (une fenêtre fille appelée depuis une fenêtre
mère) qui tourne en permanence sur un serveur. Son but est de scruter un
répertoire pour récupérer des données à intégrer dans une base HF.

Une procédure est exécutée à intervalle régulier par le biais d'un timer
(TimerSys), dès que la procédure est exécutée le timer est arrêté
(FinTimerSys), puis en fin de procédure, il est réactivé.

Ce programme est généralement réduit dans la barre des tâches et peut
tourner plusieurs jours sans problème, le soucis c'est que de temps à
autre en cliquant sur le bouton dans la barre des taches il n'est plus du
tout possible de réafficher l'appli pour avoir une action dessus. En
allant dans le gestionnaire des tâches, le programme est normalement en
cours d'exécution mais le seul moyen pour le stopper est de tuer la tâche
:-(

Ce phénomène je le rencontrais également en 55 et je n'ai jamais compris
pourquoi il se produisait. Quelqu'un aurait déjà rencontré ce problème,
aurait une idée ?

Par avance, merci.


Amicalement,

Emmanuel Haefelé.



Pourquoi tu ne converti pas ton appli en service ?
Pourquoi n'utilise tu pas plutot un thread avec un event pour lancer la
procédure ?

J'utilise ces techniques sur des serveurs et je n'ai jamais constaté ce
genre de pb (bon d'accord le contexte n'est pas tout à fait le même :
c++ avec des bases Pervasive et connexion à des boites aux lettres mail
par pop et smtp et envoi de fichiers par mqseries)

PTR
Avatar
STASZEWSKI André
Bonsoir,

Est-ce que ton appli ne serait pas en train de scruter au moment où tu
essais de réafficher l'appli ?
Normalement si la procédure de scrutage est dans la fenêtre fille,
lorsqu'elle s'execute elle prend le focus, et de ce fait pour réafficher la
fenêtre mère réduite il faut lui redonner le focus ou faire en sorte que la
fenêtre fille se ferme.

N'y aurait-il pas une autre appli qui s'execute au même moment avec le focus
"par dessus tout" ?
Bon je dis ça comme ça...

--
Cordialement,
André STASZEWSKI
(Gratuit) Photo Visu 3.1 sur www.PlaneteDev.fr.st
Pour me contacter cliquez ici : http://cerbermail.com/?OT0Wnwyzph

"Emmanuel Haefele" a écrit dans le message de news:
43c68f64$0$19680$
Bonjour,

J'ai une appli très simple (une fenêtre fille appelée depuis une fenêtre
mère) qui tourne en permanence sur un serveur. Son but est de scruter un
répertoire pour récupérer des données à intégrer dans une base HF.

Une procédure est exécutée à intervalle régulier par le biais d'un timer
(TimerSys), dès que la procédure est exécutée le timer est arrêté
(FinTimerSys), puis en fin de procédure, il est réactivé.

Ce programme est généralement réduit dans la barre des tâches et peut
tourner plusieurs jours sans problème, le soucis c'est que de temps à
autre en cliquant sur le bouton dans la barre des taches il n'est plus du
tout possible de réafficher l'appli pour avoir une action dessus. En
allant dans le gestionnaire des tâches, le programme est normalement en
cours d'exécution mais le seul moyen pour le stopper est de tuer la tâche
:-(

Ce phénomène je le rencontrais également en 55 et je n'ai jamais compris
pourquoi il se produisait. Quelqu'un aurait déjà rencontré ce problème,
aurait une idée ?

Par avance, merci.


Amicalement,

Emmanuel Haefelé.



Avatar
Emmanuel Haefele
"STASZEWSKI André" a écrit

Bonjour André,

Est-ce que ton appli ne serait pas en train de scruter au moment où tu
essais de réafficher l'appli ?



Je crois que tu viens de me mettre sur la piste et à l'instant j'ai fait
un test. Dans mon traitement de mise à jour sur HF j'utilise une classe
pour l'accès aux fichiers et dans cette classe si un enregistrement est
bloqué j'affiche un message d'info. Etant donné que l'appli est réduite
dans la barre des tâches, le message n'apparait pas à l'écran et il bloque
l'appli de la manière décrite :-(

Je viens également de constater qu'en faisant plusieurs ALT-TAB (deux au
moins) sur l'appli et un "enter" après chacun d'eux finalement je reprends
la main sur l'appli. Merci beaucoup, je constate que parfois ça a vraiment
du bon de discuter et que ça aide bien ....


Amicalement,

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

Bonjour Pierre-Yves,

Pourquoi tu ne converti pas ton appli en service ?
Pourquoi n'utilise tu pas plutot un thread avec un event pour lancer la
procédure ?



C'est vrai que c'est une bonne idée, à terme je devrais basculer sur ce
principe. Ceci dit ici c'est un spécifique datant d'une version 5.5 et qui
a été migré donc difficile pour moi de mettre la main à la patte.

Par contre petite question par rapport à ça, si le programme est en
service, qu'une récupération est en cours avec mise à jour sur HF et qu'au
même moment il y a un arrêt du serveur sans arrêt du service, est-ce que
la mise à jour peut être interrompu de façon brutal ou est ce que windows
attendra la fin du traitement ?

Dans le même ordre d'idée avec les threads est-ce que ce problème
d'interruption pourrait aussi se poser, lorsqu'on arrête manuellement un
service aussi ?

En fait l'avantage pour moi de ce programme qui tourne en permanence est
de pouvoir l'arrêter proprement.


Amicalement,

Emmanuel Haefelé.
Avatar
Jérôme
Emmanuel Haefele a formulé la demande :
Bonjour,

J'ai une appli très simple (une fenêtre fille appelée depuis une fenêtre
mère) qui tourne en permanence sur un serveur. Son but est de scruter un
répertoire pour récupérer des données à intégrer dans une base HF.

Une procédure est exécutée à intervalle régulier par le biais d'un timer
(TimerSys), dès que la procédure est exécutée le timer est arrêté
(FinTimerSys), puis en fin de procédure, il est réactivé.

Ce programme est généralement réduit dans la barre des tâches et peut
tourner plusieurs jours sans problème, le soucis c'est que de temps à
autre en cliquant sur le bouton dans la barre des taches il n'est plus du
tout possible de réafficher l'appli pour avoir une action dessus. En
allant dans le gestionnaire des tâches, le programme est normalement en
cours d'exécution mais le seul moyen pour le stopper est de tuer la tâche
:-(

Ce phénomène je le rencontrais également en 55 et je n'ai jamais compris
pourquoi il se produisait. Quelqu'un aurait déjà rencontré ce problème,
aurait une idée ?

Par avance, merci.


Amicalement,

Emmanuel Haefelé.



J'ai eu le même probléme avec les timers.
J'ai résolu le probléme en ne les arrêtant plus mais en faisant un
systéme de "Jeton" une fois lancé.

Le lancement et l'arrêt des Timers avait la facheuse tendeance à
saturer la mémoire, et à ralentir le fonctionnement de l'appli.

voilà si ca peut aider

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
Emmanuel Haefele
"Jérôme" a écrit

Le lancement et l'arrêt des Timers avait la facheuse tendeance à
saturer la mémoire, et à ralentir le fonctionnement de l'appli.

voilà si ca peut aider



Merci je vais surveiller ça également.


Amicalement,

Emmanuel Haefelé.
Avatar
STASZEWSKI André
"Emmanuel Haefele" a écrit dans le message de news:
43c76408$0$21291$
"STASZEWSKI André" a écrit

Bonjour André,

> Est-ce que ton appli ne serait pas en train de scruter au moment où tu
> essais de réafficher l'appli ?

Je crois que tu viens de me mettre sur la piste et à l'instant j'ai fait
un test. Dans mon traitement de mise à jour sur HF j'utilise une classe
pour l'accès aux fichiers et dans cette classe si un enregistrement est
bloqué j'affiche un message d'info. Etant donné que l'appli est réduite
dans la barre des tâches, le message n'apparait pas à l'écran et il bloque
l'appli de la manière décrite :-(

Je viens également de constater qu'en faisant plusieurs ALT-TAB (deux au
moins) sur l'appli et un "enter" après chacun d'eux finalement je reprends
la main sur l'appli. Merci beaucoup, je constate que parfois ça a vraiment
du bon de discuter et que ça aide bien ....


Amicalement,

Emmanuel Haefelé.



De rien mon cher Emmanuel, on est là pour ça ! ;-)
--
Cordialement,
André STASZEWSKI
(Gratuit) Photo Visu 3.1 sur www.PlaneteDev.fr.st
Pour me contacter cliquez ici : http://cerbermail.com/?OT0Wnwyzph
Avatar
PYT
Emmanuel Haefele wrote:
"PYT" a écrit



Bonjour Emmanuel,

Caz faisait longtemps ;)



C'est vrai que c'est une bonne idée, à terme je devrais basculer sur ce
principe. Ceci dit ici c'est un spécifique datant d'une version 5.5 et qui
a été migré donc difficile pour moi de mettre la main à la patte.

Par contre petite question par rapport à ça, si le programme est en
service, qu'une récupération est en cours avec mise à jour sur HF et qu'au
même moment il y a un arrêt du serveur sans arrêt du service, est-ce que
la mise à jour peut être interrompu de façon brutal ou est ce que windows
attendra la fin du traitement ?



A priori a moins de coupé le courant, Windows attends que le ²serveur se
soit arreté.

Je te dirai que je ne me suis jamais préoccupé de cela. Mes services
répondent au message de windows (demande d'arret, etc) et n'est jamais
constaté de pb !

Dans le même ordre d'idée avec les threads est-ce que ce problème
d'interruption pourrait aussi se poser, lorsqu'on arrête manuellement un
service aussi ?



Non

En fait l'avantage pour moi de ce programme qui tourne en permanence est
de pouvoir l'arrêter proprement.




Les services c'est quand même fait pour ce que tu fait et plus adapté
qu'un timer qui est un paliatif trop souvent utilisé avec windev.


A bientot (oui je vais revenir à windev avec la 10 standard et mobile,
PCSoft integre enfin la gestion de source et le C/S et la communauté
rale toujours autant :) )


PYT
Avatar
Emmanuel Haefele
"PYT" a écrit

Caz faisait longtemps ;)



Effectivement et ça me fait plaisir de constater que tu vas revenir un peu
plus souvent dans notre petite communauté ;-)

Les services c'est quand même fait pour ce que tu fait et plus adapté
qu'un timer qui est un paliatif trop souvent utilisé avec windev.



Ok je te remercie pour la suggestion, je vais essayer de trouver un peu de
temps pour me pencher dessus.

A bientot (oui je vais revenir à windev avec la 10 standard et mobile,
PCSoft integre enfin la gestion de source et le C/S et la communauté
rale toujours autant :) )



Pour avoir testé le C/S sur HF, je ne suis pas certain que ce soit la
panacée mais il est exact qu'il a au moins le mérite d'exister. Pour la
gestionnaire de source, je vais le tester car je pense que s'il fonctionne
il y a un intérêt à vouloir l'utiliser même sur un simple réseau local.


Amicalement,

Emmanuel Haefelé.
1 2