IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

systeme de watchdog


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 64
    Par défaut systeme de watchdog
    bjr,
    J'ai une problématique pourtant simple mais je voudrais être sûr de moi.

    Imaginez 1 application C# winform et 1 application ACCESS (MDE) qui sont exécutée sur le même poste.
    Les 2 applications possèdent une fonction de scrutation qui ne doivent jamais être lancée en même temps.
    Je veux que si l'une des 2 applications a sa fonction de scrutation de lancée, alors on ne peut pas la mettre en route sur la seconde.

    Attention, je veux aussi qu'en cas de plantage d'une application, ça ne me bloque l'autre indéfiniment.

    J'avais pensé à un système de Watchdog en BDD où je viens mettre à jour un flag toutes les minutes.
    Si le flag est invalidé ou a plus d'une minute, alors je considère que je peux lancer ma scrutation sur la seconde application.

    Avez vous d'autres idées?
    Merci.

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    ca peut fonctionner si c'est transactionnel, sinon voir sémaphore ou mutex
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    le sémaphore ou le mutex me semble parfait

    En plus, tu peux toujours vérifier que toutes les "10 secondes", le semaphore est augmenté d'1 histoire de vérifier que l'application qui scrute fonctionne toujours

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 64
    Par défaut
    Je ne me souvenais plus de ces 2 là.
    Merci. Je vais creuser au niveau du sémaphore et du mutex.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 64
    Par défaut
    Je viens de me rafraîchir la mémoire concernant le sémaphore ou le mutex. Ça ne marchera pas dans mon cas car les 2 applications sont indépendantes et possède chacune leur moteur de scrutation. il n'est pas commun dans un thread séparé.
    L'un est en c# (filewatcher) et l'autre en VBA (ACCESS) avec un timer.
    Il n'y a pas de Thread dans mon cas.

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par cyril6910 Voir le message
    Je viens de me rafraîchir la mémoire concernant le sémaphore ou le mutex. Ça ne marchera pas dans mon cas car les 2 applications sont indépendantes et possède chacune leur moteur de scrutation. il n'est pas commun dans un thread séparé.
    L'un est en c# (filewatcher) et l'autre en VBA (ACCESS) avec un timer.
    Il n'y a pas de Thread dans mon cas.
    Avec VBA de toute manière tes capacités d'interaction avec le monde extérieur sont très limitées.

    Il y a bien sur des solutions mais a prori aucune n'est simple et elles vont clairement relever d'un concept "vapocraqueur".

    En quoi consiste cette "fonction de scrutation" ? elle scrute quoi ?

  7. #7
    Membre émérite Avatar de NicoL__
    Homme Profil pro
    Architecte
    Inscrit en
    Janvier 2011
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Janvier 2011
    Messages : 399
    Par défaut
    Une technique fort utilisée pour ton cas est d'utiliser un fichier pour réaliser un semaphore, un fichier vide fera l'affaire. Quand une des appli veut scruter elle doit au préalable ouvrir le fichier en écriture, et une fois la scrutation fini elle ferme le fichier. Si le fichier est déjà ouvert alors tu aura une exception que tu catch et tu sais qu'une scrutation est en cours.
    Entre X appli le plus simple pour faire un lock c'est d'utiliser un fichier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FileStream fileStream = new FileStream(@"c:\file.txt", FileMode.Open, FileAccess.Write, FileShare.None);

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 64
    Par défaut
    Citation Envoyé par NicoL__ Voir le message
    Une technique fort utilisée pour ton cas est d'utiliser un fichier pour réaliser un semaphore, un fichier vide fera l'affaire. Quand une des appli veut scruter elle doit au préalable ouvrir le fichier en écriture, et une fois la scrutation fini elle ferme le fichier. Si le fichier est déjà ouvert alors tu aura une exception que tu catch et tu sais qu'une scrutation est en cours.
    Entre X appli le plus simple pour faire un lock c'est d'utiliser un fichier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FileStream fileStream = new FileStream(@"c:\file.txt", FileMode.Open, FileAccess.Write, FileShare.None);
    bjr NicoL__,
    Ta solution m'a interpellé et elle est d'une telle simplicité que je pense l'adopter. L'avantage sera une mise en prod très rapide sans difficulté et sans tout casser. L'inconvénient: ça fait un peu bricolage quand même.


    Merci.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 64
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Avec VBA de toute manière tes capacités d'interaction avec le monde extérieur sont très limitées.

    Il y a bien sur des solutions mais a prori aucune n'est simple et elles vont clairement relever d'un concept "vapocraqueur".

    En quoi consiste cette "fonction de scrutation" ? elle scrute quoi ?
    Bjr BlueDeep,
    Pour rentrer un peu dans le détail, nous avons une application ACCESS qui scrute un répertoire toutes les 2 secondes. Dès qu'un fichier y est déposé, il est traité par l'application et déplacé.
    Nous venons de redevelopper un moteur .net qui fait la même chose (avec un filewatcher).
    Sauf que nous sommes obligé de mettre à disposition les 2 applications car la supervision se fait encore dans ACCESS et rien n’empêche de lancer la scrutation depuis ACCESS si celle en .net est arrêtée.
    d'où ma question qui doit rendre exclusif le démarrage de la scrutation.

Discussions similaires

  1. [VB6] [Système] Récupérer le contenu d'une fenêtre DOS
    Par Nounours666 dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 18/11/2004, 16h38
  2. [Kylix] libc.system
    Par sdoura2 dans le forum EDI
    Réponses: 1
    Dernier message: 19/10/2002, 13h48
  3. [VB6] [Système] Barre des taches
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 08/10/2002, 15h16
  4. [VB6] [Système] Icones du systray qui veulent pas partir
    Par Ctof dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 07/10/2002, 09h41
  5. [TP7]systeme d'exploitation
    Par numeror dans le forum Turbo Pascal
    Réponses: 10
    Dernier message: 15/08/2002, 08h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo