Oracle Weblogic Server: java.net.SocketException "Too many open files"



使用 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),它可以正常工作,但是当使用HTTP/SSL时,我会收到此错误。

这里有人知道我能做些什么来解决这个问题吗?

谢谢!

BEA-002616

严重:无法侦听侦听地址:端口上的通道"通道",故障计数:失败 1,失败 2 秒,e3

描述

服务器侦听

器将在短暂延迟后重试侦听。原因

服务器在尝试接受客户端连接时出现异常。它将尝试退缩以帮助恢复。

行动

需要增加打开文件描述符数量的操作系统限制(FD 限制)。调整可能有助于服务器接受更多客户端连接的操作系统参数(例如,TCP 接受积压日志)。

请查看以下链接

http://modj.org/home/aktueles/bea-002616-failed-to-listen-on-channel-on-listenaddressport/a7e2db8254aee4603e4ecaf98a43e85e.html

Oracle Fusion Middleware active 在类 Unix 操作系统上使用文件的描述符。您应该为用户(启动 WebLogic Server 的用户)设置打开文件描述符限制:

将以下信息添加到文件/etc/security/limits.conf 中:

weblogic soft nproc 32768
weblogic hard nproc 32768
weblogic soft nofile 32768
weblogic hard nofile 32768

(WebLogic是您的用户),比使用WebLogic用户重新登录并测试打开文件描述符限制:

$ ulimit -n

最新更新