在使用 web 服务调用加载服务器时出现以下异常:
<2013-nov-19 kl 0:23 CET> <Critical> <Server> <BEA-002616> <Failed to listen on
channel "Default" on 10.39.21.109:28404, failure count: 1, failing for 0 seconds,
java.net.SocketException: Too many open files (errno:24)>
使用的机器是 HP-UX。
如果我查看应用程序已打开的这些文件(使用 lsof),我可以看到有一个尚未关闭的 Web 服务连接。
java 19290 xxxx 2102u IPv4 0xe00000038b2df680 0t2534
TCP u30427.xx.yy:63565->u30436.xx.yy:36693 (CLOSE_WAIT)
这些连接会随着时间的推移而增加,并达到允许的最大文件数,因此会抛出“打开的文件太多”。
奇怪的是,如果我使用 HTTP(没有 SSL)它工作正常,但是当使用 HTTPS/SSL 时我得到这个错误。
这里有没有人知道我可以做些什么来解决这个问题?
谢谢!
最佳答案
BEA-002616
严重:无法在 listenAddress:port 上监听 channel “channel”,失败计数:fails1,失败 secs2 秒,e3
描述
服务器监听器将在短暂延迟后重试监听。 原因
服务器在尝试接受客户端连接时出现异常。它将尝试退避以帮助恢复。
Action
需要增加操作系统对打开文件描述符数量的限制(FD 限制)。调整可能有助于服务器接受更多客户端连接的操作系统参数(例如 TCP 接受后备日志)。
请检查以下链接
关于java - Oracle Weblogic 服务器 : java.net.SocketException "Too many open files",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21025489/