Les serveurs liés SQLNCLI problème. “Aucune transaction est active”
Im essayant d'exécuter une procédure stockée et il suffit d'insérer les résultats dans une table temporaire, et je reçois le message suivant:
L'opération n'a pas pu être effectuée parce que le fournisseur OLE DB "SQLNCLI"
pour le serveur lié "MyServerName" a pas pu commencer une distribuées
des transactions. Fournisseur OLE DB "SQLNCLI" du serveur lié
"MyServerName" a retourné le message "Aucune transaction est active.".
Ma requête ressemble à ceci:
INSERT INTO #TABLE
EXEC MyServerName.MyDatabase.dbo.MyStoredProcedure Param1, Param2, Param3
Exact numéro de colonne, les noms, le problème n'est pas le résultat.
MSDTC est autorisé et a commencé dans les deux ordinateurs, à Distance de la procédure d'appel.
Les machines ne sont pas dans le même domaine, mais je peux exécuter des requêtes à distance à partir de ma machine et obtenir le résultat. Je peut même exécuter la procédure stockée et de ses résultats, je ne peux pas l'insérer dans une autre table.
MODIFIER
Oh j'ai oublié de mentionner, la procédure stockée n'est pas le feu à la détente. Il n'insère des enregistrements dans des tables temporaires qui il crée lui-même pour le traitement de données.
OriginalL'auteur Smur | 2010-05-28
Vous devez vous connecter pour publier un commentaire.
Bien, après beaucoup de tutoriels et de la recherche de beaucoup sur le sujet, j'avais changé la configuration que j'ai pensé était nécessaire pour qu'il fonctionne, mais il n'a toujours pas.
Aujourd'hui nous avons eu à forcer un pouvoir redémarrer sur notre serveur de développement en raison d'un défaut no-break, et lorsque nous avons démarré le serveur, devinez quoi? Il fonctionne!
Donc, juste pour le dossier, j'ai changé certains aspects spécifiques de la configuration de MSDTC, de l'ajouter en tant que serveur lié et a permis de RPC DANS et HORS, et a changé la configuration RPC pour 'AUCUNE AUTHENTIFICATION REQUISE" ou quelque chose comme ça.
Je me souviens avoir lu quelque part qu'après avoir changé cette configuration, un redémarrage est nécessaire, même si Windows dit qu'il a déjà redémarré le service.
J'avais redémarré mon serveur comme... deux fois depuis que j'ai changé, et il ne fonctionne toujours pas. Mais aujourd'hui, après un tour complet et désactiver, ça marche!!!
Comme pour la syntaxe, j'ai gardé le même.
OriginalL'auteur Smur
Vous devez également vérifier la résolution de noms DNS dans le réseau IP de configuration.
Par exemple, vous avez un serveur appelé server-a.mydomain.com et un autre appelé server-b.otherdomain.com, ouvrez une session sur le serveur et faire un "ping serveur-b" (sans le domaine).
Si il répond "Ping demande n'a pas pu trouver l'hôte du serveur-b. Veuillez vérifier le nom et essayez à nouveau." qu'est le problème.
Aller au Panneau de Contrôle > Connexions Réseau > clic Droit sur la carte réseau > propriétés > Protocole Internet > Propriétés > Avancé > DNS > Ajouter ce suffixe DNS dans l'ordre.
Et d'ajouter ici le domaine local: mydomain.com puis ajouter le domaine distant: otherdomain.com
Cliquez sur OK jusqu'à ce que vous quittez
Maintenant, si vous ne le "ping serveur-b", il devrait repond quelque chose comme:
Maintenant, essayez à nouveau d'exécuter la transaction distribuée.
OriginalL'auteur Javier Nogueira
Avez-vous essayé d'utiliser openquery?
affiche originale n'est pas spécifique s'il s'agissait d'une procédure stockée étendue ou la procédure stockée.
OriginalL'auteur thomas