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

大多数原因是因为程序没有关闭打开的资源连接, 如RMI、数据库等连接才导致的。 当然也有可能能同时有超过Linux本身默认的文件打开数。

一、 先从Linux设置入手

(1)
ulimit -a
(查看资源设置情况)

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 30525
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

open files默认是1024

为了使服务器重启设置还能生效, 采取永久改变的方法。

vim /etc/security/limits.conf

在文档最后添加

* soft nofile 65535
* hard nofile 65535

(2) vim  /etc/pam.d/login

在文档最后添加

session required /lib/security/pam_limits.so

二、 程序

记得在finally语句块里面关闭资源连接, 如:

finally{
			if (connector != null) {
				connector.close();
			}

		}

时间: 2024-10-06 21:08:29

java.net.SocketException: 打开的文件过多的相关文章

org.apache.tomcat.util.net.NioEndpoint,打开的文件过多

错误信息: 27-Mar-2019 04:20:20.430 严重 [http-nio-8100-Acceptor-0] org.apache.tomcat.util.net.NioEndpoint$Acceptor.run Socket accept failed java.io.IOException: 打开的文件过多 at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method) at sun.nio.ch.ServerSocket

打开文件过多

问题现象: 日志出现大量“打开文件过多”异常信息 问题分析: 通过网上查询,发现是由于系统参数设置问题造成,因为应用并发量大,http连接多了,随之socket的消耗也多了,socket文件描述符也是Linux系统文件描述符的一种,Linux操作系统对此也有限制,所以需要调大参数fs.max-file和/etc/security /limits.conf的soft nofile和hard nofile值 解决方案: 通过设置以上参数,加大数值,重启应用. 问题再现: 设置了以上参数后,还以为问题

Android(java)学习笔记143:android提供打开各种文件的API接口:setDataAndType

android 打开各种文件(setDataAndType) private void openFile(File file){ Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //设置intent的Action属性 intent.setAction(Intent.ACTION_VIEW); //获取文件file的MIME类型 String type = getMIMEType(file)

FTP上传文件,报错java.net.SocketException: Software caused connection abort: recv failed

FTP上传功能,使用之前写的代码,一直上传都没有问题,今天突然报这个错误: java.net.SocketException: Software caused connection abort: recv failed at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:152) at java.net.SocketIn

使用bat一键打开java、jar、py文件

直接运行jar是没有命令行窗口的,如果想有命令行窗口,一般来说是要 win+r 运行cmd,定位到所在目录,然后用命令行执行 java -jar xxx.jar 而对于python,打开py文件也是麻烦,默认是用IDLE加载了这个源代码,然后F5运行,但也有另外一种方法,命令行,定位到所在目录,python xxx.py 同样都是麻烦,不过我们可以用批处理bat来搞 新建一个txt,名字随意,打开,内容复制以下 1 echo off ::关闭echo,就是命令行不显示返回信息 2 cd %~dp

[Eclipse] eclipse中打开xml文件,使用ctrl+鼠标左键无法跳转至Java源文件【待解决】

eclipse中打开xml文件,使用ctrl+鼠标左键无法跳转至Java源文件: 1. 设置eclipse ctrl + 左键打开源文件代码,如下图,设置都正常 2. 在网上找了很多种办法,均失败,在stackoverflow找到答案,但验证失败: http://stackoverflow.com/questions/18867178/ctrlclick-aka-hyperlink-on-xml-not-working?rq=1 Install WTP XML Editor plugin Ins

[转载]Java开发在线打开编辑保存Word文件

Java调用logo是"P"图标的第三方插件,实现在线编辑保存Word文件(以jsp调用为例,支持SSM.SSH.SpringMVC等流行框架) 工具/原料 Eclipse或MyEclipse等java IDE环境 logo是"P"图标的第三方插件 方法/步骤 下载logo是"P"图标的第三方插件开发包:百度一下PageOffice,从官网下载   以Myeclipse为例,新建一个Web Project,比如:wordonline   解压开发

通过java打开jar 文件

JAR文件是许多信息经过封装后形成的捆绑体.也就是一个压缩文件. JAR 文件格式提供了许多优势和功能,其中很多是传统的压缩格式如ZIP或者RAR所没有提供的,JAR文件 还用于安排和封装库.组件和插件过程,并可被像编译器和 JVM 这么的工具直接利用.安装java软件就可以打开,具体方法是右键-打开方式-选择程序-找到装的java即可. 原文地址:https://www.cnblogs.com/benpao1314/p/10265977.html

高并发下载tomcat下的文件时,发生java.net.SocketException: Connection reset解决方案

(1)问题产生:使用500个线程并发下载tomcat工程中的一个文件时,服务器出现java.net.SocketException: Connection reset异常, 客户端出现connect timeout: (2)分析认为是服务器连接超过最大并发数而重置,导致客户端连接超时: 于是配置tomcat的配置文件,修改最大并发连接数: 在/home/econf/apache-tomcat-6.0.20/conf目录下,修改server.xml在<Connector port="8080