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

Langages de programmation Discussion :

commit ou abbort d'une operation a la reception d'un message


Sujet :

Langages de programmation

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 21
    Points : 17
    Points
    17
    Par défaut commit ou abbort d'une operation a la reception d'un message
    Bonjour,

    Dans ce qui suit, je parle du problème sans spécification particulière de SGBD ou autre, je parle du concept en générale.

    Supposons que j'ai une application qui s'exécute sur une machine A et qui fais une transaction locale sur cette dernière sans pour autant valider la transaction (commit). Je voudrais savoir est ce que c'est possible de faire en sorte que l'application se trouvant sur la machine A valide (commit) ou annule (abort) la transaction selon le message qu'elle reçois à partir d'une autre machine B (selon le message "VOTE-OUI" ou "VOTE-NON", respectivement).

    Comment faire ça en générale ? Un exemple serait le bien venu (en utilisant n'importe quel langage ou SGBD).

    Merci bien.

  2. #2
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 119
    Points : 98
    Points
    98
    Par défaut
    Salut,
    je ne comprend pas pourquoi la machine A doit :

    • creer une transaction
    • attendre un message de B
    • valider ou annuler la transaction


    Tu ne peux pas executer une query X ou Y en fonction d'un parametre recu ?

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par mat777 Voir le message
    Salut,
    je ne comprend pas pourquoi la machine A doit :

    • creer une transaction
    • attendre un message de B
    • valider ou annuler la transaction


    Tu ne peux pas executer une query X ou Y en fonction d'un parametre recu ?
    Salut mat,

    Je crois que je ne me suis pas bien exprimé. Je parle ici d'une transaction distribuées. Voici un exemple du problème pour mieux comprendre ce que je veux faire:
    Supposant que j'ai une machine client (C) et trois machines serveurs (S1, S2 et S3) connectées en réseau.

    C lance un programme qu'on appellera Prg (un agent mobile par exemple) qui va se déplacer vers S1 et effectue une action A1, puis il se déplace vers S2 et effectue une action A2, et enfin il se déplace vers S3 et effectue une action A3, puis reviens a C.

    Supposant que ces actions sont dépendant entre eux et donc que le client a besoin que toute les actions (A1 et 12 et A3) soit réalisés, ou aucune. Par exemple, si les actions A1, A2 et A3 représentent l'achat de 3 ingrédients 1, 2 et 3 pour faire un plat de cuisine, on n'aimerai pas qu'un ou plusieurs ingrédients ne soient pas achetés (exemple parce qu'il sont indisponible).

    Ce que je veux faire maintenant est que par exemple dans le cas où le Prg passe par S1 et effectue son action A1 (achat d'ingrédient 1), puis quand il passe à S2 il n'arrive pas effectuer A2 vu qu'il n y a plu d'ingrédient 2 disponible ici. Alors dans ce cas il envoi un message "abort" au serveurs précédents qu'il a déjà parcouru (ici S1) pour abort l'action A1. Puis il retourne vers C et l'informe que c'est échoué.

    Dans le cas où le Prg effectue A1, puis passe à S2 et effectue A2, puis passe à S3 et effectue A3, puis retourne vers C, ici il envoi un message "commit" à S1 et à S2 et à S3 pour leurs demander de commiter les actions A1, A2 et A3. Et dans ce cas la transactions distribuée constitué de A1+A2+A3 est effectué avec succès.

    Bon ce n'est qu'un exemple simple pour illustrer ce que je veux faire.

    La question est:
    Est-ce que vous voyez que pour une action A qui dois être effectué sur un serveur x c'est mieux de faire en sorte que:
    - L'action A ne soit pas effectué dutout, mais plutôt sauvegarder en attendant de recevoir un message plus tard qui dira si l'action dois être effectué ou pas.
    - Ou bien effectuer l'action, puis selon le message reçu plus tard, on la commit ou abort.

    Voilà.

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/09/2007, 14h26
  2. Réponses: 3
    Dernier message: 17/07/2007, 22h53
  3. curseur retournant une operation
    Par freestyler1982 dans le forum Oracle
    Réponses: 2
    Dernier message: 07/11/2006, 17h39
  4. automatisation d'une operation sur un champ (pgAgent)
    Par zakaria_jd dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 28/04/2006, 10h55
  5. [C#] Comment calculer une opération à la volée ?
    Par david71 dans le forum Windows Mobile
    Réponses: 4
    Dernier message: 25/04/2006, 13h34

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