weblogic中java项目日志文件_weblogic日志报错too many open files

很久以前的问题了:

1.日志报错too many open files;

2.诊断思路:查看该进程实际打开的文件数是多少?用lsof命令查看domain对应的进程号;

lsof -p 2744 |wc -l查看总的大小;以及可以看到具体打开的那些文件;

3.检查当前的系统配置

ulimit -a

但是刚才做的一切都显示配置没有问题,但是进程打开了1024个文件,却报了打开文件个数台多的问题;

在网上找到以下的文章,貌似该问题的原因:

weblogic Too many open files 问题

java.io.FileNotFoundException: /app/rms/release/web/update/Rmt_krUpfiles.ini (Too many open files)

at java.io.FileInputStream.open(Native Method)

at java.io.FileInputStream.(FileInputStream.java(Compiled Code))

at weblogic.utils.classloaders.FileSource.getInputStream(FileSource.java(Compiled Code))

at weblogic.servlet.FileServlet.sendFile(FileServlet.java(Compiled Code))

at weblogic.servlet.FileServlet.service(FileServlet.java(Compiled Code))

at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))

at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java(Inlined Compiled Code))

at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java(Compiled Code))

at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java(Inlined Compiled Code))

at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java(Compiled Code))

at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java(Compiled Code))

at weblogic.security.service.SecurityManager.runAs(SecurityManager.java(Inlined Compiled Code))

at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java(Compiled Code))

at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java(Compiled Code))

at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java(Compiled Code))

at weblogic.kernel.ExecuteThread.run(ExecuteThread.java(Compiled Code))

>

####<2008-7-1 10时15分05秒 GMT+08:00>

检查domain的启动脚本,发现domain启动时首先要执行以下这个脚本,确定一些内存和系统参数配置;

由于内存参数在启动脚本中单独给出,所以才没有暴露出问题。但是没有单独给出打开文件的限制,所以需要在那个脚本当中修改;

不要启用那个过程设置打开文件的限制;

对那一段的结果进行测试,结果印证了此时的限制是1024

#!/bin/sh

echo 'test'

resetFd() {

if [ ! -n "`uname -s |grep -i cygwin || uname -s |grep -i windows_nt || \

uname -s |grep -i HP-UX`" ]

then

maxfiles=`ulimit -H -n`

if [ "$?" = "0" -a "${maxfiles}" != 1024 ]; then

if [ `expr ${maxfiles} : '[0-9][0-9]*$'` -eq 0 ]; then

maxfiles=1025

echo "set 1025"

fi

if [ "${maxfiles}" -lt 1024 ]; then

ulimit -n ${maxfiles}

echo "set to unknow"

else

ulimit -n 1024

echo "set to 1024"

fi

fi

fi

}

resetFd

> sh test1.sh

test

set to 1024

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值