╚ possibile che venga messaggio 7391 di errore in SQL Server 2000 quando si esegue una transazione distribuita su finestra di un server collegato dopo aver installato Windows Server 2003 o Windows XP Service Pack 2

Traduzione articoli Traduzione articoli
Identificativo articolo: 839279 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

Quando si esegue una transazione distribuita in un'istanza di SQL Server, viene potrebbe essere visualizzato un messaggio di errore analogo al seguente:

Server: Messaggio 7391, livello 16, stato 1, riga 1
Impossibile eseguire l'operazione perchÚ il provider OLE DB 'SQLOLEDB' non Ŕ riuscito a iniziare una transazione distribuita. [Provider OLE DB ha restituito il messaggio: Impossibile integrare nuova transazione di coordinatore di transazione specificato.] Traccia di errore OLE DB [OLE DB provider 'SQLOLEDB' ITransactionJoin::JoinTransaction restituito 0x8004d00a].


Questo problema pu˛ verificarsi quando una delle seguenti condizioni Ŕ true:
  • Microsoft Windows Server 2003 o Microsoft Windows XP Service Pack 2 (SP2) Ŕ installato nel computer che avvia la transazione distribuita.
  • Microsoft Windows Server 2003 o Microsoft Windows XP SP2 viene installato sul computer remoto che esegue Microsoft SQL Server 2000, e tale computer Ŕ collegato il computer che avvia la transazione distribuita.

Cause

Questo problema si verifica a causa di uno o pi¨ dei seguenti motivi:
  • Microsoft Distributed Transaction Coordinator (MSDTC) disattivato per le transazioni di rete.
  • Windows Firewall Ŕ attivato nel computer. Per impostazione predefinita, Windows Firewall blocca il servizio Microsoft Distributed Transaction Coordinator (MSDTC) programma.

    Nota Questo problema pu˛ verificarsi anche quando Windows Firewall Ŕ disattivato.

Workaround

importante Questa sezione, metodo o l'attivitÓ sono contenute procedure viene illustrato come modificare il Registro di sistema. Tuttavia, possono causare seri problemi se si modifica il Registro di sistema in modo errato. Pertanto, assicurarsi che questa procedura con attenzione. Per maggiore protezione, Ŕ eseguire il backup del Registro di sistema prima di modificarlo. ╚ quindi possibile ripristinare il Registro di sistema se si verifica un problema. Per ulteriori informazioni su come eseguire il backup e ripristino del Registro di sistema, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
322756Come eseguire il backup e il ripristino del Registro di sistema in Windows


Per risolvere questo problema, attenersi alla seguente procedura sul computer che Windows Server 2003 o Windows XP SP2 Ŕ installato in:
  1. Assicurarsi che l'account di Connessione per il servizio MSDTC sia l'account Servizio di rete . Per effettuare questa operazione, attenersi alla seguente procedura:
    1. Fare clic su Start e quindi fare clic su Esegui .
    2. Nella finestra di dialogo Esegui digitare Services.msc e quindi fare clic su OK .
    3. Nella finestra servizi individuare il servizio di Distributed Transaction Coordinator in nome nel riquadro di destra.
    4. Nella colonna registro per verificare se l'account di Connessione Ŕ Servizio di rete o Sistema locale .

      Se l'account di Connessione Ŕ Servizio di rete , andare al passaggio 2. Se l'account di Connessione Ŕ l'account LocalSystem , continuare con questa procedura.
    5. Fare clic su Start e quindi fare clic su Esegui .
    6. Nella finestra di dialogo Esegui digitare cmd e quindi fare clic su OK .
    7. Al prompt di comando, digitare net stop msdtc per interrompere il servizio MSDTC.
    8. Al prompt di comando, digitare ?uninstall MSDTC per rimuovere MSDTC.
    9. Al prompt di comando, digitare regedit per aprire l'editor del Registro di sistema.
    10. In Editor del Registro di sistema individuare la seguente chiave:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
      chiave del Registro di sistema.

      Eliminarla.
    11. Chiudere l'editor del Registro di sistema.
    12. Al prompt di comando, digitare ? Install MSDTC per installare MSDTC.
    13. Al prompt di comando, digitare net start msdtc il avviare il servizio MSDTC.

      Si noti che l'account di Connessione per il servizio MSDTC Ŕ impostato al Servizio di rete account.
  2. Abilitare MSDTC consentire le transazioni di rete. Per effettuare questa operazione, attenersi alla seguente procedura:
    1. Fare clic su Start e quindi fare clic su Esegui .
    2. Nella finestra di dialogo Esegui digitare dcomcnfg.exe e quindi fare clic su OK .
    3. Nella finestra Servizi componenti espandere Servizi componenti espandere computer e quindi espandere Risorse del computer .
    4. Fare clic con il pulsante destro del mouse su Risorse del computer e quindi fare clic su ProprietÓ .
    5. Nella finestra di dialogo ProprietÓ del computer , fare clic su Configurazione protezione nella scheda MSDTC .
    6. Nella finestra di dialogo Configurazione protezione fare clic per selezionare la casella di controllo Accesso di rete DTC .
    7. Per consentire le transazioni distribuite eseguire in questo computer da un computer remoto, fare clic per selezionare la casella di controllo Consenti in ingresso .
    8. Per consentire l'esecuzione in un computer remoto dal computer in uso di transazioni distribuita, casella di controllo fare clic per selezionare il Consenti uscita .
    9. Nel gruppo Comunicazione gestore transazioni , fare clic su per selezionare l'opzione Nessuna autenticazione richiesta . Impostare Nessuna autenticazione richiesta sia per il client sia per i sistemi remoti.
    10. Nella finestra di dialogo Configurazione della protezione , fare clic su OK .
    11. Nella finestra di dialogo ProprietÓ del computer , fare clic su OK .
  3. Configurare Windows Firewall per includere il programma MSDTC e per includere la porta 135 come eccezioni. Per effettuare questa operazione, attenersi alla seguente procedura:
    1. Fare clic su Start e quindi fare clic su Esegui .
    2. Nella finestra di dialogo Esegui digitare firewall.cpl e scegliere OK
    3. Nel Pannello di controllo fare doppio clic su Windows Firewall .
    4. Nella finestra di dialogo Windows Firewall , fare clic su Aggiungi programma nella scheda eccezioni .
    5. Nella finestra di dialogo Aggiungi programma , fare clic sul pulsante Sfoglia e quindi individuare il file MSDTC.exe. Per impostazione predefinita, il file Ŕ archiviato nel < unitÓ di Installazione >: \Windows\System32 cartella.
    6. Nella finestra di dialogo Aggiungi programma , fare clic su OK .
    7. Nella finestra di dialogo Windows Firewall , fare clic per selezionare l'opzione di msdtc nell'elenco programmi e servizi .
    8. Fare clic su Aggiungi porta nella scheda eccezioni .
    9. Nella finestra di dialogo Aggiungi porta digitare 135 nella casella di testo numero di porta e quindi per selezionare l'opzione TCP .
    10. Nella finestra di dialogo Aggiungi porta digitare un nome per l'eccezione nella casella di testo Nome e quindi fare clic su OK .
    11. Nella finestra di dialogo Windows Firewall , selezionare il nome utilizzato per l'eccezione nel passaggio j nell'elenco programmi e servizi e quindi fare clic su OK .
  4. Verificare che il ping dal server host al server remoto e dal server remoto al server host, utilizzando il nome netbios (nome server, senza il dominio). Microsoft Distributed Transaction Coordinator utilizza il nome di netbios, non il nome di dominio completo per individuare i server. Se la risoluzione dei nomi non riesce, Ŕ possibile che le transazioni distribuite riuscirÓ. Se ping utilizzando il nome netbios ha esito negativo, consultare l'articolo della knowledge base:
    172218Ordine di risoluzione nome host TCP/IP Microsoft

Status

Microsoft ha confermato che questo problema riguarda i prodotti sono elencati nella sezione "Si applica a".

Informazioni

Procedura per riprodurre il problema.

  1. Accedere a un computer dotato di Windows Server 2003 o Windows XP SP2.
  2. Inizio Query Analyzer.
  3. Aggiungere un computer remoto che esegue Microsoft SQL Server 2000 come un server collegato. A tale scopo, eseguire la seguente istruzione Transact-SQL in Query Analyzer:
    EXEC sp_addlinkedserver  '<remote_server>',  N'SQL SERVER'
    GO

    Nota Sostituire remote_server con il nome del computer che deve essere configurato come server collegato.
  4. Eseguire una transazione distribuita tra il computer e il computer remoto. A tale scopo, eseguire la seguente istruzione Transact-SQL in Query Analyzer:
    SET xact_abort ON 
    GO
    USE  pubs
    GO
    BEGIN DISTRIBUTED TRANSACTION
    SELECT  *  FROM <remote_server>.pubs.dbo.authors
    COMMIT TRAN
    GO
    
    Si potrebbe essere visualizzato il messaggio di errore menzionato nella sezione "Sintomi".

Riferimenti

Per ulteriori informazioni sulla configurazione di Windows XP Service Pack 2 per l'utilizzo con SQL Server 2000, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
841249Come configurare Windows XP Service Pack 2 per l'utilizzo con SQL Server

ProprietÓ

Identificativo articolo: 839279 - Ultima modifica: martedý 25 agosto 2009 - Revisione: 4.0
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft Windows XP Embedded
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
Chiavi:á
kbmt kbregistry kberrmsg kbdtc kbdomain kbauthentication kbtransaction kbrpc kbprb KB839279 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 839279
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com