Microsoft distribue les correctifs Microsoft SQL Server 2012 dans un fichier téléchargeable. Dans la mesure où les correctifs sont cumulatifs, chaque nouvelle version contient tous les correctifs et toutes les mises à jour de sécurité qui ont été incluses dans la version précédente de la mise à jour SQL Server 2012.
Symptômes
Supposez que vous exécutez de nombreux xp_cmdshell procédures stockées en même temps sur plusieurs sessions dans Microsoft SQL Server 2012. Dans ce cas, la première exécution de la procédure stockée xp_cmdshell n’est pas effectuée tant que la dernière exécution n’est pas terminée.
Cause
Ce problème se produit car un handle est hérité par les processus ouverts lorsque vous exécutez xp_cmdshell procédures stockées en même temps. L’API CreateProcess nécessite une gestion de l’héritage pour rediriger la sortie standard et le message d’erreur. Si plusieurs exécutions de la procédure stockée xp_cmdshell s’exécutent en même temps, les processus récemment ouverts peuvent hériter du handle de processus existants. Toutefois, la procédure stockée xp_cmdshell attend que le handle soit fermé par tous les processus ouverts. Par conséquent, lorsque plusieurs processus héritent du handle, toutes les exécutions de xp_cmdshell doivent attendre que le handle soit fermé par le processus le plus long exécuté.
Résolution
Pour résoudre ce problème, appliquez la mise à jour cumulative suivante. Cette mise à jour ajoute des options de STARTUPINFOEX d’API CreateProcess qui empêchent l’héritage de handle pour le processus croisé.
Informations sur les mises à jour cumulatives
Package de mise à jour cumulative 1 pour SQL Server 2012 Service Pack 1
Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 1. Pour plus d’informations sur la façon d’obtenir ce package de mise à jour cumulative pour SQL Server 2012 Service Pack 1, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
2765331 Package de mise à jour cumulative 1 pour SQL Server 2012 Service Pack 1Remarque Dans la mesure où les builds sont cumulatives, chaque nouvelle version du correctif contient tous les correctifs et les correctifs de sécurité inclus dans l’ancienne version du correctif SQL Server 2012. Nous vous recommandons d’appliquer la version de correctif la plus récente qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
2772858 Builds SQL Server 2012 publiées après la sortie de SQL Server 2012 Service Pack 1
SQL Server 2012
Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 4. Pour plus d’informations sur la façon d’obtenir ce package de mise à jour cumulative pour SQL Server 2012, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
2758687 Package de mise à jour cumulative 4 pour SQL Server 2012Remarque Dans la mesure où les builds sont cumulatives, chaque nouvelle version du correctif contient tous les correctifs et les correctifs de sécurité inclus dans l’ancienne version du correctif SQL Server 2012. Nous vous recommandons d’appliquer la version de correctif la plus récente qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
2692828 Builds SQL Server 2012 publiées après la sortie de SQL Server 2012
Statut
Microsoft a confirmé l’existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.
Références
Pour plus d’informations sur la fonction CreateProcess, accédez au site Web suivant :
Informations générales sur la fonction CreateProcessPour plus d’informations sur la procédure stockée xp_cmdshell, accédez au site Web MSDN suivant :
Informations générales sur la procédure stockée xp_cmdshell Pour plus d’informations sur un problème similaire, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
315939 PRB : Child hérite de handles inattendus pendant un appel CreateProcess