Xóa kết nối
Pooler kết nối sẽ xóa kết nối khỏi pool sau khi nó không hoạt động trong một thời gian dài hoặc nếu pooler phát hiện ra rằng kết nối với máy chủ đã bị cắt đứt.
Lưu ý rằng một kết nối bị đứt chỉ có thể được phát hiện sau khi cố gắng giao tiếp với máy chủ. Nếu một kết nối được tìm thấy không còn kết nối với máy chủ, nó được đánh dấu là không hợp lệ.
Các kết nối không hợp lệ chỉ bị xóa khỏi nhóm kết nối khi chúng bị đóng hoặc được thu hồi.
Nếu một kết nối tồn tại đến một máy chủ đã biến mất, kết nối này có thể được rút ra từ nhóm ngay cả khi nhóm kết nối không phát hiện ra kết nối bị cắt đứt và đánh dấu nó là không hợp lệ.
Đây là trường hợp bởi vì chi phí kiểm tra kết nối vẫn còn hiệu lực sẽ loại bỏ các lợi ích của việc có một pooler bằng cách gây ra một chuyến đi khứ hồi khác đến máy chủ.
Khi điều này xảy ra, lần thử đầu tiên sử dụng kết nối sẽ phát hiện ra rằng kết nối đã bị cắt đứt và một ngoại lệ được đưa ra.
Về cơ bản những gì bạn đang thấy là ngoại lệ trong câu cuối cùng.
Một kết nối được lấy từ nhóm kết nối, ứng dụng không biết rằng kết nối vật lý đã biến mất, một nỗ lực sử dụng được thực hiện theo giả định rằng kết nối vật lý vẫn còn đó.
Và bạn có được ngoại lệ của bạn.
Có một vài lý do phổ biến cho việc này.
- Máy chủ đã được khởi động lại, điều này sẽ đóng các kết nối hiện có.
Trong trường hợp này, hãy xem nhật ký Máy chủ SQL, thường được tìm thấy tại: C: \ Chương trình tệp \ Microsoft SQL Server \\ MSSQL \ LOG
Nếu dấu thời gian để khởi động là rất gần đây, thì chúng ta có thể nghi ngờ rằng đây là nguyên nhân gây ra lỗi. Cố gắng tương quan dấu thời gian này với thời gian ngoại lệ.
2009-04-16 11: 32: 15.62 Máy chủ ghi nhật ký Thông điệp máy chủ SQL trong tệp 'C: \ Chương trình tệp \ Microsoft SQL Server \ MSSQL.1 \ MSSQL \ LOG \ ERRORLOG'.
- Ai đó hoặc một cái gì đó đã giết SPID đang được sử dụng.
Một lần nữa, hãy xem nhật ký SQL Server. Nếu bạn tìm thấy một kill, hãy thử tương quan dấu thời gian này với thời gian ngoại lệ.
2009-04-16 11: 34: 09.57 spidXX Quá trình ID XX đã bị giết bởi tên máy chủ xxxxx, ID tiến trình máy chủ XXXX.
- Có một chuyển đổi dự phòng (ví dụ như trong thiết lập nhân bản), hãy xem nhật ký SQL Server.
Nếu có chuyển đổi dự phòng, hãy thử tương quan dấu thời gian này với thời gian ngoại lệ.
2009-04-16 11: 35: 12.93 spidXX Cơ sở dữ liệu được nhân đôi trong cơ sở dữ liệu đang thay đổi vai trò từ VÒNG PRINCIPAL và thành MIR MIRROR do lỗi chuyển đổi.