(WEBLOGIC常规服务器挂起问题.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(WEBLOGIC常规服务器挂起问题

WEBLOGIC 常规服务器挂起问题 问题描述 在出现以下情况时怀疑服务器挂起: 服务器不响应新的请求。 请求超时。 请求处理的时间越来越长(其最终结果可能是挂起)。 通常,服务器挂起不会表现为服务器崩溃,但服务器挂起之后可能会崩溃。 故障排除 请注意,并非下面所有任务都需要完成。有些问题仅通过执行几项任务就可以解决。 快速链接: 为什么发生此问题? 服务器挂起的可能原因 基本步骤 已知的 WebLogic Server 问题 收集 Thread Dump Thread Dump 分析 为什么发生此问题? 服务器挂起有多种原因。一般而言,服务器挂起是因为缺少某种资源。缺少资源会阻止服务器响应服务请求。例如,由于故障(死锁)或者大量请求的缘故,可能没有任何可用的执行线程来完成工作,所有执行线程都被占用或忙于处理以前的请求。 服务器挂起的可能原因 主题 模式名称 链接 RMI、RJVM 响应 - 所有绑定线程等待 RJVM、RMI 响应。 EJB_RMI 服务器挂起 EJB_RMI 服务器挂起 应用程序死锁 - 线程锁定资源 1,然后等待锁定资源 2。另一个线程锁定资源 2,然后等待锁定资源 1。 应用程序死锁导致服务器挂起 待定 线程全部被占用,没有线程可用于新工作。 线程占用导致服务器挂起 待定 垃圾回收花费太多时间。 垃圾回收导致服务器挂起 待定 servlet 时间的 JSP 错误设置,比如 PageCheckSeconds。 JSP 导致服务器挂起 待定 死锁造成 JDBC 挂起。 JDBC 中的服务器挂起 待定 (代码优化)过程中的 JVM 挂起类似于服务器挂起。 代码优化中服务器挂起 待定 在大量负载情况下 JSP 编译造成服务器挂起。 JSP 编译导致服务器挂起 待定 SUN JVM 错误,比如轻量型线程库。 Sun JVM 错误导致服务器挂起 待定 返回页首 基本步骤 当服务器挂起时,首先使用 java weblogic.Admin t3://server:port PING 来 ping 该服务器。如果服务器能够响应此 ping,则可能是应用程序正在挂起而不是服务器自身。 确保服务器确实正在挂起,而不是在做垃圾回收。若要验证挂起,启用 -verbosegc 重新启动服务器,然后将 stdout 和 stderr 重定向到一个文件中。当服务器停止响应时,可以判断它是正在收集无用信息还是确实挂起。 WebLogic Server 使用“Default”线程队列响应客户端服务请求。这些是在发生服务器挂起时应当检查的线程。下面是其中一个线程在 Thread Dump 中的形式示例。Execute Thread 14 正在等待任务。该线程调用的最后方法是 Object.wait()。 ExecuteThread: 14 for queue: default daemon prio=5 tid=0x8b0ab30 nid=0x1f4 waiting on monitor [0x96af000..0x96afdc4] at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:420) at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118) 确定“Default”ExecuteThread 队列是否超载。利用控制台确定“Default”队列中的所有 ExecuteThreads 是否空闲。如果没有一个空闲,则应用程序可能需要一个更大的 ExecuteThread 数来配置。可以通过控制台更改该值,并将其保存在 config.xml 文件中。 如果执行队列有空闲线程,则可能没有分配足够的 Socket Reader 线程。缺省情况下,WebLogic Server 实例在启动时创建三个 Socket Reader 线程。如果群集系统在高峰期使用的 Socket Reader 线程超过三个,则增加 Socket Reader 线程的数量。 通常,Socket Reader 线程的数量应当较小。但是,如果 Weblogic Serve 充当正在挂起的服务器实例的客户端,则应当为每个 Weblogic Serve 配置一个线程。 如果使用 JDBC 连接池,确保池中已经配置的 JDBC 连接数量与同时请求(即执行线程)的数量

文档评论(0)

saity3 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档