




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 / 5 文档可自由编辑打印WEBLOGIC 常规服务器挂起问题问题描述问题描述在出现以下情况时怀疑服务器挂起:服务器不响应新的请求。 请求超时。 请求处理的时间越来越长(其最终结果可能是挂起)。 通常,服务器挂起不会表现为服务器崩溃,但服务器挂起之后可能会崩溃。 故障排除故障排除请注意,并非下面所有任务都需要完成。有些问题仅通过执行几项任务就可以解决。 快速链接:快速链接: 为什么发生此问题? 服务器挂起的可能原因 基本步骤 已知的 WebLogic Server 问题 收集 Thread Dump Thread Dump 分析 为什么发生此问题?为什么发生此问题?服务器挂起有多种原因。一
2、般而言,服务器挂起是因为缺少某种资源。缺少资源会阻止服务器响应服务请求。例如,由于故障(死锁)或者大量请求的缘故,可能没有任何可用的执行线程来完成工作,所有执行线程都被占用或忙于处理以前的请求。 服务器挂起的可能原因服务器挂起的可能原因 主题主题模式名称模式名称链接链接RMI、RJVM 响应 所有绑定线程等待 RJVM、RMI 响应。EJB_RMI 服务器挂起EJB_RMI 服务器挂起应用程序死锁 线程锁定资源 1,然后等待锁定资源 2。另一个线程锁定资源 2,然后等待锁定资源 1。应用程序死锁导致服务器挂起待定线程全部被占用,没有线程可用于新工作。线程占用导致服务器挂起待定垃圾回收花费太多时
3、间。垃圾回收导致服务器挂起待定servlet 时间的 JSP 错误设置,比如 PageCheckSeconds。JSP 导致服务器挂起待定死锁造成 JDBC 挂起。JDBC 中的服务器挂起待定2 / 5 文档可自由编辑打印(代码优化)过程中的 JVM 挂起类似于服务器挂起。代码优化中服务器挂起待定在大量负载情况下 JSP 编译造成服务器挂起。JSP 编译导致服务器挂起待定SUN JVM 错误,比如轻量型线程库。Sun JVM 错误导致服务器挂起待定返回页首 基本步骤基本步骤当服务器挂起时,首先使用 java weblogic.Admin t3:/server:port PING 来 ping
4、该服务器。如果服务器能够响应此 ping,则可能是应用程序正在挂起而不是服务器自身。 确保服务器确实正在挂起,而不是在做垃圾回收。若要验证挂起,启用 -verbosegc 重新启动服务器,然后将 stdout 和 stderr 重定向到一个文件中。当服务器停止响应时,可以判断它是正在收集无用信息还是确实挂起。 WebLogic Server 使用“Default”线程队列响应客户端服务请求。这些是在发生服务器挂起时应当检查的线程。下面是其中一个线程在 Thread Dump 中的形式示例。Execute Thread 14 正在等待任务。该线程调用的最后方法是 Object.wait()。 E
5、xecuteThread: 14 for queue: default daemon prio=5 tid=0 x8b0ab30 nid=0 x1f4 waiting on monitor 0 x96af000.0 x96afdc4atjava.lang.Object.wait(Native Method)atjava.lang.Object.wait(Object.java:420)atweblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)atweblogic.kernel.ExecuteThread.run(E
6、xecuteThread.java:118)确定“Default”ExecuteThread 队列是否超载。利用控制台确定“Default”队列中的所有 ExecuteThreads 是否空闲。如果没有一个空闲,则应用程序可能需要一个更大的 ExecuteThread 数来配置。可以通过控制台更改该值,并将其保存在 config.xml 文件中。 如果执行队列有空闲线程,则可能没有分配足够的 Socket Reader 线程。缺省情况下,WebLogic Server 实例在启动时创建三个 Socket Reader 线程。如果群集系统在高峰期使用的 Socket Reader 线程超过三个,
7、则增加 Socket Reader 线程的数量。 通常,Socket Reader 线程的数量应当较小。但是,如果 Weblogic Serve 充当正在挂起的服务器实例的客户端,则应当为每个 Weblogic Serve 配置一个线程。 如果使用 JDBC 连接池,确保池中已经配置的 JDBC 连接数量与同时请求(即执行线程)的数量相等。 3 / 5 文档可自由编辑打印已知的已知的 WebLogic 问题问题JDBC 产生死锁问题的可能性存在。检查在 weblogic.log 开头找到的服务器的版本和 Service Pack 级别。然后对已经应用于服务器类路径的所有临时修补程序检查以上版本
8、和 Service Pack 行。修补程序将指明已经解决了什么问题。 收集收集 Thread Dump 进行 Thread Dump 的方法取决于安装挂起服务器实例的操作系统。有关在不同的操作系统上进行 Thread Dump 的信息,可以在以下网址中找到:。 Unix 系统(系统(Solaris、HP、AIX)使用 kill .3 创建诊断问题所需的 Thread Dump。确保在每个服务器上执行几次,每次间隔大约 5 到 10 秒,以帮助诊断死锁问题。为达到诊断目的,用 nohup 启动服务启进程(请参考解决方案 S-12292 和 S-15924)。 Windows、XP、NT每个服务器
9、需要 - 来创建诊断问题所需的 Thread Dump。确保在每个服务器上执行几次,每次间隔大约 5 到 10 秒,以帮助诊断死锁问题。在 NT 上,在命令 shell 中输入 CTRL-Break。 LinuxLinux 操作系统查看线程的方式不同于其它操作系统。该操作系统将每个线程视为一个进程。若要在 Linux 上进行 Thread Dump,查找通过其启动所有其它进程的进程 ID。使用命令: 若要获得根 PID,使用: ps -efHl | grep java *. * 使用一个作为字符串的 grep 参数(可在与服务器启动命令匹配的进程堆栈中找到该字符串)。如果 ps 命令还没有管道
10、传送到另一个例程,则报告的第一个 PID 将是根进程。使用 weblogic.Admin 命令 THREAD_DUMP 进行 Thread Dump 的另一种方法是使用 THREAD_DUMP admin 命令。此方法与正在运行服务器实例的操作系统无关。java weblogic.Admin -url ManagedHost:8001 -username weblogic -password weblogic THREAD_DUMP 备注:备注: 如果无法 ping 服务器实例,则不可以使用该命令。 如果正在使用的 JVM 是 Sun 开发的,则 Thread Dump 转为 stdout(标
11、准输出文件)。Sun 已经增强了 JVM 1.3.1 和 1.4 之间的 Thread Dump 格式。若要获得 Sun JVM 1.4 的 Thread Dump 格式,将下列选项添加到启动 1.3.1 JVM 的 java 命令行中: 4 / 5 文档可自由编辑打印-XX:+JavaMonitorsInStackTraceThread Dump 分析分析 分析服务器挂起的最有用的工具是一系列 Thread Dump。Thread Dump 提供关于每个线程在特定时刻正在执行什么操作的信息。一系列 Thread Dump(一般每隔 5 到 10 秒进行三个或更多 Thread Dump)可以
12、帮助分析每个线程从一个 Thread Dump 到另一个 Thread Dump 过程中的状态变化或所缺少的变化。挂起服务器 Thread Dump 一般显示线程状态从第一个 Thread Dump 到最后一个 Thread Dump 中变化很小。 在在 Thread Dump 中查看的内容中查看的内容 所有请求都通过 ListenThread 进入 WebLogic Server。如果 ListenThread 丢失,就无法接收任何工作,因此也无法完成任何工作。确认在 Thread Dump 中存在 ListenThread。ListenThread 应当在 socketAccept 方法中
13、。下面示例说明监听线程 (Listen Thread) 的形式。 ListenThread.Default prio=10 tid=0 x00037888 nid=93 lwp_id=6888343 runnable 0 x 1a81b000.0 x1a81b530at .PlainSocketImpl.socketAccept(Native Method).PlainSocketImpl.accept(PlainSocketImpl.java:353)- locked (a .PlainSocketImpl).ServerSocket.implAccept(ServerSocket.java
14、:439).ServerSocket.accept(ServerSocket.java:410)atweblogic.socket.WeblogicServerSocket.accept(WeblogicServerSocket.java:24)atweblogic.t3.srvr.ListenThread.accept(ListenThread.java:713)atweblogic.t3.srvr.ListenThread.run(ListenThread.java:290) Socket Reader 线程接受来自监听线程队列的传入请求,并将该请求放入执行线程队列。如果 Thread D
15、ump 中没有 Socket Reader 线程,则在某个地方存在导致 Socket Reader 线程消失的错误。应当始终保持至少有三个 Socket Reader 线程。一个 Socket Reader 线程一般用于轮询功能,另外两个用于处理请求。下面是一个 Thread Dump 示例中的 Socket Reader 线程。ExecuteThread: 2 for queue: weblogic.socket.Muxer daemon prio=10 tid=0 x00036128 nid=75 lwp_id=6888070 waiting for monitor entry 0 x1b
16、12f000.0 x1b12f530atweblogic.socket.PosixSocketMcessSockets(PosixSocketMuxer.java:92)- waiting to lock (a java.lang.String)atweblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32)5 / 5 文档可自由编辑打印atweblogic.kernel.ExecuteThread.execute(ExecuteThread.java:178)atweblogic.kernel
17、.ExecuteThread.run(ExecuteThread.java:151) ExecuteThread: 1 for queue: weblogic.socket.Muxer daemon prio=10 tid=0 x00035fc8 nid=74 lwp_id=6888067 runnable 0 x1b1b0000.0 x1b1b0530at weblogic.socket.PosixSocketMuxer.poll(Native Method)atweblogic.socket.PosixSocketMcessSockets(PosixSocketMuxer.
18、java:99) - locked (a java.lang.String)atweblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32)atweblogic.kernel.ExecuteThread.execute(ExecuteThread.java:178)atweblogic.kernel.ExecuteThread.run(ExecuteThread.java:151) ExecuteThread: 0 for queue: weblogic.socket.Muxer daemon prio=10 tid=0 x00035e68 nid=73 lwp_id=6888066 waiting for monitor entry 0 x1b231000.0 x1b231530atweblogic.socket.PosixSocketMuxe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 咨询方案引流怎么写
- 文化创意产业知识产权保护与项目合作保密协议
- 离婚协议书贷款购房房产分割与共同购房合同样本
- 人力资源管理与劳动争议解决专项服务合同
- 私募基金公司投资风险评估与商业秘密保护合同
- 跨国公司员工离职遣返及福利待遇协议书
- 离婚后子女生活费及教育金补充协议
- 夫妻关系破裂男方出轨离婚协议及财产分割方案
- 空白合同事件追踪:合肥美湖置业欺诈案件处理合同
- 知识产权保险合同范本:为企业保驾护航
- 银行员工行为管理
- 办理出国商务代办手续服务合同
- 2025年陕西中考道德与法治真题解读及答案详解讲评(课件)
- 家庭资产配置与理财计划
- 文明实践集市活动方案
- 快递超市转让合同范本
- 人工智能机器人教学课件
- 先天性甲状腺功能减退症诊治指南(2025)解读
- 劳务公司安全管理规章制度
- 车辆保密协议书
- 蔚来主品牌视觉识别系统(完整版)
评论
0/150
提交评论