Microsoft phân phối các bản sửa lỗi Microsoft SQL Server 2012 trong một tệp được tải xuống. Vì các bản sửa lỗi được tích lũy, mỗi bản phát hành mới chứa tất cả các hotfix và tất cả các bản Cập Nhật bảo mật đã được đưa vào bản phát hành SQL Server 2012 bản Cập Nhật trước đó.
Triệu chứng
Giả định rằng bạn chạy nhiều thủ tục được lưu trữ xp_cmdshell cùng một lúc trên nhiều phiên trong Microsoft SQL Server 2012. Trong trường hợp này, thực hiện đầu tiên của quy trình được lưu trữ xp_cmdshell sẽ không hoàn thành cho đến khi hoàn thành quá trình thực hiện cuối cùng.
Nguyên nhân
Sự cố này xảy ra vì một núm điều khiển được kế thừa bởi các quy trình được mở khi bạn chạy xp_cmdshell thủ tục được lưu trữ cùng một lúc. API CreateProcess đòi hỏi phải xử lý kế thừa để chuyển hướng thông báo đầu ra tiêu chuẩn và thông báo lỗi. Nếu nhiều việc xử lý của quy trình được lưu trữ xp_cmdshell chạy cùng lúc, các quy trình mới được mở có thể kế thừa núm điều khiển từ các quy trình hiện có. Tuy nhiên, thủ tục được lưu trữ xp_cmdshell chờ xử lý sẽ được đóng lại bởi tất cả các quy trình mở. Vì vậy, khi nhiều quy trình kế thừa núm điều khiển, tất cả các xử tử xp_cmdshell phải đợi đến khi núm điều khiển được đóng lại bằng quy trình chạy dài nhất.
Giải pháp
Để giải quyết vấn đề này, hãy áp dụng bản Cập Nhật tích lũy sau đây. Bản cập nhật này thêm CreateProcess API STARTUPINFOEX tùy chọn ngăn ngừa kế thừa quy trình xử lý quá trình chéo.
Thông tin Cập Nhật tích lũy
Gói Cập Nhật tích lũy 1 cho SQL Server 2012 gói dịch vụ 1
Bản sửa lỗi cho sự cố này lần đầu tiên được phát hành trong bản Cập Nhật Cumulative Update 1. Để biết thêm thông tin về cách tải gói Cập Nhật tích lũy cho SQL Server 2012 Service Pack 1, hãy bấm số bài viết sau đây để xem bài viết trong cơ sở kiến thức Microsoft:
2765331 Gói Cập Nhật tích lũy 1 cho SQL Server 2012 gói dịch vụ 1Lưu ý Vì bản dựng được tích lũy, mỗi bản phát hành khắc phục sự cố mới chứa tất cả các hotfix và tất cả các bản sửa lỗi bảo mật đã được đưa vào bản phát hành khắc phục SQL Server 2012 trước đó. Chúng tôi khuyên bạn nên cân nhắc việc áp dụng bản phát hành bản sửa lỗi gần đây nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
2772858 Bản dựng SQL Server 2012 đã được phát hành sau khi SQL Server 2012 Service Pack 1 đã được phát hành
SQL Server 2012
Bản sửa lỗi cho sự cố này lần đầu tiên được phát hành trong bản Cập Nhật Cumulative 4. Để biết thêm thông tin về cách tải gói Cập Nhật tích lũy cho SQL Server 2012, hãy bấm số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2758687 Gói Cập Nhật tích lũy 4 cho SQL Server 2012Lưu ý Vì bản dựng được tích lũy, mỗi bản phát hành khắc phục sự cố mới chứa tất cả các hotfix và tất cả các bản sửa lỗi bảo mật đã được đưa vào bản phát hành khắc phục SQL Server 2012 trước đó. Chúng tôi khuyên bạn nên cân nhắc việc áp dụng bản phát hành bản sửa lỗi gần đây nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
2692828 Bản dựng SQL Server 2012 đã được phát hành sau khi SQL Server 2012 đã được phát hành
Trạng thái
Microsoft đã xác nhận đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".
Tham khảo
Để biết thêm thông tin về hàm CreateProcess, hãy đi tới trang web MSDN sau đây:
Thông tin chung về hàm CreateProcessĐể biết thêm thông tin về quy trình được lưu trữ xp_cmdshell, hãy đi tới trang web MSDN sau đây:
Thông tin chung về quy trình được lưu trữ xp_cmdshell Để biết thêm thông tin về một sự cố tương tự, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
315939 PRB: con thừa kế các núm điều khiển không mong đợi trong quá trình cuộc gọi thời gian