Корпорація Майкрософт поширює Microsoft SQL Server 2012 виправлення в одному файлі, що завантажується. Оскільки виправлення є сукупними, у кожному новому випуску містяться всі поточні виправлення та всі оновлення системи безпеки, які були включені до попереднього випуску оновлення SQL Server 2012.
Ознаки
Припустімо, що ви запускала багато Xp_cmdshell процедур одночасно з кількома сеансами в Microsoft SQL Server 2012. У цій ситуації перший запуск Xp_cmdshell Збережена процедура не завершується до завершення останнього виконання.
Причина
Ця проблема виникає тому, що дескриптор успадковується процесами, які відкриваються, коли виконуються Xp_cmdshell зберігаються процедури одночасно. Для перенаправлення стандартного випуску та повідомлення про помилку для API Createprocess потрібно обробляти успадкування. Якщо кілька страт Xp_cmdshell Збережена процедура виконується одночасно, щойно відкриті процеси можуть успадковувати дескриптор з поточних процесів. Проте Xp_cmdshell Збережена процедура очікує, що цей маркер буде закрито всіма відкритими процесами. Тому, коли кілька процесів успадковують дескриптор, усі Xp_cmdshell страти мають почекати, доки маркер не закриється тривалим процесом.
Спосіб вирішення
Щоб вирішити цю проблему, інсталюйте наведені нижче накопичувальне оновлення. Це оновлення додає варіанти STARTUPINFOEX API для обробки, які перешкоджають успадкування для перехресного процесу.
Відомості про Сукупне оновлення
Сукупний пакет оновлень пакета 1 для SQL Server 2012 із пакетом оновлень 1
Виправлення для цієї проблеми уперше випущено в сукупному оновленні 1. Щоб отримати докладні відомості про отримання цього сукупного оновлення пакета для SQL Server 2012 Service Pack 1, клацніть цей номер статті, щоб переглянути статтю в базі знань Microsoft Knowledge Base:
2765331 Сукупний пакет оновлень пакета 1 для SQL Server 2012 із пакетом оновлень 1Примітка. Оскільки будує сукупну версію, кожен новий випуск Fix містить всі виправлення та виправлення безпеки, які були включені до попередньої версії SQL Server 2012 Fix Release. Радимо застосувати найновішу версію виправлення, що містить це виправлення. Щоб отримати докладні відомості, клацніть номер цієї статті бази знань Microsoft:
2772858 Випущено SQL Server 2012, що випущено після випуску пакета оновлень 1 (SP1) для SQL Server 2012
SQL Server 2012
Виправлення для цієї проблеми уперше випущено в сукупному оновленні 4. Щоб отримати докладні відомості про отримання цього сукупного оновлення пакета SQL Server 2012, клацніть цей номер статті, щоб переглянути статтю в базі знань Microsoft Knowledge Base:
2758687 Сукупний пакет оновлень пакета 4 для SQL Server 2012Примітка. Оскільки будує сукупну версію, кожен новий випуск Fix містить всі виправлення та виправлення безпеки, які були включені до попередньої версії SQL Server 2012 Fix Release. Радимо застосувати найновішу версію виправлення, що містить це виправлення. Щоб отримати докладні відомості, клацніть номер цієї статті бази знань Microsoft:
2692828 Інстальовано версії SQL Server 2012, випущені після випуску SQL Server 2012
Стан
Корпорація Майкрософт підтвердила, що це проблема в продуктах Microsoft, перелічених у розділі "застосовується до".
Посилання
Щоб отримати докладні відомості про функцію CreateProcess, перейдіть на такий веб-сайт MSDN:
Загальні відомості про функцію CreateProcessЩоб отримати докладніші відомості про збережену xp_cmdshell процедуру, перейдіть на такий веб-сайт MSDN:
Загальні відомості про xp_cmdshell збережену процедуру Щоб отримати докладні відомості про аналогічну проблему, клацніть номер статті в базі знань Microsoft Knowledge Base:
315939 PRB: дитина успадковує випадкові ручки під час виклику CreateProcess