Riepilogo

In questo articolo è che una Guida di base per la risoluzione dei 7391 di errore del server collegato. L'articolo contiene linee guida e istruzioni per determinare la causa e per correggere l'errore. Tuttavia, non si tratta di un elenco completo, e alcuni problemi possono essere specifici per l'ambiente.

Ulteriori informazioni

Potrebbe essere visualizzato l'errore 7391 durante l'utilizzo di server collegati.

In Microsoft SQL Server 2005, viene visualizzato il seguente messaggio di errore:


Server: Msg 7391, livello 16, stato 1, riga 1
L'operazione non eseguita perché il provider OLE DB "%ls" per il server collegato "%ls" non è riuscito ad avviare una transazione distribuita.


In SQL Server 2000, viene visualizzato il messaggio di errore è:


Server: Msg 7391, livello 16, stato 1, < NomeOggetto >, Line xx
L'operazione non eseguita perché il provider OLE DB '%ls' non è riuscito a
avviare una transazione distribuita.


In SQL Server 7.0, viene visualizzato il messaggio di errore è:


Server: Msg 7391, livello 16, stato 1, riga 1, l'operazione non eseguita perché
il provider OLE DB '%ls' non supporta le transazioni distribuite. [OLE DB provider
messaggio restituito: errore di transazione distribuita]


In alcuni casi, è inoltre che venga visualizzato il seguente errore 8522:

Transazione distribuita è stata interrotta da MSDTC.



Tutti i numeri di errore che sono compresi nell'intervallo di 7300 a 7399 indicano un problema con il provider. Per impostazione predefinita, poiché ogni provider può hanno funzionalità diverse e restituire dettagli diversi, non viene visualizzato il messaggio di errore completo. Per recuperare il messaggio di errore completo dal provider, emettere questo comando prima di eseguire la query che genera l'errore:

DBCC TRACEON (3604, 7300)


Se si riceve l'errore 7391 da un processo come la replica o Data Transformation Services (DTS), riceverai anche il messaggio di errore quando il codice contiene un'istruzione BEGIN TRAN distribuiti.

Assicurarsi che il test del codice con l'istruzione BEGIN TRAN distribuiti in Query Analyzer.
Avviare l'analizzatore Query ed eseguire questa istruzione connettendosi al server con lo stesso account come di SQL Server e l'account di avvio di agente SQL Server. In questo modo per limitare la ricerca di risoluzione dei problemi.

Risoluzioni comuni

Di seguito è riportato un elenco delle risoluzioni più comuni di errore 7391.


Nota: È consigliabile limitare il codice in una transazione che coinvolge una query distribuita solo al server remoto. Nella maggior parte dei casi, si possono separare passaggi eseguiti localmente da remoti passi per raggiungere questo obiettivo.

Nota: Se si utilizza SQL Server 2005, utilizzare SQL Server Management Studio anziché Query Analyzer ed Enterprise Manager per eseguire l'operazione di cui al presente articolo. Si noti che alcune interfacce utente in SQL Server Management Studio potrebbero essere diversi dalle interfacce utente in Query Analyzer o in Enterprise Manager. Vedere l'argomento correlato nella documentazione in linea di SQL Server 2005 e apportare la modifica corrispondente all'operazione.

Problemi di supportabilità

  • Contatti il fornitore del driver è utilizzare nella query di server collegato per vedere se il driver supporta transazioni distribuite.

  • Controllare se l'oggetto nel server di destinazione fa riferimento al primo server. Questo è ciò che viene definito una situazione di loopback. Questo non è supportato, come documentato nella documentazione in linea di SQL Server. Per ulteriori informazioni, visitare il seguente sito Web Microsoft:

    Server collegati loopback


Problemi di comunicazione

  • Verificare che la risoluzione dei nomi di rete funzioni. Verificare che i server possano comunicare tra loro in base al nome, non solo dall'indirizzo IP. Controllare in entrambe le direzioni (ad esempio, da server a server B e da server a server B). È necessario risolvere tutti i problemi di risoluzione nome sulla rete prima di eseguire le query distribuite. Questa operazione potrebbe comportare l'aggiornamento di WINS, DNS o LMHost file. Per ulteriori informazioni, vedere il seguente articolo della Microsoft Knowledge Base:

    169790 sulla risoluzione dei problemi di base TCP/IP

  • Se si dispone di un firewall, assicurarsi che le porte RPC Remote Procedure Call () vengano aperti correttamente.

    Per ulteriori informazioni, fare clic sui numeri seguenti per visualizzare gli articoli della Microsoft Knowledge Base:

    154596 HOWTO: configurare l'allocazione dinamica delle porte RPC per l'utilizzo con Firewall

    179442 come configurare un Firewall per domini e trust

    287932 INF: porte TCP per la comunicazione con SQL Server tramite Firewall

  • Controllare l'oggetto a cui che si fa riferimento nel server di destinazione. Se è una vista o una stored procedure o comporta un'esecuzione di un trigger, verificare se fa riferimento in modo implicito un altro server. In tal caso, il terzo server è l'origine del problema. Eseguire la query direttamente sul server di terzi. Se non è possibile eseguire la query direttamente sul terzo server, il problema è effettivamente con la query di server collegato. Prima di risolvere il problema sottostante.

  • Controllare se si utilizza il Server di accesso remoto (RAS, Remote Access Service) per accedere a server remoti. In tal caso, assicurarsi che siano state implementate Routing servizio di accesso remoto (RRAS). Server collegato non funziona su RAS perché RAS consente solo la comunicazione unidirezionale.


Problemi di configurazione

  • Avviare Distributed Transaction Coordinator (DTC o MSDTC) in tutti i server coinvolti nella transazione distribuita.

  • Istruzione prima di eseguire la query:

    SET XACT_ABORT ON

    Per istruzioni di modifica dei dati in una transazione implicita o esplicita contro la maggior parte dei provider OLE DB, incluso SQL Server, è necessario impostare l'opzione XACT_ABORT su ON. Questa opzione non è obbligatoria se il provider supporta transazioni nidificate.

  • Verificare se uno dei server in un cluster. Il DTC nel cluster deve disporre di un indirizzo IP. È necessario verificare la risoluzione dei nomi corretta del servizio DTC su ciascun server. L'indirizzo IP del DTC deve essere definito nel sistema di risoluzione nome (ad esempio, DNS o WINS LMHosts). Verificare che ogni server può comunicare con altri MSDTC per nome, non solo dall'indirizzo IP. Controllare in entrambe le direzioni. Verificare, ad esempio, da server a server B MSDTC e quindi controllare dal server B fino a MSDTC del server. È necessario risolvere tutti i problemi di risoluzione nome sulla rete prima di eseguire le query distribuite.

  • Se si utilizza invece il server collegato consigliato precedente server remoti, impostare il remote proc trans
    impostazione dell'opzione di configurazione per il server, o un problema di un SET REMOTE_PROC_TRANSACTIONS OFF su OFF
    istruzione prima di eseguire qualsiasi query distribuite. Se questa impostazione è impostata su ON, le chiamate di procedura remota

    vengono effettuate in una transazione locale.

  • Controllare il valore restituito di @@SERVERNAME funzione del sistema su entrambi i server. Verificare se il
    valore restituito corrisponde al nome computer di ciascun server. Se non corrisponde, è necessario
    rinominare il server.

    Per SQL Server 2000, vedere il seguente articolo della Microsoft Knowledge Base:

    BUG 303774 : la ridenominazione di un Server argomento nella documentazione in linea non è completo

    Per SQL Server 7.0, fare riferimento alla domanda 5 nel seguente articolo della Microsoft Knowledge Base:

    195759 INF: domande frequenti - SQL Server 7.0 - installazione SQL

  • Verificare che l'account di avvio di SQL Server disponga delle autorizzazioni controllo completo per questa chiave del Registro di sistema:

    HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer

Riferimenti

Per ulteriori informazioni sulla configurazione di server collegati, visitare il seguente sito Web Microsoft:

Configurazione di server collegati

Per ulteriori informazioni, fare clic sui numeri seguenti per visualizzare gli articoli della Microsoft Knowledge Base:

295086 FIX: MS DTC limitata a 16 nodi in una singola transazione distribuita

175496 XCON: utilizzo RPCPING per risolvere i problemi relativi a connessioni MTA

280106 procedura: impostare e risolvere i problemi relativi a un Server collegato a Oracle in SQL Server

Serve aiuto?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Quanto ti soddisfa la qualità della traduzione?
Cosa ha influito sulla tua esperienza?

Grazie per il feedback!

×