我没有在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将解决此问题吗?
答案 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