1.现象表述:
服务器不定期的一周或二周当机一次,当时操作系统正常。
2.基本配置
weblogic版本:8.1.3
线程数:25
连接池:3个数据源,连接数最小、最大在2-25个(业务数据源为初始值12个)
oracle:rack双IP地址
操作系统:window2003 8cpu
网络状态:服务器与数据库物理隔离(网闸),有明细的安全机制,可能会影响服务器与Oracle数据库连接的稳定性。
jdk: sun jdk142
3.检查过程
a.在当机的时间点前,检查domain,server,控制台日志,没发现明显异常,经过日志检查,经常报bea-10118警告,该警告的原因是request的getOutputStream和getParamter两个方法不能同时使用。
b.weblogic是产品模式,启动内存为512-1024M
c.控制台的监控:正常使用线程6-8个左右,内存在低位浮动,正常。
d:没发现有计划任务。
4.原因分析:
该系统已经运行3年,基本可以排除程序上的问题。
原因1:一般繁忙时候weblogic当机,经过配置参数线程数25个明显不够,可能超过线程数会引起weblogic当机。
原因2:bea-10118警告多次出现,检查一下代码,将这个问题解决掉。(是否跟网络有关系,其他单位的服务器是否出现同样的情况)。
5.解决措施:
措施:将最大线程数调整到100
调整连接池初始参数(暂进没做)
暂时还不能说明就是线程引发weblogic当机,再过几周看效果!
后记:
上述措施并没有解决问题,隔后的一个星期继续出续当机现象,偶尔一次查询oracle的v$session表,连接数比weblogic连接池数量少太多,从而考虑weblogic的连接池在使用网闸进行连接时,有可能造成连接失败(数据库自动关闭空闲连接或防火墙关闭连接)。而在连续申请都不成功(有可能自动关闭的连接在网闸内的连接名柄还在,没关闭,所以申请不成功)的基础上,造成weblogic当机。
解决措施:
1 设置测试频率,不让数据库或防火墙断掉连接。
2 设置weblogic自动重启时间。[@more@]
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11419868/viewspace-1022739/
,如需转载,请注明出处,否则将追究法律责任。