2016-06-09 200 views
0

在Jboss-as-7.1.1.Final中,我没有自动取消部署EAR。EAR在jboss-as-7.1.1.Final中自动取消部署。最终

我可以看到这些日志:

ERROR org.apache.tomcat.util.net.JIoEndpoint$Acceptor [run] Socket accept failed: java.net.SocketException: Too many open files 

WARN com.kpn.tie.ejbs.dao.webservice.tt.WebServiceProcessor [invoke] WebService unavailable. The request could not be completed due to technical problems. ; nested exception is:  java.net.SocketException: Too many open files 

有人能告诉我的这种行为根源,也建议的解决方案这一点。

解决方法是,在特定的时间间隔重新启动jboss将解决此问题?

回答

0

java.net.SocketException异常:打开的文件太多

在Linux上,你可以增加同时打开的文件数与

ulimit -n 2048 

这将使2048在开放同时在本届会议上。该命令应该插入到会话配置中(例如.bashrc或类似的,取决于你使用的shell)还是在JBoss启动脚本中。

要显示当前限制可以使用

ulimit -n 
1

原因可能是应用程序超载或文件描述符设置过低。由于这个原因,JVM无法打开任何新文件句柄,因此您收到传入请求的Socket accept failed。 经过一段时间Deployment-Scanner进场(默认5秒),并尝试检查部署文件夹,这是不可能的,因为它无法打开任何文件句柄。所以它会变得困惑并停止部署的应用程序。

首先解决可能是: 停用扫描仪,使其只在启动时检查一次或删除部署扫描子系统和只使用CLI部署。

解决方法二可能是: 增加文件处理程序限制(打开的文件大小)