У кого-нибудь были проблемы с драйвером c #, поддерживаемым 10Gen - PullRequest
4 голосов
/ 27 декабря 2010

Я вижу кучу этих ошибок

"Существующее соединение было принудительно закрыто удаленным хостом"

в журнале Mongo, так как я переключился с драйвера c # с открытым исходным кодом на10Gen поддерживает один.Когда эта ошибка происходит, мои сайты перестают отвечать на запросы.У меня есть ощущение, что это связано с тем, как реализован пул соединений.См. Журнал ниже, я удаляю индексы из коллекции, удаляю все элементы, затем «воссоздаю» коллекцию, добавляя все нужные мне строки и затем повторно индексирую коллекцию.Через несколько мгновений после того, как все это сделано, я неизменно получаю сообщение об ошибке: «Существующее соединение было принудительно закрыто удаленным хостом»

[conn46] run command admin.$cmd { ismaster: 1 }
[conn46] query admin.$cmd ntoreturn:1 command: { ismaster: 1 } reslen:64 0ms
[conn46] query BtSearchCache.system.indexes reslen:1407 nreturned:7 0ms

drop indexes
[conn46] run command BtSearchCache.$cmd { deleteIndexes: "Board_41", index: "ix_QuickSearch" }
[conn46] CMD: dropIndexes BtSearchCache.Board_41
[conn46] dropIndexes: ix_QuickSearch not found
[conn46] query BtSearchCache.$cmd ntoreturn:1 command: { deleteIndexes: "Board_41", index: "ix_QuickSearch" } reslen:81 1ms

remove all data from collection
[conn46] remove  query: {} 1428ms

insert data (thousands of rows, omitted here)

[conn46] insert BtSearchCache.Board_41 0ms
[conn46] insert BtSearchCache.Board_41 0ms
[conn46] insert BtSearchCache.Board_41 1ms
[conn46] insert BtSearchCache.Board_41 0ms
[conn46] insert BtSearchCache.system.indexes 0ms

create indexes
[conn46] run command admin.$cmd { getlasterror: 1 }
[conn46] query admin.$cmd ntoreturn:1 command: { getlasterror: 1 } reslen:65 0ms

ERROR a few minutes later
[conn46] MessagingPort recv() errno:10054 An existing connection was forcibly closed by the remote host. 192.168.100.216:51111
[conn46] SocketException: 9001 socket exception
[conn46] end connection 192.168.100.216:51111

Ответы [ 2 ]

3 голосов
/ 04 января 2011

Продолжение: этот вопрос также задавался в группе пользователей mongodb в Google, и большая часть обсуждений происходила там.В итоге мы выяснили, что определенный запрос вызывал сбой сервера mongo (ошибка уже исправлена ​​в текущих версиях сервера), а драйвер C # просто сообщал об ошибках соединения, которые возникли.Это не было ошибкой в ​​драйвере C #, и драйвер не требовал исправления.Драйвер C # будет переподключен после восстановления сервера.

1 голос
/ 27 декабря 2010

Я не знаю, почему это так, но я знаю, что вам нужно перезапустить приложение, чтобы решить эту проблему.И эта ошибка всегда возникает при перезапуске mongodb.Поэтому после каждого перезапуска mongo db вам нужно перезапускать ваше приложение (я полагаю, вы используете iis).

Если вам известно о mongo vue , этот инструмент также не может подключиться к mongodb при перезапуске mongovue.

Надеюсь, что это поможет решить вашу проблему.

...