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 :

Gestionnaire de transaction et prise en charge de transactions à distance/réseau


Sujet :

Développement SQL Server

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mars 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Gestionnaire de transaction et prise en charge de transactions à distance/réseau
    bonjour,

    J'ai lu pas mal de réponses ici mais pour le moment, mon problème persiste.

    Dans un environnement Sql Server 2012, j'ai une base de données dans laquelle je lance une procédure stockée. Cette proc met à jour une base distante (2008) sans transaction via un serveur lié.

    A partir du moment que j'ajoute une gestion de transaction, j'ai l'erreur suivante :

    Le fournisseur OLE DB "SQLNCLI11" du serveur lié "xxxx" a retourné le message "Le gestionnaire de transactions a désactivé sa prise en charge de transactions à distance/réseau.".
    L'opération n'a pas pu être effectuée, car le fournisseur OLE DB "SQLNCLI11" du serveur lié "xxx" n'a pas réussi à démarrer une transaction distribuée.


    J'ai activé les options RPC sur le serveur lié, j'ai activé le DTC du serveur distant. Cela ne change pas grand chose...
    K.G21

  2. #2
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Hello,

    Que fais-tu dans ta procédure stockée? Tu peux nous montrer le code ?

    Un début quand même ... pour qu'une transaction distribuée fonctionne correctement il faut répondre aux prérequis suivants:

    - DTC actif et configuré sur les 2 serveurs concernés (local et distant)
    - Utilisation de XABORT
    - Option "Ad Hoc Distributed Queries" activé au niveau du serveur


    ++

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Mars 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci,
    voici un bout de code la procédure stockée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    BEGIN TRY
    	BEGIN TRAN
     
    		IF (@pId > 0) 
    		BEGIN
     
    			SET @sql = 'UPDATE [SERVER].BASE.dbo.TABLE '
    			SET @sql += 'SET YTS_PRIXNET = '+CAST(@pPrix AS VARCHAR)+', '
    			SET @sql += 'YTS_PRIXBRUT = '+CAST(@pPrix AS VARCHAR)+' '
    			SET @sql += 'WHERE YTS_IDENTIFIANT = '+CAST(@pId AS VARCHAR)+'; '
     
    			SET @sql += 'SELECT @nbOUT = @@ROWCOUNT'
     
    			SET @param = '@nbOUT int OUTPUT'
    			EXEC sp_executesql @sql, @param, @nbOUT = @nbLigne OUTPUT
     
    			IF (@nbLigne <> 1)
    			BEGIN
    				RAISERROR (@sql,11,1)
    			END
    		END
     
    	COMMIT TRAN
    	END TRY
     
    	BEGIN CATCH
    		ROLLBACK TRAN
    	END CATCH

    Je vais creuser tes deux derniers points sur XABORT et l'option 'Ad Hoc Distributed Queries"
    K.G21

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    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 768
    Points : 52 577
    Points
    52 577
    Billets dans le blog
    5
    Par défaut
    Mettre BEGIN DISTRIBUTED TRANSACTION et non pas un simple BEGIN TRANSACTION

    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. Erreur 3251 : mise à jour non prise en charge
    Par gletare dans le forum Access
    Réponses: 2
    Dernier message: 10/02/2006, 10h17
  2. [VB.Net] Prise en charge de <summary> sous VS2003
    Par tomnie dans le forum Windows Forms
    Réponses: 4
    Dernier message: 16/12/2005, 12h01
  3. Réponses: 2
    Dernier message: 12/05/2005, 10h10
  4. Prise en charge multilingue sur le portal
    Par nic211 dans le forum Oracle
    Réponses: 4
    Dernier message: 07/07/2004, 14h43
  5. [SQL Serveur] prise en charge de l'arabe
    Par lamiae18 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/03/2004, 12h33

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