cs_EXCLUSIF
Messages postés59Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 9 août 2007
-
25 juil. 2007 à 18:42
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 2014
-
26 juil. 2007 à 07:32
Bonjour,
Comment faire pour qu'au démarrage de mon application celle-ci vérifie que le processus concernant la sauvegarde ne soit pas lancé ? Et que donc elle se referme sans tenter de se connecter à la base de données en affichant un message du style "La sauvegarde est en cours, veuillez réessayer ultérieurement". J'ai fait une recherche parmi les codes-sources mais je ne trouve que des codes pour tuer des processus ou pour en gérer les priorités :(
Merci beaucoup,
Ludo
A voir également:
Il n'y a pas de processus à l'autre extrémité du canal
de quoi lister les processus en cours.si tu peux lister, n(rst-ce-pas, et que tu connais le nom de ton processus, tu sais s'il est en cours ou non !...
Mais il y a quand même plus simple à mettre en oeuvre : une petite appli qui lance tes sauvegardes et qui :
au lancement de la sauvegarde écrit 1 dans un "drapeau" (un minuscule fichier texte) et à sa fin y écrit 0. Il te suffit alors d'aller lire (par code) ce drapeau et de prendre ta décision.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 25 juil. 2007 à 19:24
Comment çà, "si l'appli se plante" ?
Si une appli "se plante" pendant une opération de sauvegarde, le plantage doit alors générer une erreur... à gérer.....
Bon... au lieu de mettre dans le "drapeau" 1 au dévut et 0 à la fin :
mets-y l'heure de début de la sauvegarde au début et rien à la fin.
Dans ton appli : regarde ce drapeau et : si une heure est présente, compares avec l'heure actuelle.
On sait en général quelle est la durée approximative de la sauvegarde, n'est-ce-pas ?
Disons par exemple 40 minutes (exemple) ...
Si heure présente et heure actuelle - heure présente < 40 minutes, la sauvegarde est probablement en cours . Si par contre heure actuelle > 1 heure, c'est que quelque chose s'est "planté" ====>>> message d'alerte et possibilité de fermer l'appli proprement ===>> ce qui effacera le drapeau ...
cs_EXCLUSIF
Messages postés59Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 9 août 20071 25 juil. 2007 à 19:13
Merci bien pour la réponse rapide.
C'est vrai que le coup du drapeau c'est vraiment pas mal mais comment fait si l'appli de sauvegarde plante, se ferme et que le drapeau reste à 1. Toutes les applis clientes seront bloquées, c'est la seule chose qui me rebute un peu. J'avais vu la source que tu me proposes mais elle me parait trop complexe et trop complète pour faire une seimple détection de process. Mais bon je vais y jeter un oeil et voir ce que je peux en tirer.
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 25 juil. 2007 à 22:03
Bonsoir à tous
Cet exemple ne doit pas être compliqué à adapter en vb6.
objProcess = "firefox.exe"
For Each Process In GetObject("winmgmts:").InstancesOf("Win32_process")
If UCase(Process.Name) = UCase(objProcess) Then
MsgBox "Le process " & Process.Name & " est actif.....numéro ID: " & Process.ProcessID
MonProcess = True
Exit For
End If
Next
If MonProcess = False Then MsgBox "Le process " & objProcess & " n ''est pas actif"
Se baser sur la durée d'une sauvegarde, c'est une jmfmarquienne !
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 25 juil. 2007 à 22:15
Re,
WMI permet aussi de surveiller des processes avec "instancedeletionevent" associé à "TargetInstance".
Néanmoins, j'utilise aussi le "drapeau", alias "top", pour surveiller des fichiers (x OS/Servers), et ce, malgré
que wmi permet la surveillance d'évolution d'un répertoire/fichier. Après plusieurs essais, j'ai de grands doutes
sur la fiabilité de cette surveillance.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 26 juil. 2007 à 07:32
Bonjour,
Autres idées :
1) la première n'est pas mal mais un peu pélasitante au niveau de la durée de la sauvegarde.
- pour chaque fichier traité en copie/sauvegarde : mettre dans un fichier texte (toujours le même) les informations suivantes : chemin du fichier - taille du fichier - heure di début de la copie
- à la fin de chaque copie effacer les données de ce fichiet texte. A la fin de la sauvegarde : tuer carrément le fichier texte.
2) au lancement de l'appli :
-si le fichier texte n'existe pas : c'est bon et on continue alors
- si le fichier existe : on a alors un doute (sauvegarde en cours ou interrompue par plantage ?) ===>> ce doute est vite levé par simple comparaison rapide entre les données du fichier texte : taille à traiter et heure de départ (par rapport à l'heure actuelle)... on saura ainsi assez vite si plantage pou non !
2) la deuxième ne ralentit pas du tout l'application de sauvegarde elle-même mais conduit à commencer par effacer le support de sauvegarde (par souci de rigueur) :
on ne fait rin durant l'application
- à son lancement, toutefois, on "prend" le temps d'examiner l'évolution du nombre des octets disponibles sur le support de sauvegarde, dans un intervalle de temps "raisonnanble" et :
- si pas d'évolution : c'est bon, on peut continuer
- si évolution : une sauvegarde est en cours ===>> alerte.