[原创]WebLogic无法正常启动,被管Server长期处于STARTING状态_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 5605 | 回复: 0   主题: [原创]WebLogic无法正常启动,被管Server长期处于STARTING状态        下一篇 
funny
注册用户
等级:中校
经验:1529
发帖:111
精华:4
注册:2013-3-13
状态:离线
发送短消息息给funny 加好友    发送短消息息给funny 发消息
发表于: IP:您无权察看 2014-2-17 11:33:46 | [全部帖] [楼主帖] 楼主

1.概述

在7月1日早,发现营业tuxedo系统故障异常,在解决故障当中重启了YYY系统的营业weblogic系统,在重启过程中发现无法正常启动,被管Server长期处于STARTING状态,在进行排查后发现应用文件内有大量应用日志存在,导致应用无法重新部署。

 2.故障分析


  2.1.重启整个域

在故障期间,第一个想到的问题是域是否有问题,在重启整个域后,其他被管服务可以正常启动,只有部署了OCS系统EJB应用的服务无法正常启动。

所得线程快照中异常信息如下:

被管服务ocsServ_162_01启动时线程快照:

"[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=7 tid=007bf400 nid=31 lwp_id=3013942 runnable [11080000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:134)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
- locked <59e60448> (a java.io.BufferedInputStream)
at weblogic.net.http.MessageHeader.isHTTP(MessageHeader.java:220)
at weblogic.net.http.MessageHeader.parseHeader(MessageHeader.java:143)
at weblogic.net.http.HttpClient.parseHTTP(HttpClient.java:431)
- locked <59e5da58> (a weblogic.net.http.HttpClient)
at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:359)
- locked <5cabb720> (a weblogic.net.http.HttpURLConnection)
at weblogic.net.http.HttpURLConnection.getResponseCode(HttpURLConnection.java:947)
at weblogic.deploy.service.datatransferhandlers.HttpDataTransferHandler.getDataAsStream(HttpDataTransferHandler.java:79)
at weblogic.deploy.service.datatransferhandlers.DataHandlerManager$RemoteDataTransferHandler.getDataAsStream(DataHandlerManager.java:153)
at weblogic.deploy.internal.targetserver.datamanagement.AppDataUpdate.doDownload(AppDataUpdate.java:39)
at weblogic.deploy.internal.targetserver.datamanagement.DataUpdate.download(DataUpdate.java:56)
at weblogic.deploy.internal.targetserver.datamanagement.Data.prepareDataUpdate(Data.java:97)
at weblogic.deploy.internal.targetserver.BasicDeployment.prepareDataUpdate(BasicDeployment.java:682)
at weblogic.deploy.internal.targetserver.BasicDeployment.stageFilesForStatic(BasicDeployment.java:725)
at weblogic.deploy.internal.targetserver.AppDeployment.prepare(AppDeployment.java:104)
at weblogic.management.deploy.internal.DeploymentAdapter$1.doPrepare(DeploymentAdapter.java:39)
at weblogic.management.deploy.internal.DeploymentAdapter.prepare(DeploymentAdapter.java:187)
at weblogic.management.deploy.internal.AppTransition$1.transitionApp(AppTransition.java:21)
at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:233)
at weblogic.management.deploy.internal.ConfiguredDeployments.prepare(ConfiguredDeployments.java:165)
at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:122)
at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)


上述线程快照显示0号线程在与AdminServer进行交互,读取应用文件,可见造成长期无法启动是无法完成初始化应用造成的。

从上述信息显示是由于初始话部署应用导致无法启动,后将将该OCS应用从该被管服务移除后,该服务可以正常启动。在进行应用程序的重部署后,无法激活更改,激活更改执行超过10分钟也无法激活成功。

  2.2.wlst脚本进行应用部署

由于管理控制台无法激活部署应用更新,为了明确问题原因使用wlst脚本工具重进行应用部署,在执行时间达到5-6分时,出现下列异常信息。

vxfs: msgcnt 2 mesg 001: V-2-1: vx_nospace - /dev/vg00/lvol8 file system full (2 block extent)
vxfs: msgcnt 4 mesg 001: V-2-1: vx_nospace - /dev/vg00/lvol8 file system full (2 block extent)
vxfs: msgcnt 6 mesg 001: V-2-1: vx_nospace - /dev/vg00/lvol8 file system full (2 block extent)Failed to deploy the application with status failed
Current Status of your Deployment:
Deployment command type: deploy
Deployment State       : failed


   Deployment Message     : java.io.IOException: 设备上已无空间 (errno:28)

Traceback (innermost last):
File "<console>", line 1, in ?
File "<iostream>", line 234, in deploy
WLSTException: Error occured while performing deploy : Target exception thrown while deploying application: Error occured while performing deploy :
Deployment Failed.Error occured while performing deploy


上述信息显示/dev/vg00/lvol8文件系统已满,而查看磁盘空间如下:

/dev/vg00/lvol8    10485760 3530008 6907440   34% /var


从上述信息显示/dev/vg00/lvol8文件系统挂载到/var目录下,而可用空间还剩余将近7G,但是却提示文件系统已满。

此时怀疑是否是应用文件过大导致,询问相关工作人员,表示该应用只有几百M大小。

  2.3.测试环境下部署

此时由亚联工程师XXX将应用部署到测试环境下,检查是否由于应用文件异常导致。

测试结果显示在测试环境应用部署无异常,可以直接部署并启动。

  2.4.重启主机

在下午3点时还未找到问题,进行主机重启,重启后进行重部署后发现还是无法部署应用成功。

  2.5.迁移应用

为了尽快恢复业务,亚联工程师将应用迁移到了同一主机的另外一套WebLogic系统,将应用上传并部署后可以正常启动。

将原系统的所有��源重新进行部署后,营业恢复。

此时可以确定该问题和主机配置没有直接关系。

  2.6.重新建立域

为了探查本次故障的根本原因,在原系统用户下建立新的域,在将配置配好后,发现和之前的表现一样,无法启动或者无法重新部署该应用。

而是用脚本工具部署报错与上述一样。

此时怀疑是否是主机对该用户进行了文件系统的使用限制。在联系主机工程师后发现并未出现采取这种限制。

  2.7.应用文件存在大量日志

在营业恢复后,由亚联工程师XXX发现原系统应用文件内存在大量日志文件,将日志文件进行移除后,发现可以正常部署应用并重新启动被管服务。

 3.故障原因

在故障期间所作的各种尝试均显示无法正常部署应用,激活更改时间长,而且并无异常报出。

造成故障的根本原因是应用文件内存在了大量的日志文件(大约50G),而应用目录内的文件会被全部拷贝到被管服务的缓存当中,防止由于AdminServer的宕机导致无法响应应用请求。

在被管服务启动时,从AdminServer处下载应用目录内的所有文件,但是由于日志太大导致长时间的下载文件,导致无法正常启动。

而使用脚本工具上传应用文件时会在/var/tmp创建临时文件,而由于日志文件过大,导致在/var/tmp创建临时文件失败,导致wlst脚本部署应用失败。

相关建议:

在与亚联工程师XXX进行交流时,发现现有的很多系统会将应用日志文件定向到应用执行文件目录内,建议将所有的日志文件从应用文件内移除,并重新定向到其他路径,防止再次出现该类异常。

该贴被funny编辑于2014-2-18 11:23:10



赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论