Microsoft distribuisce le correzioni di Microsoft SQL Server 2012 in un file scaricabile. Poiché le correzioni sono cumulative, ogni nuova versione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 2012 Update.
Sintomi
Si supponga di eseguire molte xp_cmdshell stored procedure contemporaneamente in più sessioni in Microsoft SQL Server 2012. In questo caso, la prima esecuzione della stored procedure xp_cmdshell non viene completata fino al completamento dell'ultima esecuzione.
Causa
Questo problema si verifica perché un handle viene ereditato dai processi aperti quando si eseguono xp_cmdshell stored procedure contemporaneamente. L'API CreateProcess richiede l'ereditarietà della maniglia per reindirizzare l'output standard e il messaggio di errore. Se più esecuzioni della xp_cmdshell stored procedure vengono eseguite contemporaneamente, i processi appena aperti possono ereditare il punto di manipolazione dai processi esistenti. Tuttavia, la xp_cmdshell stored procedure attende che il punto di manipolazione venga chiuso da tutti i processi aperti. Di conseguenza, quando più processi ereditano il punto di manipolazione, tutte le esecuzioni di xp_cmdshell devono attendere che il punto di manipolazione venga chiuso dal processo più lungo.
Risoluzione
Per risolvere il problema, applicare l'aggiornamento cumulativo seguente. Questo aggiornamento aggiunge le opzioni di STARTUPINFOEX dell'API CreateProcess che impediscono l'ereditarietà del handle per il processo incrociato.
Informazioni sull'aggiornamento cumulativo
Pacchetto di aggiornamento cumulativo 1 per SQL Server 2012 Service Pack 1
La correzione di questo problema è stata rilasciata per la prima volta nell'aggiornamento cumulativo 1. Per altre informazioni su come ottenere questo pacchetto di aggiornamento cumulativo per SQL Server 2012 Service Pack 1, fare clic sul numero dell'articolo seguente per visualizzare l'articolo della Microsoft Knowledge Base:
2765331 Pacchetto di aggiornamento cumulativo 1 per SQL Server 2012 Service Pack 1Nota Poiché le build sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 2012 FIX. Ti consigliamo di considerare l'applicazione della versione di correzione più recente che contiene questo hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:
2772858 Build di SQL Server 2012 rilasciate dopo il rilascio di SQL Server 2012 Service Pack 1
SQL Server 2012
La correzione di questo problema è stata rilasciata per la prima volta nell'aggiornamento cumulativo 4. Per altre informazioni su come ottenere questo pacchetto di aggiornamento cumulativo per SQL Server 2012, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:
2758687 Pacchetto di aggiornamento cumulativo 4 per SQL Server 2012Nota Poiché le build sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 2012 FIX. Ti consigliamo di considerare l'applicazione della versione di correzione più recente che contiene questo hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:
2692828 Build di SQL Server 2012 rilasciate dopo il rilascio di SQL Server 2012
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".
Riferimenti
Per altre informazioni sulla funzione CreateProcess, visitare il sito Web MSDN seguente:
Informazioni generali sulla funzione CreateProcessPer altre informazioni sulla xp_cmdshell stored procedure, visitare il sito Web MSDN seguente:
Informazioni generali sulla stored procedure xp_cmdshell Per altre informazioni su un problema simile, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:
315939 PRB: figlio eredita gli handle indesiderati durante la chiamata di CreateProcess