EAR会在jboss-as-7.1.1.Final中自动取消部署

时间:2016-06-09 07:38:02

标签: java unix jboss

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

我可以看到这些日志:

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将解决此问题吗?

2 个答案:

答案 0 :(得分:1)

原因可能是应用程序过载或文件描述符设置过低。因此, filterable.ui = function (element) { element.kendoNumericTextBox({ format: 'n2', decimals: 2 }); }; 无法打开任何新文件句柄,因此您收到传入请求的JVM。 片刻之后Socket accept failed开始播放(默认为5秒)并尝试检查部署文件夹,这是不可能的,因为它无法打开任何文件句柄。因此它会混淆并停止部署的应用程序。

第一个解决方案可能是: 取消激活扫描程序,使其仅在引导期间检查一次或删除部署扫描程序子系统,并仅使用Deployment-Scanner进行部署。

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

答案 1 :(得分:0)

  

java.net.SocketException:打开文件太多

在Linux上,您可以使用

增加同时打开的文件数
import django_tables2 as tables
import itertools

class CountryTable(tables.Table):
    counter = tables.Column(empty_values=(), orderable=False)

    def render_counter(self):
        self.row_counter = getattr(self, 'row_counter', itertools.count())
        return next(self.row_counter)

这将允许ulimit -n 2048 在当前会话中同时打开。该命令应插入会话配置(例如.bashrc或类似的,取决于您使用的shell)或JBoss启动脚本中。

要显示当前限制,您可以使用

2048