我正在使用 mongo-java2.4jar 与 mongo 服务器进行通信。在我的 webapp中,我mongo=new Mongo("serverIp","port")
在需要的地方使用,一旦处理完成,我将使用mongo.close()
.
但过了一段时间我得到以下异常:
java.net.SocketException:打开的文件太多
我认为当我关闭连接时,它并没有关闭套接字。请帮我解决这个问题。
谢谢!
我正在使用 mongo-java2.4jar 与 mongo 服务器进行通信。在我的 webapp中,我mongo=new Mongo("serverIp","port")
在需要的地方使用,一旦处理完成,我将使用mongo.close()
.
但过了一段时间我得到以下异常:
java.net.SocketException:打开的文件太多
我认为当我关闭连接时,它并没有关闭套接字。请帮我解决这个问题。
谢谢!
Mongo 类透明地执行连接池,通常每个 JVM 进程应该只有一个实例。请看http://api.mongodb.org/java/2.5-pre-/com/mongodb/Mongo.html
如果您大量创建此类的实例,我认为您将在释放它们之前获得太多连接。只需在应用程序启动时为您的整个应用程序创建一个单例并将其放置在应用程序上下文中。仅在您的应用停止时调用 close。
干杯,
斯文