Condividi tramite


MSSQLSERVER_3989

Si applica a: SQL Server

Dettagli

Attributo Valore
Nome prodotto SQL Server
ID evento 3989
Origine evento MSSQLSERVER
Componente SQLEngine
Nome simbolico XACT_UNSUPPORT_PARALLEL_TRAN3
Testo del messaggio Impossibile avviare la nuova richiesta perché deve disporre di un descrittore di transazione valido.

Spiegazione

Questo errore si verifica quando si esegue una query distribuita che unisce più tabelle ospitate da istanze remote di SQL Server mentre l'impostazione della XACT_ABORT sessione è ATTIVATA. Viene visualizzato all'utente un messaggio di errore simile al seguente:

Messaggio 3989, livello 16, stato 1, riga #
Impossibile avviare la nuova richiesta perché deve disporre di un descrittore di transazione valido.

Causa

Esistono alcune limitazioni di progettazione nel modo in cui SQL Server gestisce le query distribuite (DQs) quando sono vere le condizioni seguenti:

  • SQL Server unisce più tabelle di un'origine dati di SQL Server remota.
  • La sessione che esegue la query non è integrata in una transazione distribuita.

In questa situazione un tentativo di eseguire la query può generare uno dei due errori indicati nella sezione Spiegazione.

Azione utente

Per risolvere il problema, racchiudere la query distribuita in un'istruzione BEGIN DISTRIBUTED TRANSACTION:

BEGIN DISTRIBUTED TRANSACTION
/*The actual Distributed Query goes next, outside of comments*/
COMMIT TRANSACTION