MongoDB + Azure + Android: ошибка: com.mongodb.MongoException: не разговаривает с мастером и повторные попытки исчерпаны
Фон:
У меня есть наборы реплик MongoDB, работающие в облачной службе Azure + веб-роли с использованиеммонго-лазурная библиотека, Когда я впервые настроил свой проект Android для подключения к MongoDB / Azure, IO (чтение и запись) работало. Затем я разбил приложение из-за опечатки в моем жестко закодированном тесте JSONString, поэтому экземпляр Mongo не былне в состоянии правильно закрыть. После исправления этой проблемы JSONString я получил следующую ошибку (в трассировке стека) и нене может получить доступ к MongoDB / Azure. Возможно, неправильное закрытие соединения вызвало ошибку?
Вопрос:
Что именно означает эта ошибка? Почему бы немастер-экземпляр будет доступен?
E/AndroidRuntime: com.mongodb.MongoException: not talking to master and retries used up
Трассировка полного стека:
E/AndroidRuntime(6274): FATAL EXCEPTION: Thread-7108
E/AndroidRuntime(6274): Process: com.myproject.examplemongodb, PID: 6274
E/AndroidRuntime(6274): com.mongodb.MongoException: not talking to master and retries used up
E/AndroidRuntime(6274): at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:271)
E/AndroidRuntime(6274): at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:273)
E/AndroidRuntime(6274): at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:273)
E/AndroidRuntime(6274): at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:216)
E/AndroidRuntime(6274): at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:288)
E/AndroidRuntime(6274): at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:273)
E/AndroidRuntime(6274): at com.mongodb.DB.getCollectionNames(DB.java:400)
E/AndroidRuntime(6274): at com.myproject.examplemongodb.ActivityMain$1.run(ActivityMain.java:89)
E/AndroidRuntime(6274): at java.lang.Thread.run(Thread.java:841)
Заметки:
Я использую новейшиеМонго-Java-драйвер (в настоящее время 2.11.3).Я подключаюсь удаленно к базе данных (не локальной).Другаявопрос упоминает об этой ошибке, но OP использует разные драйверы, и его решение не работает для Android / Java.Возможное решение:
Похоже, что закрытие соединения из приложения позволило следующему запуску работать правильно. Но я'Я все еще беспокоюсь о возможности одновременных подключений, что я определенно хотел бы сделать.Обновление: я завернул вход в mongodb и завершил работу вокруг каждого из моих запросов, отправляемых на сервер, но ошибка все еще, кажется, периодически появляется. Пока что кажется, что запись работает каждый раз, а чтение работает только половину времени. Другая половина времени - опубликованная ошибка.