La nuova transazione non può essere incorporata nel coordinatore delle transazioni specificato quando si tenta di avviare una transazione in MS DTC

Questo articolo consente di risolvere un problema quando si avvia una transazione in Microsoft Distributed Transaction Coordinator (MS DTC).

              Versione originale del prodotto: Windows
Numero KB originale: 922430

Importante

In questo articolo sono contenute informazioni relative alla modifica del Registro di sistema. Assicurarsi di eseguire il backup del Registro di sistema prima di modificarlo. e di sapere come ripristinarlo in caso di problemi. Per altre informazioni su come eseguire il backup, ripristinare e modificare il Registro di sistema, vedere Informazioni sul Registro di sistema di Windows per gli utenti esperti.

Sintomi

Considerare lo scenario descritto di seguito:

  • Si dispone di un computer client che comunica con un computer server.
  • MS DTC è installato in entrambi i computer.
  • Una o più delle condizioni seguenti sono vere:
    • Si riavvia uno dei computer.
    • Si riavvia MS DTC in uno dei computer.
    • I computer si trovano in domini diversi.

In questo scenario viene visualizzato il messaggio di errore seguente quando si tenta di avviare una transazione in MS DTC:

La nuova transazione non può essere incorporata nel coordinatore delle transazioni specificato (0x8004d00a)

Inoltre, la prima transazione ha esito negativo. Le transazioni successive hanno esito positivo per un po'. Tuttavia, le transazioni successive potrebbero non riuscire di nuovo. Se le transazioni successive hanno esito negativo, viene visualizzato il messaggio di errore seguente:

La nuova transazione non può essere incorporata nel coordinatore delle transazioni specificato (0x8004d00e)

Causa

Questo problema può verificarsi quando la connessione MS DTC tra il computer client e il computer server viene chiusa. Ad esempio, un timeout di inattività, un timeout RPC (Remote Procedure Call) o il firewall potrebbe chiudere la connessione MS DTC tra il computer client e il computer server. Quando si verifica una nuova richiesta di transazione, il computer client deve ristabilire la connessione MS DTC con il computer server.

Quando il computer client tenta di ristabilire la connessione MS DTC con il computer server, il computer client invia un pacchetto. Il computer client attende quindi una risposta del pacchetto di associazione dal computer server. Per impostazione predefinita, il computer client arresta la transazione se il computer client non riceve una risposta dal computer server in 4 secondi. La risposta dal computer server potrebbe essere ritardata a causa di problemi di latenza di rete o ritardi di autenticazione. Quando la risposta dal computer server raggiunge finalmente il computer client, le transazioni successive hanno esito positivo.

La prima transazione potrebbe richiedere molto tempo e quindi una richiesta successiva di eseguire una transazione distribuita potrebbe terminare immediatamente. Questo problema può verificarsi quando il lato client di MS DTC presenta un problema di comunicazione con il server Kerberos (KDC). In genere, questo problema si verifica se il client e il server si trovano in domini diversi che hanno un firewall tra loro.

Ad esempio, questo problema si verifica nello scenario seguente:

  • Il servizio Web si trova nella rete perimetrale in un dominio. Il servizio Web deve usare le transazioni con un server di database in un altro dominio in una intranet.
  • Un firewall si trova tra la rete perimetrale e la intranet. Il ritardo eccessivo nella prima transazione si verifica perché la porta UDP (User Datagram Protocol) 88 (Kerberos) è bloccata.
  • I tentativi e l'intervallo di ripetizione dei tentativi per la richiesta Kerberos equivalgono a un ritardo eccessivo (oltre 100 secondi).

Risoluzione

Avviso

L'errata modifica del Registro di sistema tramite l'editor o un altro metodo può causare seri problemi. Questi problemi potrebbero richiedere la reinstallazione del sistema operativo. Microsoft non è in grado di garantire la soluzione di tali problemi. La modifica del Registro di sistema è a rischio e pericolo dell'utente.

Per assicurarsi di riscontrare il problema descritto in questo articolo, verificare che il file di log di traccia delle transazioni MS DTC contenga i dati seguenti:

; eventid=TRANSACTION_PROPOGATION_FAILED_CONNECTION_DOWN_FROM_REMOTE_TM ; tx_guid=f11cd9c9-7b8a-41e3-a904-4840123bacf7 ;" impossibile proporre la transazione al nodo figlio ' ComputerName ' perché la connessione con gestione transazioni remota è stata interrotta"

Nota

In questi dati, la parola propogation è un errore di ortografia per la propagazione della parola. La parola propogate è un errore di ortografia per la parola propagata.

Se il file di log di traccia delle transazioni MS DTC contiene questi dati, seguire questa procedura:

  1. Selezionare Start e quindi Esegui, digitare regedit e premere OK.

  2. Individuare la seguente sottochiave del Registro di sistema:
    HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC

  3. Fare clic con il pulsante destro del mouse su MSDTC, scegliere Nuovo e quindi selezionare Valore DWORD.

  4. Digitare CmMaxNumberBindRetries e quindi premere INVIO.

  5. Fare clic con il pulsante destro del mouse su CmMaxNumberBindRetries e quindi scegliere Modifica.

  6. Selezionare Decimal.

  7. Nella casella Dati valore digitare 60.

    Questo valore aumenta il tempo di attesa del computer client per la risposta del pacchetto di associazione dal computer server. Questo valore è il doppio del numero di secondi prima che il computer client arresti la transazione se il computer client non riceve la risposta del pacchetto di associazione. Ad esempio, un valore di 60 è uguale a 30 secondi. Il valore di 60 è solo un valore consigliato. Potrebbero essere necessari test aggiuntivi per la configurazione.

  8. Selezionare OK.

  9. Riavviare MS DTC.

Nota

Per lo scenario di risposta lenta, assicurarsi che le porte richieste dall'autenticazione Kerberos (UDP 88 e TCP (Transmission Control Protocol) 88) siano aperte quando un firewall è coinvolto nella rete perimetrale. Devono essere aperte anche le porte UDP 389 e TCP 389 (entrambe per LDAP (Lightweight Directory Access Protocol) per trovare il Centro distribuzione chiavi (KDC).