Монго + Java + слишком много открытых файлов

Я использую mongo-java2.4jar для связи с сервером mongo. В моем веб-приложении я использую mongo=new Mongo("serverIp","port") где когда-либо это требуется, и когда обработка завершена, я закрываю соединение Монго, используя mongo.close(),

Но через некоторое время я получаю следующее исключение:

java.net.SocketException: слишком много открытых файлов

Я думаю, что когда я закрываю соединение, оно не закрывает сокеты. Пожалуйста, помогите мне разобраться с этой проблемой.

Спасибо!

1 ответ

Решение

Класс Mongo прозрачно выполняет пул соединений, и вы, как правило, должны иметь только один экземпляр для каждого процесса JVM. Пожалуйста, посмотрите на http://api.mongodb.org/java/2.5-pre-/com/mongodb/Mongo.html

Если вы интенсивно создаете экземпляры этого класса, я думаю, вы приобретете слишком много соединений, прежде чем они могут быть освобождены. Просто создайте синглтон при запуске приложения для всего приложения и поместите его в контекст приложения. Звоните близко только тогда, когда ваше приложение останавливается.

Ура,

Sven

Другие вопросы по тегам