java - 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 建立连接。
解决方案
推荐阅读
- material-table - reactjs: material-table: how to do serverside validation when adding or editing
- mxnet - How to reset the mxnet sequential number?
- python - Unable to run Discord bot command in Heroku
- oracle - How to redirect from on url to another url in Oracle Http Server (OHS)
- javascript - 硬刷新后删除 sessionStorage
- tensorflow - CNN中的测试精度范围很大
- google-cloud-platform - Bigquery - 将月份提取为 2 位数字
- vue.js - 为什么即使我为 v-model 分配了一个字符串,我的 v-select 也没有任何默认值
- solana - 如何使用环境变量运行命令?(solana 验证器)
- mysql - 新物品在游戏中无法正确显示