Chúng tôi đã gặp sự cố này một thời gian và tôi thực sự đang cố gắng che giấu những gì gây ra nó.Ứng dụng ASP cổ điển gặp phải SQL Server "Timeouts" và "SQL Server không tồn tại hoặc truy cập bị từ chối"
Một vài lần trong ngày, chúng tôi sẽ thấy các trang web bắt đầu ném "[Microsoft] [ODBC SQL Server Driver] Hết thời gian chờ", sau đó các trang bắt đầu ném "[Microsoft] [ODBC SQL Server Driver] [ DBNETLIB] SQL Server không tồn tại hoặc truy cập bị từ chối. "
Chúng tôi có nhiều ứng dụng khác nhau kết nối với máy chủ cơ sở dữ liệu này. Nó trung bình khoảng 2500 kết nối đồng thời xử lý trung bình 10.000 giao dịch mỗi giây. Hầu hết các ứng dụng của chúng tôi không có vấn đề gì, các vấn đề dường như chỉ xảy ra trên máy chủ web. (Có lẽ nó liên quan đến kết nối tổng hợp?)
Tôi không chắc chắn nên phân bổ vấn đề này. Các máy chủ SQL trong câu hỏi là bao la overpowered cho công việc mà nó làm, và được trang bị với mỗi bộ xử lý cấp giấy phép. Vì vậy, tôi không nghĩ rằng chúng tôi đang xem xét vấn đề cấp phép/hiệu suất.
Tôi nghĩ có thể có sự cố kết nối IP, vì vậy tôi đã thay đổi ConnectionString để sử dụng địa chỉ IP và chạy một số ping dài. Tôi nhận được 0 gói bị mất giữa máy chủ Web và máy chủ Cơ sở dữ liệu.
Các ASP chuỗi kết nối bây giờ trông như thế này:
Provider=MSDASQL; Driver={SQL Server}; Server=10.0.100.100; Database=DBName; UID=WebUserName; PWD=WebUserPassword; ConnectionTimeout=15; CommandTimeout=120;
Người dùng là một người dùng không nằm trong miền kết nối sử dụng xác thực SQL Server. Vì vậy, tôi không nghĩ rằng đó là một vấn đề liên quan đến miền. Tôi đã kiểm tra các tệp nhật ký máy chủ SQL và không tìm thấy bất kỳ điều gì tương ứng với các sự cố.
Tôi đã tìm thấy another stackoverflow question mô tả hành vi tương tự, nhưng không có độ phân giải.
Các chi tiết:
- Web Server: Windows 2003 Standard SP2, IIS 6.
- Database Server: Microsoft SQL Server 9.0.4035
Có ai nhìn thấy/giải quyết này loại vấn đề? Có ai có bất cứ đề nghị như nơi tôi nên xem xét tiếp theo?
Cảm ơn!
-Zorlack
EDIT
bất cứ ai có thể cho tôi biết những gì các thực hành tốt nhất là để thực hiện các truy vấn sql trong asp-tải cao cổ điển? Chúng tôi có muốn thử tận dụng kết nối tổng hợp không?
Trong cách nhìn vào mã, khá nhiều trông như thế này:
Set objCn = Server.CreateObject("ADODB.Connection")
objCn.Open(Application("RoConnStr"))
'do some stuff
objCn.Close
Set objCn = Nothing
Solution (theo lời khuyên của ScottE)
This article mô tả, với một tee, vấn đề của tôi. Tôi đã thực hiện thay đổi đăng ký và sau đó khởi động lại máy chủ.
Sự cố được giải quyết!
Cảm ơn, tôi cũng gặp sự cố này. Có vẻ như kết nối tổng hợp là một cá trích đỏ mặc dù. Khi tôi thử nghiệm có và không có kết nối tổng hợp trên, máy chủ vẫn tạo ra hàng nghìn kết nối TCP trong trạng thái TIME_WAIT. Có vẻ như hồ bơi kết nối cho phép bạn sử dụng lại các đối tượng kết nối, nhưng đôi khi chúng tạo ra nhiều kết nối TCP mới giữa các máy chủ. –