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

VB.NET Discussion :

Lancer une action à un moment précis.


Sujet :

VB.NET

Vue hybride

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

    Informations forums :
    Inscription : Novembre 2010
    Messages : 56
    Par défaut Lancer une action à un moment précis.
    Bonsoir,
    Je programme en VB.net 2010 et je voudrais pouvoir lancer une procédure à un moment très précis.
    Explication : j'ai un automate connecté à un analyseur de gaz qui renseigne toutes les 2 minutes une base de données sous SQLServer 2000. Je veux récupérer en continu le dernier enregistrement de la base de données dès qu'il est disponible. Si j'utilise un Timer dans VB.Net, je crains de ne plus etre synchro au bout d'un moment. Je voudrais savoir s'il est possible de capter avec VB.Net un évènement issu de SQLServer qui m'indiquerai qu'un enregistrement a eu lieu dans une table.
    Merci

    Thierry

  2. #2
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Si tu as peur de ne pas être synchro....

    Fais un timer qui se déclenche toutes les 30 secondes....

  3. #3
    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 mactwist69 Voir le message
    Si tu as peur de ne pas être synchro....

    Fais un timer qui se déclenche toutes les 30 secondes....
    C'est un peu bricolo, non ?

  4. #4
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Je pense pas, Tu peux avoir un service qui scrute une table, voir plusieurs table.

    Si rien a faire, il slepp et puis voila.

    C'est sur c'est moins jolie que SSSB ou autres....

    Mais en même temps, quel que soit la solution, ton service fonctionne en permanence... Alors que se soit un système complexe qui préviens ton appli ou ton appli qui scrute et dort le reste du temps....

    Pour ce cas précis je vois pas l'avantage... (Surtout qu'il doit se mettre à jour toute les 2 min... c'est pas 2 fois par mois) après pour d'autre situation plus complexe ou technique, je suis sur que les autres solutions correspondent plus aux besoins...

  5. #5
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    (ceci à l'avantage de découpler le mécanisme de signalisaton du mécanisme de réception).
    Je vois pas l'avantage ici de découpler.

    Parce qu'on découple la programmation, la maintenance, les erreurs possibles également. Pour un truc pas compliqué à la base.

    Éclaire ma petite lanterne.

  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 mactwist69 Voir le message
    Je vois pas l'avantage ici de découpler.

    Parce qu'on découple la programmation, la maintenance, les erreurs possibles également. Pour un truc pas compliqué à la base.

    Éclaire ma petite lanterne.

    Tout simplement, ne pas avoir à faire d'hypothèses sur la disponibilité du fournisseur vs le consommateur.

    Avec une queue, les event sont ... queued et même basculables au cas où ta base passe sur un mirroir.

    Donc, que ton consommateur soit dispo ou pas, n'a pas d'influence sur l'intégrité de la chaine applicative : quand il devient dispo, il consomme ses entrées de queue dont il est assuré de récupérer la totalité même en temps différé.

    En environnement de production c'est très rassurant.

  7. #7
    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 mactwist69 Voir le message
    Je pense pas, Tu peux avoir un service qui scrute une table, voir plusieurs table.

    Si rien a faire, il slepp et puis voila.

    C'est sur c'est moins jolie que SSSB ou autres....
    Le problème n'est pas l'élégance du système, mais la queue a l'avantage de gérer très simplement la disponibilité du système.

    cf. ma réponse sur le découplage.

    Dès l'nstant où j'ai une chaine applicative qui doit utiliser deux entités logicielle, je dois avoir un mécanisme permettant la reprise si une des deux n'est pas disponible.

  8. #8
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    +1 pour le système de queue, pour la non perte de données et la disponibilité du système,voir aussi pour un système multiclient ou multi-source... Merci pour la théorie.

    Qu'est ce qu'une SSSB Queue ? j'ai beau chercher sur le net, je trouve pas.

    Si c'est un élément de l'application cliente, ok, alors il pourrait y avoir un évènement lorsqu'il se remplis, mais si c'est externe... On tourne en rond, car il faudra scruté la queue toutes les x temps....

    Excuse moi si je parait insistant, mais c'est vraiment une envie de progresser de ma part.

  9. #9
    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 thibab Voir le message
    Bonsoir,
    Je programme en VB.net 2010 et je voudrais pouvoir lancer une procédure à un moment très précis.
    Explication : j'ai un automate connecté à un analyseur de gaz qui renseigne toutes les 2 minutes une base de données sous SQLServer 2000. Je veux récupérer en continu le dernier enregistrement de la base de données dès qu'il est disponible. Si j'utilise un Timer dans VB.Net, je crains de ne plus etre synchro au bout d'un moment. Je voudrais savoir s'il est possible de capter avec VB.Net un évènement issu de SQLServer qui m'indiquerai qu'un enregistrement a eu lieu dans une table.
    Merci

    Thierry
    Tu as plusieurs méthodes pour faire cela (enfin, au moins deux) :

    En se basant unqiuement sur la base :

    - Utiliser un trigger SQLCLR sur ta table qui appelle un webservice qui recevra les notifications d'arrivéede données. Je ne te conseille pas cette méthode car :
    - en cas de plante non maitrisée du trigger, tu perdras la transaction d'écriture.
    - on doit exécuter le trigger SQLCLR en mode "external access" ce qui peut faire criser certains DBA.
    - il faut avoir en plus un système de notification découplé webservice -> client.

    Bref beaucoup de complications pour pas grand chose.

    Une autre solution bien plus robuste et simple :

    - Utiliser un trigger SQL sur la table qui enverra un message dans une SSSB Queue que tu consomme au niveau de ton appli client (ceci à l'avantage de découpler le mécanisme de signalisaton du mécanisme de réception).

    Hors base, le plus simple est peut être une troisième solution :

    - Implémenter au niveau de ton automate de réception un mécanisme notifiant ton client de l'arrivée de nouvelles données.

    Pour ma part, je choisirais sans hésiter l'utilisation de la Queue SSSB. (simple et rapide à programmer, robuste, et découplé).

Discussions similaires

  1. Executer une action à un moment très précis.
    Par thibab dans le forum VB.NET
    Réponses: 6
    Dernier message: 04/01/2011, 22h26
  2. Lancer une action depuis une autre action
    Par anaon dans le forum Struts 1
    Réponses: 6
    Dernier message: 04/08/2006, 19h38
  3. Marquer une pause avant de lancer une action
    Par PrinceMaster77 dans le forum ASP
    Réponses: 1
    Dernier message: 12/07/2006, 11h50
  4. Lancer une action JS depuis un bouton de formulaire
    Par davinout dans le forum Langage
    Réponses: 3
    Dernier message: 14/06/2006, 08h50
  5. Execution d'une fonction à un moment précis
    Par Psykotik dans le forum MFC
    Réponses: 2
    Dernier message: 05/01/2006, 11h58

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