2012-03-07 36 views
5

Tại sao ngoại lệ sau đây xảy ra từ trình điều khiển Mongo C# trong khi nhận được đối tượng từ máy chủ MongoDB?Hết thời gian chờ đợi cho một MongoConnection

"Hết giờ chờ kết nối Mongo."

Có cách nào để đặt thời gian chờ kết nối này ở đâu đó hoặc khắc phục sự cố này không?

Trả lời

4

Bạn có thể sử dụng socketTimeoutMS trong chuỗi kết nối để tăng thời gian chờ.

Ví dụ:

mongodb://localhost/myCollection?socketTimeoutMS=60000 
+0

Lỗi là về kết nối, vì vậy đối số 'connectTimeoutMS' phù hợp hơn ở đây. 'socketTimeoutMS' là theo mặc định vô cùng nên đề xuất của bạn không cải thiện bất cứ điều gì: http://blog.mongolab.com/2013/10/do-you-want-a-timeout/. –

1

Bạn có lẽ chạy vào vấn đề này:

https://jira.mongodb.org/browse/CSHARP-406

Vấn đề này đã được cố định và sửa chữa sẽ được bao gồm trong phiên bản 1.4 của trình điều khiển C# (sắp ra mắt).

Trong khi đó, phương pháp tốt nhất của bạn là để tăng kích thước của hồ bơi kết nối từ giá trị mặc định là 100, trong đó có thể dễ dàng thực hiện trên chuỗi kết nối:

MongoDB: // localhost/maxpoolsize = 200

Làm cho kích thước hồ bơi kết nối đủ lớn để có nhiều kết nối hơn bạn có chuỗi chạy (hoặc ít nhất đủ kết nối để đáp ứng tất cả các chuỗi cần kết nối cùng một lúc).

+0

Điều đó xảy ra vì có một tham chiếu đệ quy trong biểu đồ đối tượng và nó tiếp tục đệ quy và cố kéo từ máy chủ và nó bị lỗi. Tôi đã phải đi qua các dấu vết ngăn xếp bằng cách tăng thời gian chờ để theo dõi stack đủ hiển thị. Thay đổi thuộc tính được liệt kê ở trên tăng thời gian chờ. Tôi sẽ nhớ maxpoolsize. Nó sẽ trở nên hữu ích. – iefpw

Các vấn đề liên quan