Microsoft SQL Server 2012 수정 프로그램을 하나의 다운로드 가능한 파일에 배포 합니다. 수정 프로그램이 누적 되므로 새 릴리스에는 이전 SQL Server 2012 업데이트 릴리스에 포함 된 모든 핫픽스와 모든 보안 업데이트가 포함 되어 있습니다.
증상
Microsoft SQL Server 2012의 여러 세션에서 동시에 여러 xp_cmdshell 저장 프로시저를 실행 한다고 가정 합니다. 이 경우 마지막 실행이 완료 될 때까지 xp_cmdshell 저장 프로시저의 첫 번째 실행이 완료 되지 않습니다.
원인
이 문제는 xp_cmdshell 저장 프로시저를 동시에 실행할 때 열리는 프로세스가 핸들을 상속 하기 때문에 발생 합니다. CreateProcess API는 표준 출력과 오류 메시지를 리디렉션하는 핸들 상속을 필요로 합니다. Xp_cmdshell 저장 프로시저의 여러 실행이 동시에 실행 되는 경우 새로 연 프로세스에서 기존 프로세스의 핸들을 상속할 수 있습니다. 그러나 xp_cmdshell 저장 프로시저는 열려 있는 모든 프로세스에 의해 핸들이 닫힐 때까지 기다립니다. 따라서 여러 프로세스가 핸들을 상속 하는 경우, 모든 xp_cmdshell 실행은 핸들이 가장 긴 프로세스가 닫힐 때까지 기다려야 합니다.
해결 방법
이 문제를 해결 하려면 다음 누적 업데이트를 적용 합니다. 이 업데이트는 크로스 프로세스에 대해 핸들 상속을 방지 하는 CreateProcess API STARTUPINFOEX 옵션을 추가 합니다.
누적 업데이트 정보
SQL Server 2012 서비스 팩 1에 대 한 누적 업데이트 패키지 1
이 문제에 대 한 픽스는 먼저 누적 업데이트 1에서 릴리스 되었습니다. SQL Server 2012 서비스 팩 1 용 누적 업데이트 패키지를 구하는 방법에 대 한 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.
2765331 SQL Server 2012 서비스 팩 1에 대 한 누적 업데이트 패키지 1참고 빌드가 누적 되므로 새로운 각 수정 릴리스에는 이전 SQL Server 2012 fix 릴리스에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. 이 핫픽스를 포함 하는 최신 픽스 릴리스를 적용 하는 것이 좋습니다. 자세한 내용을 확인하려면 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하십시오.
2772858 SQL Server 2012 서비스 팩 1 이후 릴리스된 SQL Server 2012 빌드가 릴리스 되었습니다.
SQL Server 2012
이 문제에 대 한 픽스는 먼저 누적 업데이트 4에서 릴리스 되었습니다. SQL Server 2012의이 누적 업데이트 패키지를 구하는 방법에 대 한 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.
2758687 SQL Server 2012의 누적 업데이트 패키지 4참고 빌드가 누적 되므로 새로운 각 수정 릴리스에는 이전 SQL Server 2012 fix 릴리스에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. 이 핫픽스를 포함 하는 최신 픽스 릴리스를 적용 하는 것이 좋습니다. 자세한 내용을 확인하려면 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하십시오.
2692828 SQL Server 2012이 출시 된 이후 출시 된 SQL Server 2012 빌드
상태
Microsoft는 이 문제가 "적용 대상" 절에 나열된 Microsoft 제품에서 발생하는 문제로 확인했습니다.
참조
CreateProcess 함수에 대 한 자세한 내용을 보려면 다음 MSDN 웹 사이트를 방문 하세요.
CreateProcess 함수에 대 한 일반 정보Xp_cmdshell 저장 프로시저에 대 한 자세한 내용은 다음 MSDN 웹 사이트를 참조 하세요.
Xp_cmdshell 저장 프로시저에 대 한 일반 정보 유사한 문제에 대 한 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.
315939 PRB: CreateProcess 통화 중에 자식이 의도 하지 않은 핸들을 상속 합니다.