Condividi tramite


Risoluzione dei problemi di MSDTC

Per la maggior parte delle operazioni di runtime di BizTalk Server è necessario il supporto di Microsoft Distributed Transaction Coordinator (MSDTC) per garantire la coerenza delle operazioni dal punto di vista delle transazioni. Se il supporto delle transazioni MSDTC non è disponibile, non sarà possibile eseguire le relative operazioni di runtime di BizTalk Server. I componenti di BizTalk che risultano maggiormente influenzati quando il supporto delle transazioni MSDTC non è configurato correttamente includono (ma non si limitano a) il servizio Single Sign-On, le istanze host BizTalk e qualsiasi istanza di SQL Server connessa mediante BizTalk Server. Questa sezione fornisce informazioni che descrivono gli errori relativi a Microsoft Distributed Transaction Coordinator (MSDTC) e illustra le procedure che è possibile seguire per diagnosticare e risolvere i problemi relativi a MSDTC.

Errori che possono verificarsi se il supporto delle transazioni MSDTC non è configurato correttamente

Quando il supporto delle transazioni MSDTC non è configurato correttamente nei computer di un ambiente BizTalk, in BizTalk Server possono verificarsi errori simili a quelli descritti di seguito.

  • "Un problema in Microsoft Distributed Transaction Coordinator ha impedito la connessione al database di configurazione. Il gestore delle transazioni ha disabilitato il proprio supporto per transazioni remote/di rete".

  • "Un problema in Microsoft Distributed Transaction Coordinator ha impedito la connessione al database di configurazione. Per la transazione è già stato eseguito il commit in modo implicito o esplicito oppure la transazione è già stata interrotta".

  • "Codice errore: 0x8004d00a, Impossibile aggiungere la nuova transazione all'elenco del coordinatore di transazioni specificato".

  • "Impossibile recuperare i dati del tipo di trasporto per l'indirizzo di ricezione 'MySample ReceiveLocation' dall'archivio di configurazione. Errore del server SSO principale 'MyServer'. Server RPC non disponibile".

  • "Codice errore: 0x8004d025, Il gestore delle transazioni partner ha disabilitato il proprio supporto per transazioni remote/di rete".

  • "Codice errore: 0xc0002a24, Impossibile importare una transazione DTC. Verificare che MSDTC sia configurato correttamente per il funzionamento remoto".

  • "0x8004d01c

    [0x1705] Errore durante la creazione dell'elemento di lavoro interno.

    Assicurarsi che SQL Server sia in esecuzione.

    Per risolvere gli errori di configurazione di MSDTC, seguire le procedure seguenti.

Controllare che la risoluzione dei nomi NetBIOS tra BizTalk Server e i server remoti non presenti problemi.

Affinché le transazioni MSDTC tra computer avvengano senza problemi, il computer client deve poter risolvere il nome NetBIOS del computer server nell'indirizzo IP corretto e il computer server deve poter risolvere il nome NetBIOS del computer client nell'indirizzo IP corretto. Per verificare che la risoluzione dei nomi NetBIOS funzioni in entrambe le direzioni (dal client al server e viceversa), eseguire le operazioni seguenti:

Nota

Il nome NetBIOS è noto anche come nome di rete .

  1. Determinare il nome NetBIOS di ogni computer:

    1. Fare clic con il pulsante destro del mouse su My Computer per visualizzare la finestra di dialogo Proprietà sistema e fare clic sulla scheda Nome computer per visualizzare il nome computer completo assegnato al computer.

    2. Il nome NetBIOS è la prima parte del nome designato come nome computer completo , ad esempio se il nome completo del computer è elencato come myserver.company.domain.com, il nome NetBIOS del computer è myserver.

  2. Determinare l'indirizzo o gli indirizzi IP associati a ogni computer:

    1. Avviare una finestra del prompt dei comandi nel computer client, digitare il seguente comando, quindi premere INVIO:

      ipconfig /all
      
    2. Nella finestra del prompt verranno elencati l'indirizzo o gli indirizzi IP associati al computer client.

    3. Avviare una finestra del prompt dei comandi nel computer server, digitare il seguente comando, quindi premere INVIO:

      ipconfig /all
      
    4. Nella finestra del prompt verranno elencati l'indirizzo o gli indirizzi IP associati al computer server.

  3. Verificare che il nome NetBIOS di ogni computer venga risolto in uno degli indirizzi IP associati al computer:

    1. Avviare una finestra del prompt dei comandi nel computer client, digitare il seguente comando, quindi premere INVIO:

      ping <NetBIOS name of server computer>
      

      L'esecuzione del comando ping dovrebbe restituire un indirizzo IP associato al computer server.

    2. Avviare una finestra del prompt dei comandi nel computer server, digitare il seguente comando, quindi premere INVIO:

      ping <NetBIOS name of client computer>
      

      L'esecuzione del comando ping dovrebbe restituire un indirizzo IP associato al computer client.

  4. Verificare che la ricerca inversa di nomi dell'indirizzo IP associato al nome NetBIOS in ogni computer venga risolta nel nome computer corretto.

    1. Avviare una finestra del prompt dei comandi nel computer client, digitare il seguente comando, quindi premere INVIO:

      ping -a <IP Address associated with client computer NetBIOS name>
      

      I risultati dei comandi ping devono restituire un nome NetBIOS o un nome di dominio completo che corrisponda al nome NetBIOS usato nel passaggio 3a. Se il nome restituito non corrisponde al nome NetBIOS usato nel passaggio 3a, la ricerca inversa di nomi dell'indirizzo IP non verrà eseguita. È possibile quindi che le transazioni MSDTC non vengano completate.

    2. Avviare una finestra del prompt dei comandi nel computer server, digitare il seguente comando, quindi premere INVIO:

      ping -a <IP Address associated with server computer NetBIOS name>
      

      I risultati dei comandi ping devono restituire un nome NetBIOS o un nome di dominio completo che corrisponda al nome NetBIOS usato nel passaggio 3b. Se il nome restituito non corrisponde al nome NetBIOS usato nel passaggio 3b, la ricerca inversa di nomi dell'indirizzo IP non verrà eseguita. È possibile quindi che le transazioni MSDTC non vengano completate.

    Se la risoluzione del nome NetBIOS ha esito negativo in una delle due direzioni o se la ricerca inversa di nomi non viene eseguita, specificare le voci appropriate nel server DNS, nel server dei nomi NetBIOS, nel file HOSTS o nel file LMHOSTS per correggere il problema.

Nota

Il metodo di risoluzione dei nomi usato dal computer varia a seconda del tipo di nodo NetBIOS del computer. Per altre informazioni sui tipi di nodo NetBIOS, vedere Risoluzione dei nomi NetBIOS.

Controllare che un firewall tra il server BizTalk Server e i server remoti non blocchi le porte necessarie per l'assegnazione delle porte dinamiche RPC

La funzionalità di MSDTC nella rete dipende dalla funzionalità di RPC nella rete. La funzionalità di RPC con un firewall richiede che determinate porte siano aperte per consentire l'assegnazione delle porte dinamiche RPC. Se è presente un firewall tra i server BizTalk Server e remoti, seguire la procedura descritta in Come configurare l'allocazione di porte dinamiche RPC per l'uso con i firewall per supportare l'allocazione di porte dinamiche RPC.

Impostare le opzioni di configurazione appropriate per la sicurezza di MSDTC

Windows offre miglioramenti alla sicurezza per la gestione della modalità di accesso a MSDTC in rete. Modificando le impostazioni della sicurezza di MSDTC, è possibile controllare il modo in cui MSDTC comunica con i computer remoti tramite la rete. Nella tabella seguente sono riportati i valori consigliati per le opzioni disponibili durante la configurazione delle impostazioni di sicurezza di MSDTC:

Opzione di configurazione Valore predefinito Valore consigliato
Accesso di rete DTC Disabled Attivato
Client e amministrazione
Consenti client remoti Disabled Disabled
Consenti amministrazione remota Disabled Disabled
Comunicazione gestore transazioni
Consenti connessioni in ingresso Disabled Attivato
Consenti connessioni in uscita Disabled Attivato
Necessaria autenticazione reciproca Attivato Questa opzione è abilitata se tutti i computer remoti eseguono Windows Server 2003 SP1 o Windows XP SP2 o versioni successive e se è stata configurata l'opzione "Necessaria autenticazione reciproca".
Necessaria autenticazione del chiamante in ingresso Disabled Abilitata se MSDTC viene eseguito nel cluster.
Nessuna autenticazione Disabled Attivato se in tutti i computer remoti il sistema operativo è precedente a Windows Server 2003 SP1 o a Windows XP SP2.
Attiva TIP Disabled Attivato se viene eseguito il portale BAM.
Abilita transazioni XA Disabled Attivato se si comunica con un sistema transazionale basato su XA, come quando si comunica con IBM WebSphere MQ mediante l'adapter MQSeries.

Una volta apportate queste modifiche, il servizio MSDTC verrà riavviato.

Per accedere alle opzioni di configurazione della sicurezza di MSDTC, attenersi alla procedura seguente:

  1. Fare clic su Start, scegliere Esegui e digitare dcomcnfg per avviare la console di gestione di Servizi componenti.

  2. Fare clic per espandere Servizi componenti e fare clic per espandere Computer.

  3. Fare clic per espandere My Computer, fare clic per espandere Distributed Transaction Coordinator, fare clic con il pulsante destro del mouse su DTC locale e scegliere Proprietà.

  4. Fare clic sulla scheda Sicurezza della finestra di dialogo Proprietà DTC locali .

Nota

A seconda delle modifiche apportate, per renderle effettive può essere necessario riavviare il computer. Se continuano a verificarsi problemi anche dopo l'applicazione delle modifiche e il riavvio del servizio MSDTC, riavviare il computer in cui sono state eseguite le modifiche per garantire che vengano rese effettive.

Se le opzioni di configurazione Autenticazione reciproca obbligatoria o Autenticazione richiesta chiamante in ingresso sono abilitate, all'account computer client/i deve essere concesso l'accesso al computer dal diritto utente di rete . Se all'account computer per un computer client non viene concesso l'accesso al computer dal diritto utente di rete o viene incluso nel diritto Nega l'accesso a questo computer dal diritto utente di rete , la comunicazione DTC tra il client e il computer server avrà esito negativo.

L'impostazione predefinita consiste nel concedere al gruppo Everyone il diritto Accesso a questo computer dall'utente di rete . Non è quindi necessario modificare questo diritto utente, a meno che non sia stata modificata l'impostazione predefinita. Se l'opzione di configurazione Nessuna autenticazione necessaria è abilitata, il diritto Accesso al computer dal diritto utente di rete non si applica all'account computer client/i.

Per modificare gli utenti o i gruppi a cui è concesso il diritto utente "Accedi al computer dalla rete", seguire la procedura seguente:

  1. Fare clic su Start, scegliere Esegui, digitare Gpedit.msc, quindi fare clic su OK.

  2. Espandere i seguenti elementi nell'elenco Criteri del computer locale:

    • Configurazione computer

    • Impostazioni Windows

    • Impostazioni di sicurezza

    • Criteri locali

  3. Scegliere Assegnazione diritti utente.

  4. Fare doppio clic su Accedi al computer dalla rete e quindi fare clic su Aggiungi utente o gruppo.

  5. Fare clic su Tipi di oggetto, selezionare Computer e fare clic su OK.

  6. Aggiungere il nome del computer o il nome del gruppo nell'area Immettere i nomi degli oggetti da selezionare .

  7. Fare clic su Controlla nomi per verificare la voce.

  8. Fare clic su OK due volte.

    Per modificare gli utenti o i gruppi inclusi in Nega accesso al computer dal diritto utente di rete, seguire questa procedura:

  9. Espandere i seguenti elementi nell'elenco Criteri del computer locale:

    • Configurazione computer

    • Impostazioni Windows

    • Impostazioni di sicurezza

    • Criteri locali

  10. Scegliere Assegnazione diritti utente.

  11. Fare doppio clic su Nega l'accesso al computer dalla rete e quindi fare clic per selezionare il nome o il gruppo di computer che si desidera rimuovere dal diritto dell'utente.

  12. Fare clic su Rimuovi e quindi su OK.

Impostare i valori appropriati per le opzioni EnableAuthEpResolution e RestrictRemoteClients

Windows migliora la sicurezza, richiedendo chiamate autenticate all'interfaccia RPC. Questa funzionalità è configurabile tramite le chiavi del Registro di sistema EnableAuthEpResolution e RestrictRemoteClients . Per assicurarsi che i computer remoti siano in grado di accedere all'interfaccia RPC, attenersi alla procedura seguente:

Avviso

L'uso errato di Editor del Registro di sistema può causare problemi e richiedere la reinstallazione del sistema operativo. L'uso dell'editor del Registro di sistema è a rischio e pericolo dell'utente. Per ulteriori informazioni su come eseguire il backup, il ripristino e modificare il Registro di sistema, vedere l'articolo della Microsoft Knowledge Base "Descrizione del Registro di sistema di Microsoft Windows" in Descrizione del Registro di sistema di Microsoft Windows.

  1. Fare clic su Start, scegliere Esegui, digitare regedit.exe, quindi fare clic su OK per avviare l'editor del Registro di sistema.

    Passare a HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT

  2. Nella chiave RPC creare le voci DWORD seguenti con i valori indicati. Se la chiave RPC non esiste, deve essere creata.

    Voce DWORD Valore predefinito Valore consigliato
    EnableAuthEpResolution 0 (disabilitata) 1
    RestrictRemoteClients 1 (abilitata) 0
  3. Chiudere l'editor del Registro di sistema.

  4. Riavviare il servizio MSDTC.

Nota

A seconda delle modifiche apportate, per renderle effettive può essere necessario riavviare il computer. Se continuano a verificarsi problemi anche dopo l'applicazione delle modifiche e il riavvio del servizio MSDTC, riavviare il computer in cui sono state eseguite le modifiche per garantire che vengano rese effettive.

Se è in esecuzione Windows Firewall, aggiungere un'eccezione per il servizio MSDTC.

Il servizio Windows Firewall potrebbe infatti bloccare le comunicazioni MSDTC tra computer. Per garantire che le comunicazioni MSDTC non vengano bloccate tra computer, se il servizio Windows Firewall è in esecuzione aggiungere il file msdtc.exe all'elenco di eccezioni di Windows Firewall.

  1. Fare clic su Start, scegliere Esegui, digitare firewall.cple quindi fare clic su OK per visualizzare la finestra di dialogo Windows Firewall .

  2. Fare clic su Consenti a un programma tramite Windows Firewall per visualizzare la finestra di dialogo Impostazioni di Windows Firewall .

  3. Fare clic sulla scheda Eccezioni della finestra di dialogo Impostazioni di Windows Firewall .

  4. Fare clic su Aggiungi programma per visualizzare la finestra di dialogo Aggiungi programma .

  5. Fare clic su Sfoglia e passare a %system32%\msdtc.exe.

    Nota

    Avviare un prompt dei comandi, digitare echo %system32% e premere INVIO per determinare il percorso della directory \System32 nel computer.

  6. Fare clic per selezionare msdtc.exe e fare clic su Apri.

  7. Fare clic su Modifica ambito per specificare il set di computer per cui devono essere consentite le comunicazioni MSDTC e fare clic su OK.

  8. Fare clic su OK nella finestra di dialogo Aggiungi programma e fare clic su OK nella finestra di dialogo Impostazioni di Windows Firewall .

  9. Chiudere la finestra di dialogo Windows Firewall .

  10. Arrestare e riavviare il servizio Distributed Transaction Coordinator (DTC).

    • Avviare un prompt dei comandi, digitare net stop msdtc e premere INVIO.

    • Dopo l'arresto del servizio Distributed Transaction Coordinator, digitare net start msdtc e premere INVIO.

Usare DTCTester o DTCPing per verificare la funzionalità di MSDTC nella rete.

Usare il cmdlet Test-Dtc per verificare il supporto delle transazioni tra due computer se SQL Server è installato in uno dei computer. Per altre informazioni, vedere Windows PowerShell: Test-Dtc.

Usare DTCPing per verificare il supporto delle transazioni tra due computer se SQL Server non è installato in uno dei computer. DTCPing deve essere eseguito sia nel computer client sia nel computer server e rappresenta una valida alternativa all'utilità DTCTester se SQL Server non è installato in uno dei computer. Per altre informazioni su DTCPing, vedere Come risolvere i problemi del firewall MS DTC e Configurazione di Microsoft Distributed Transaction Coordinator (DTC) per l'utilizzo di un firewall.

Importante

Se DTCPing restituisce l'avviso "WARNING:i valori CID per entrambi i computer di test sono uguali", seguire la procedura descritta nella sezione Assicurarsi che a MSDTC sia assegnato un valore CID univoco per supportare la funzionalità MSDTC corretta tra i computer di test.

Accertarsi che a MSDTC venga assegnato un valore CID univoco

La funzionalità MSDTC del sistema operativo Windows richiede valori CID univoci per assicurare che la funzionalità MSDTC funzioni correttamente tra i computer. È necessario che le immagini duplicate su disco delle installazioni di Windows abbiano valori CID univoci, altrimenti la funzionalità di MSDTC potrebbe essere compromessa. Questo può verificarsi quando si usano dischi rigidi virtuali per distribuire un sistema operativo in un computer virtuale.

Per determinare se i valori CID di MSDTC relativi ai computer che eseguono il sistema operativo Windows sono univoci, controllare i valori delle voci sotto la chiave del Registro di sistema HKEY_CLASSES_ROOT\CID in entrambi i computer. Se questi valori non sono univoci per ogni computer, seguire la procedura descritta nella sezione Valutare la possibilità di reinstallare il servizio Distributed Transaction Coordinator se altri passaggi per la risoluzione dei problemi non riescono a reinstallare MSDTC in uno dei computer, che genererà valori CIDTC univoci per tale computer e supportare le operazioni MSDTC appropriate.

Si verifica l'errore "Impossibile aggiungere la nuova transazione all'elenco del coordinatore di transazioni specificato (0x8004d00a)" se la connessione MSDTC tra un computer client e un computer server viene chiusa.

In alcuni scenari, è possibile che una connessione MSDTC esistente tra un client e un server venga chiusa e che i successivi tentativi di utilizzare questa connessione provocheranno il seguente messaggio di errore: La nuova transazione non può essere inserita nel coordinatore delle transazioni specificato (0x8004d00a) Per ulteriori informazioni, passare a Nuova transazione non può essere inserita nel coordinatore delle transazioni specificato quando si tenta di avviare una transazione in MS DTC.

Provare a reinstallare il servizio Distributed Transaction Coordinator se altre procedure di risoluzione dei problemi non hanno esito positivo.

Se altri tentativi di risolvere i problemi relativi a MSDTC hanno esito negativo, provare a disinstallare e reinstallare MSDTC. Per disinstallare e reinstallare MSDTC, attenersi alla procedura seguente:

  1. Aprire un prompt dei comandi come amministratore.

  2. Al prompt dei comandi digitare quanto segue per disinstallare il servizio Distributed Transaction Coordinator: msdtc -uninstall

  3. Al prompt dei comandi digitare quanto segue per installare il servizio Distributed Transaction Coordinator: msdtc –install

Importante

Con la reinstallazione di MSDTC è possibile che venga modificato il comportamento predefinito del servizio Distributed Transaction Coordinator. Dopo aver reinstallato MSDTC, attenersi alla procedura descritta di seguito per assicurarsi che il servizio Distributed Transaction Coordinator funzioni correttamente:

  • Con la reinstallazione di MSDTC è possibile che vengano ripristinati i valori predefiniti delle opzioni di configurazione della sicurezza di MSDTC. Dopo aver reinstallato MSDTC, verificare che le opzioni di configurazione della sicurezza di MSDTC siano impostate sui valori appropriati.
    • La reinstallazione di MSDTC può modificare il valore del tipo di avvio per il servizio Distributed Transaction Coordinator. Verificare che il valore Tipo di avvio per il servizio Distributed Transaction Coordinator sia impostato su Automatico dopo la reinstallazione di MSDTC.
    • Per la reinstallazione di MSDTC è possibile che venga richiesto di riavviare il computer. Per assicurarsi che il servizio Distributed Transaction Coordinator funzioni correttamente, riavviare il computer dopo aver reinstallato MSDTC.

Vedere anche

Strumenti e utilità da usare per la risoluzione dei problemi relativi aun cluster di Windows Server