Poprawka: Przy pierwszym wykonaniu procedury przechowywane xp_cmdshell kończy się przed zakończeniem ostatniego wykonania w 2012 serwera SQL

WAŻNE: Ten artykuł nie został przetłumaczony przez człowieka, tylko przez oprogramowanie do tłumaczenia maszynowego firmy Microsoft. Firma Microsoft oferuje zarówno artykuły tłumaczone przez ludzi, jak i artykuły tłumaczone maszynowo, dzięki czemu każdy użytkownik może uzyskać dostęp do całej zawartości bazy wiedzy Knowledge Base we własnym języku. Prosimy jednak pamiętać, że artykuły przetłumaczone maszynowo nie zawsze są doskonałe. Mogą zawierać błędy słownictwa, składni i gramatyki, przypominające błędy robione przez osoby, dla których język użytkownika nie jest językiem ojczystym. Firma Microsoft nie odpowiada za wszelkie nieścisłości, błędy lub szkody spowodowane nieprawidłowym tłumaczeniem zawartości oraz za wykorzystanie tej zawartości przez klientów. Oprogramowanie do tłumaczenia maszynowego jest często aktualizowane przez firmę Microsoft.

Anglojęzyczna wersja tego artykułu to: 2671318
Firma Microsoft rozpowszechnia poprawki 2012 Microsoft SQL Server w jednym pliku do pobrania. Ponieważ poprawki są zbiorcze, każde nowe wydanie zawiera wszystkie poprawki i wydania aktualizacji wszystkich aktualizacji zabezpieczeń, które zostały zawarte w poprzednich 2012 serwera SQL.
Symptomy
Załóżmy, uruchamiać wiele procedur xp_cmdshell przechowywane w tym samym czasie na wiele sesji w 2012 r. Microsoft SQL Server. Przy pierwszym wykonaniu procedury xp_cmdshell , przechowywane w tej sytuacji nie jest ukończona, aż do zakończenia ostatniego wykonania.
Przyczyna
Ten problem występuje, ponieważ uchwyt jest dziedziczona przez procesy, które są otwierane po uruchomieniu procedury xp_cmdshell , przechowywane w tym samym czasie.

Funkcja CreateProcess API wymaga dziedziczenie uchwytów do przekierowania standardowych danych wyjściowych i komunikat o błędzie. Jeśli wiele wykonania xp_cmdshell przechowywane procedury Uruchom w tym samym czasie, nowo otwarty procesów może dziedziczyć uchwyt z istniejącymi procesami. Jednak xp_cmdshell przechowywane procedury czeka uchwyt do zamknięcia przez wszystkie procesy otwarte. W związku z tym gdy wiele procesów dziedziczyć uchwyt, wszystkie xp_cmdshell wykonania musi poczekać, aż zamyka uchwyt procesu najdłużej.
Rozwiązanie
Aby rozwiązać ten problem, zastosuj następującą aktualizację zbiorczą. Ta aktualizacja dodaje opcje CreateProcess API STARTUPINFOEX, uniemożliwiających dziedziczenie uchwytu na krzyż procesu.

Zbiorcza aktualizacja informacji

Zbiorczego pakietu aktualizacji 1 dla dodatku Service Pack 1 dla programu SQL Server 2012

Poprawkę dotyczącą tego problemu najpierw została wydana w zbiorczej aktualizacji 1. Aby uzyskać więcej informacji dotyczących sposobu uzyskiwania tego pakietu aktualizacji zbiorczej dla dodatku Service Pack 1 dla programu SQL Server 2012 r. kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
2765331 Zbiorczego pakietu aktualizacji 1 dla dodatku Service Pack 1 dla programu SQL Server 2012
Uwaga Ponieważ kompilacje kumulują się, każde nowe wydanie poprawka zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały zawarte w poprzednich 2012 serwera SQL naprawić release. Firma Microsoft zaleca, aby rozważyć zastosowanie najnowszej wersji poprawki, zawierający tę poprawkę. Aby uzyskać więcej informacji kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
2772858 2012 Serwera SQL buduje hotfix wydane po wydaniu dodatku Service Pack 1 dla programu SQL Server 2012

Program SQL Server 2012

Poprawkę dotyczącą tego problemu najpierw została wydana w zbiorczej aktualizacji 4. Aby uzyskać więcej informacji dotyczących sposobu uzyskiwania tego pakietu aktualizacji zbiorczej dla programu SQL Server w 2012 r. kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
2758687 Zbiorczego pakietu aktualizacji 4 dla programu SQL Server 2012
Uwaga Ponieważ kompilacje kumulują się, każde nowe wydanie poprawka zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały zawarte w poprzednich 2012 serwera SQL naprawić release. Firma Microsoft zaleca, aby rozważyć zastosowanie najnowszej wersji poprawki, zawierający tę poprawkę. Aby uzyskać więcej informacji kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
2692828 2012 Serwera SQL buduje hotfix wydane po wydaniu programu SQL Server 2012
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft, które są wymienione w sekcji "Informacje zawarte w tym artykule dotyczą".
Materiały referencyjne
Aby uzyskać więcej informacji na temat funkcji CreateProcess przejdź do następującej witryny sieci Web MSDN:Aby uzyskać więcej informacji na temat procedury przechowywane xp_cmdshell przejdź do następującej witryny sieci Web MSDN: Aby uzyskać więcej informacji dotyczących podobnego problemu kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
315939 PRB: Podrzędna dziedziczy niezamierzone uchwyty podczas wywołania funkcji CreateProcess

Ostrzeżenie: ten artykuł przetłumaczono automatycznie

Właściwości

Identyfikator artykułu: 2671318 — ostatni przegląd: 11/20/2012 23:31:00 — zmiana: 1.0

  • kbtshoot kbqfe kbfix kbexpertiseadvanced kbsurveynew kbmt KB2671318 KbMtpl
Opinia