Sintomi
Supponiamo che tu usi una sessione che chiama una stored procedure CLR (Common Language Runtime) (una "sessione di chiamata") per accedere ai dati in Microsoft SQL Server e che la procedura a sua volta stabilisca una connessione separata (una "seconda sessione") allo stesso server anziché una connessione di contesto. Se quindi la sessione chiamante viene terminata a causa di un timeout o di un'annullamento, la seconda sessione può diventare orfana e sarà presente nel sistema finché non viene terminata manualmente tramite il comando Kill . Se la sessione orfana contiene blocchi, è possibile che altre sessioni vengano bloccate in attesa che i blocchi vengano rilasciati.
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".
Risoluzione
Questo problema è stato risolto negli aggiornamenti cumulativi seguenti per SQL Server:
Informazioni sugli aggiornamenti cumulativi per SQL Server:
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. Vedere gli ultimi aggiornamenti cumulativi per SQL Server
Nota Per impostazione predefinita, la correzione è disattivata a causa della necessità di mantenere il comportamento legacy del threading CLR in SQL Server. È necessario attivarlo solo se il sistema presenta i sintomi menzionati in precedenza. Per abilitare la correzione, è necessario aggiungere il contrassegno di traccia 6559 al server usando le Opzioni di avvio del servizio motore di database. Tieni presente che questo flag di traccia può essere usato solo insieme alle opzioni di avvio di SQL Server. Non è possibile impostarlo usando il comando DBCC TRACEON .
Riferimenti
Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.