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

Développement SQL Server Discussion :

Transaction & Webservices


Sujet :

Développement SQL Server

  1. #1
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Points : 751
    Points
    751
    Par défaut Transaction & Webservices
    Bonjour,

    Lors d'un traitement je dois mettre à jour des données sur plusieurs tables SQL, je fais ce traitement dans une transaction et si une une des requêtes "plante" cela fait un rollback et tout va bien.
    Maintenant je dois faire la même chose mais en remplaçant les différentes requêtes par des appels à des Webservices différents (qui font les requêtes sur mon serveur MSSQL), est-ce qu'il est possible d'avoir le même principe de transaction pour, si un appel plante avoir un rollback ?
    J'ai regardé du cotés des transactions distribuées mais ça n'a pas l'air de répondre à mon problème.
    Aucune aide par MP, utilisez le forum.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 759
    Points : 52 540
    Points
    52 540
    Billets dans le blog
    5
    Par défaut
    Il suffit de démarrer une transaction explicite avant de lancer les web services les uns après les autres et effectuer un COMMIT si aucune erreur n'est retournées sinon un rollback.

    Cependant cette façon des procéder est une imbécilité. En effet, votre traitement va être notablement allongée des round-trips entre les différentes services, ce qui va allonger la durée des blocages nécessaire au maintient de la transaction, donc induire des blocages plus longs, donc de la contention, des verrous mortels, etc...
    C'est donc du masochisme que de transformer une procédure stockée qui est rapide et ne fait qu'un seul aller-retour en de multiples accès au SGBDR !

    C'est comme cela que l'on pourrit les applications et qu'ensuite on fait faire de couteux audits pour rectifier le tir. Ou bien pire, votre supérieur désire prouver que SQL Server c'est de la merde et qu'il faut passer à MySQmerde ou PostGreSQL en pourrissant sciemment le code (déjà vu !)

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. webservice soap dans une transaction EJB
    Par alamako dans le forum Services Web
    Réponses: 2
    Dernier message: 17/02/2016, 15h35
  2. transaction et WebService
    Par ziglou dans le forum Services Web
    Réponses: 1
    Dernier message: 15/06/2011, 13h09
  3. WCF, WebServices Java et transactions XA
    Par Loicb dans le forum Windows Communication Foundation
    Réponses: 0
    Dernier message: 25/11/2009, 14h48
  4. Appel à une transaction dans un webservice
    Par safisafi dans le forum Services Web
    Réponses: 5
    Dernier message: 05/06/2009, 23h25

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