Oracle Weblogic Server:java.net.SocketException“打开的文件太多”

时间:2014-01-09 16:14:59

标签: java oracle web-services ssl weblogic

使用webservice调用加载服务器时出现以下异常:

<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时,我会收到此错误。

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

谢谢!

2 个答案:

答案 0 :(得分:0)

BEA-002616

严重:无法在listenAddress上侦听频道“频道”:端口,失败计数:失败1,失败秒数秒,e3

描述

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

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

动作

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

请查看以下链接

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

答案 1 :(得分:0)

Oracle融合中间件活动在类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