首页 > 解决方案 > Java Glassfish - 打开的文件太多

问题描述

我在 glassfish 服务器上运行后端部署,我的应用程序的前端在需要一些数据时发送 REST 请求。此外,后端连接到 Mongo 数据库:

FRONTEND <----rest---->BACKEND<---->DB 。

我的后端通过 glassfish 5 部署在 Ubuntu 虚拟机上,前端运行在 Apache Web 服务器上。

使用一段时间后,我们可以说在 5 分钟后,尤其是当多个用户使用该应用程序时,glassfish 服务器在尝试访问数据库时大部分时间都崩溃并出现错误:java.net.SocketException: Too many open files.

当然,我已经用谷歌搜索过这个问题,并且有很多建议只是为了增加打开文件的数量,而现在1024.

我现在的问题是,这些打开的文件是什么,即使我增加它们,一段时间后也不会达到限制。是增加唯一的解决方案还是我的编码可能有错误?提前致谢。

编辑: 这是我的 ubuntu 机器的 netstat 输出的片段:

tcp        0      0 localhost:27017         localhost:44856         ESTABLISHED -               
tcp        0      0 localhost:27017         localhost:44980         ESTABLISHED -               
tcp        0      0 localhost:27017         localhost:44794         ESTABLISHED -               
tcp        0      0 localhost:27017         localhost:45132         ESTABLISHED -               
tcp        0      0 localhost:27017         localhost:44764         ESTABLISHED -               
tcp        0      0 localhost:27017         localhost:44814         ESTABLISHED -               
tcp        0      0 localhost:27017         localhost:44756         ESTABLISHED -               
tcp        0      0 localhost:27017         localhost:44374         ESTABLISHED -               
tcp        0      0 localhost:27017         localhost:44926         ESTABLISHED -               
tcp        0      0 localhost:27017         localhost:45040         ESTABLISHED -               
tcp        0      0 localhost:27017         localhost:45276         ESTABLISHED -               
tcp        0      0 localhost:27017         localhost:44858         ESTABLISHED -               
tcp        0      0 localhost:27017         localhost:45052         ESTABLISHED -               
tcp        0      0 localhost:27017         localhost:45310         ESTABLISHED -               
tcp        0      0 localhost:27017         localhost:44806         ESTABLISHED -               
tcp        0      0 localhost:27017         localhost:44840         ESTABLISHED -               
tcp        0      0 localhost:27017         localhost:45046         ESTABLISHED -               
tcp        0      0 localhost:27017         localhost:45222         ESTABLISHED -               
tcp        0      0 localhost:27017         localhost:45160         ESTABLISHED -               
tcp        0      0 localhost:27017         localhost:44990         ESTABLISHED -               
tcp        0      0 localhost:27017         localhost:44914         ESTABLISHED -               
tcp        0      0 localhost:27017         localhost:45274         ESTABLISHED -               
tcp        0      0 localhost:27017         localhost:44998         ESTABLISHED -               
tcp        0      0 localhost:27017         localhost:44788         ESTABLISHED -               
tcp6       0      0 localhost:45176         localhost:27017         ESTABLISHED 5204/java       
tcp6       0      0 localhost:45136         localhost:27017         ESTABLISHED 5204/java       
tcp6       0      0 localhost:45058         localhost:27017         ESTABLISHED 5204/java       
tcp6       0      0 localhost:44926         localhost:27017         ESTABLISHED 5204/java       
tcp6       0      0 localhost:44968         localhost:27017         ESTABLISHED 5204/java       
tcp6       0      0 localhost:45190         localhost:27017         ESTABLISHED 5204/java       
tcp6       0      0 localhost:45050         localhost:27017         ESTABLISHED 5204/java       
tcp6       0      0 localhost:44886         localhost:27017         ESTABLISHED 5204/java       
tcp6       0      0 localhost:45308         localhost:27017         ESTABLISHED 5204/java       
tcp6       0      0 localhost:44978         localhost:27017         ESTABLISHED 5204/java       
tcp6       0      0 localhost:45086         localhost:27017         ESTABLISHED 5204/java       
tcp6       0      0 localhost:45198         localhost:27017         ESTABLISHED 5204/java       
tcp6       0      0 localhost:44922         localhost:27017         ESTABLISHED 5204/java       
tcp6       0      0 localhost:44938         localhost:27017         ESTABLISHED 5204/java       
tcp6       0      0 localhost:45020         localhost:27017         ESTABLISHED 5204/java       
tcp6       0      0 localhost:44896         localhost:27017         ESTABLISHED 5204/java       
tcp6       0      0 localhost:44830         localhost:27017         ESTABLISHED 5204/java       
tcp6       0      0 localhost:44960         localhost:27017         ESTABLISHED 5204/java       
tcp6       0      0 localhost:44776         localhost:27017         ESTABLISHED 5204/java

如您所见,有一种方法可以与 mongo 数据库 localhost:27017 建立连接。

标签: javamongodbglassfishsocketexception

解决方案


推荐阅读