posts - 13,  comments - 4,  trackbacks - 0

WebLogic9.2拒绝访问的异常分析及解决方案
之前分析不对,特此改正

一、 故障概述

近三个月来,已有3次发生业务自动开通系统执行平台维护系统访问异常,所有页面拒绝访问并提示:

Connection rejected, the server is in the RUNNING state. Starting service weblogic.application.internal.BackgroundDeploymentService$WaitForBackgroundCompletion, 110 of 112. Last service weblogic.deploy.service.internal.adminserver.HeartbeatService took 2ms.

多点施工管理平台维护系统同时出现上述问题,部署这两个维护系统的WebLogic服务器服务异常。

该故障使工单查询、系统监控、失败工单转移和受理等功能无法使用。对业务工单的自动执行无影响,所有执行服务器正常。

每次均是采用强制停止服务后重启的方式恢复服务。

二、 故障描述

访问业务自动开通系统执行平台维护系统和多点施工管理平台维护系统均报以下异常:

Connection rejected, the server is in the RUNNING state. Starting service weblogic.application.internal.BackgroundDeploymentService$WaitForBackgroundCompletion, 110 of 112. Last service weblogic.deploy.service.internal.adminserver.HeartbeatService took 2ms.

此时,网络状况、设备状态、服务器操作系统均正常;WebLogic应用服务器异常,其控制台无法正常访问,显示报告同业务自动开通系统执行平台维护系统,且不能正常停止WebLogic服务。

经查,WebLogic应用服务器在记录以下日志后无法正常访问:

####<2011-8-13 上午104615 CST> <Critical> <Server> <tfh-node2> <TFHWEB> <DynamicListenThread[Default]> <<WLS Kernel>> <> <> <1313203575118> <BEA-002616> <Failed to listen on channel "Default" on 132.60.5.29:8080, failure count: 2, failing for 1 seconds, java.net.SocketException: 无效的自变量>

####<2011-8-13 上午104659 CST> <Critical> <Server> <tfh-node2> <TFHWEB> <DynamicListenThread[Default]> <<WLS Kernel>> <> <> <1313203619270> <BEA-002617> <Attempting to close and reopen the server socket on on channel "Default" on 132.60.5.29:8080.>

####<2011-8-13 上午104709 CST> <Notice> <Server> <tfh-node2> <TFHWEB> <DynamicListenThread[Default]> <<WLS Kernel>> <> <> <1313203629287> <BEA-002614> <Reopening channel "Default" on 132.60.5.29:8080.>

####<2011-8-13 上午104709 CST> <Notice> <Server> <tfh-node2> <TFHWEB> <DynamicListenThread[Default]> <<WLS Kernel>> <> <> <1313203629787> <BEA-002615> <After having failed to listen, the server is now listening on channel "Default" on 132.60.5.29:8080.>

之后所有访问均记录如下日志:

####<2011-8-13 上午104709 CST> <Notice> <Server> <tfh-node2> <TFHWEB> <DynamicListenThread[Default]> <<WLS Kernel>> <> <> <1313203629787> <BEA-002615> <After having failed to listen, the server is now listening on channel "Default" on 132.60.5.29:8080.>

 

三、 处理过程和解决方法

使用正常停止WebLogic服务的命令无法停止服务,强行killWebLogic服务进程,并按照正常流程启动WebLogic服务

    故障分析和建议

1、故障的原因分析

此故障是由WebLogic9.2bug导致,Oracle官方解释如下:

Solaris 9 或更高版本上使用 JDK 1.5 时,半闭套接口上的任何设置操作都会引发 SocketException。这延迟了服务器在相同端口上接受新连接,而且如果故障间的最大补偿时间达到最大值,还会导致回收服务器套接口。

需要安装CR283953补丁解决该BUG

以下为Oracle官方对CR283953补丁的英文解释:

http://docs.oracle.com/cd/E13222_01/wls/docs100/issues/known_resolved.html

On Solaris 9 or later, with JDK 1.5, any set operation on a half-closed socket throws a SocketException. This delayed the server in accepting new connections on the same port and also caused the server socket to be recycled if the maximum backoff time between failures reaches its maximum.

Solution:

WebLogic Server no longer throws an exception in connection with a set operation on half-closed sockets.

 

2、改进措施和计划

1.WebLogic服务编写守护程序,定时查看WebLogic服务状态,若出现故障则重启WebLogic服务。守护程序采用crontab+shell脚本实现,参见

扫描日志重启WebLogic服务shell脚本

2.获取CR283953补丁,并安装。BEA已被oracle收购,补丁已不能免费下载,具体询oracle客服。

 

 

posted on 2011-08-16 17:31 身在半空 阅读(3612) 评论(3)  编辑  收藏

FeedBack:
# re: Solaris10下WebLogic9.2服务异常 java.net.SocketException: 无效的自变量
2011-08-17 10:39 | 皮舞
WebLogic9.2这个方案不错。  回复  更多评论
  
# re: Solaris10下WebLogic9.2服务异常 java.net.SocketException: 无效的自变量
2011-08-18 15:35 | jinfh
当时看你weblogic server侦听端口的状态了吗? 如果wls被kill掉以后,8080端口通过netstat还能list出来的话,再次启动weblogic肯定无法成功,因为端口已经被占用。

记得tcp/ip有个参数,可以忽略这个已经占用的端口,可以查一查  回复  更多评论
  
# re: Solaris10下WebLogic9.2服务异常 java.net.SocketException: 无效的自变量
2011-08-18 17:36 | 身在半空
没有查看8080端口状态,但是可以正常启动应该是没有被占用。等待一段时间端口会自动释放的,办法是有点笨。@jinfh
  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 

<2011年8月>
31123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用链接

留言簿

随笔档案

文章档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜