【问题标题】:mongo + java + too many open filesmongo + java + 打开的文件太多
【发布时间】:2011-06-29 22:05:21
【问题描述】:

我正在使用 mongo-java2.4jar 与 mongo 服务器进行通信。 在我的 webapp 中,我在任何需要的地方使用 mongo=new Mongo("serverIp","port"),一旦处理完成,我将使用 mongo.close() 关闭 mongo 连接。

但过了一段时间我得到以下异常:

java.net.SocketException:打开的文件太多

我认为当我关闭连接时,它并没有关闭套接字。 请帮我解决这个问题。

谢谢!

【问题讨论】:

  • 你在哪个平台上?使用它时,您应该查看打开的套接字。如果您使用的是 unix-ish 系统,请使用 netstat。查看有多少连接打开到它们所处的位置和状态。
  • 在linux上你可以看到windows上netstat -p打开的socket数量应该是类似的

标签: java mongodb mongo-java


【解决方案1】:

Mongo 类透明地执行连接池,通常每个 JVM 进程应该只有一个实例。请看http://api.mongodb.org/java/2.5-pre-/com/mongodb/Mongo.html

如果您大量创建此类的实例,我认为您将获得太多的连接,然后才能释放它们。只需在应用程序启动时为您的整个应用程序创建一个单例并将其放置在应用程序上下文中。仅在您的应用停止时调用 close。

干杯,

斯文

【讨论】:

  • 链接坏了:(
猜你喜欢
  • 2011-09-10
  • 2011-05-16
  • 1970-01-01
  • 2011-12-15
  • 2017-09-09
  • 1970-01-01
  • 2012-07-05
相关资源
最近更新 更多