使用 WebLogic Server 群集

     上一页  下一页    在新窗口中打开目录     
在此处开始内容

常见问题疑难解答

本文档提供了有关如何防止群集问题或如果出现群集问题如何对其进行排除方面的指南。

 


启动群集之前

在启动群集之前,可以做许多事情来防止群集问题。

检查群集许可

WebLogic Server 许可必须包括群集功能。如果尝试启动不具有群集许可的群集,将会出现错误消息“Unable to find a license for clustering”。

检查服务器版本号

群集中所有服务器的主要版本号必须相同,但是次要版本号和 Service Pack 可以有所不同。

通常情况下,不会将群集的管理服务器配置为群集成员,但它运行的 WebLogic Server 主要版本应与受管服务器上使用的 WebLogic Server 主要版本相同。

检查多播地址

群集未启动,或服务器加入群集失败的最常见原因之一就是多播地址有问题。

每个群集都需要一个多播地址。多播地址可以是从 224.0.0.0 到239.255.255.255 之间的一个 IP 号,或 IP 地址在该范围之内的主机名。

可在管理控制台中某个群集的“配置”-->“多播”选项卡上检查此群集的多播地址和端口。

对于网络上的每个群集,多播地址和端口组合必须是唯一的。如果网络上的两个群集使用相同的多播地址,则它们应使用不同的端口。如果这些群集使用不同的多播地址,则它们可以使用相同的端口,或接受默认端口 7001。

启动群集之前,请确保群集的多播地址和端口正确,并且不与网络上的任何其他群集的多播地址和端口冲突。

如果多播地址无效,极有可能出现下列错误:

无法为群集创建多播套接口

多播套接口发送错误

多播套接口接收错误

检查 CLASSPATH 值

请确保群集中所有受管服务器上的 CLASSPATH 值是同一个值。CLASSPATH 是由 setEnv 脚本设置的,此脚本在运行 startManagedWebLogic 以启动受管服务器之前运行。

默认情况下,setEnv 会设置 CLASSPATH 的值(如 Windows 系统上的表示):

set WL_HOME=C:\bea\weblogic700
set JAVA_HOME=C:\bea\jdk131
.
.
set CLASSPATH=%JAVA_HOME%\lib\tools.jar;
%WL_HOME%\server\lib\weblogic_sp.jar;
%WL_HOME%\server\lib\weblogic.jar;
%CLASSPATH%

如果更改一个受管服务器上的 CLASSPATH 值,或更改 setEnv 设置 CLASSPATH 的方式,则必须更改群集中所有受管服务器上的 CLASSPATH 值。

检查线程计数

群集中的每个服务器实例都包含一个使用固定数目的执行线程配置的默认执行队列。要查看默认执行队列的线程计数,请在服务器的“配置”>“常规”选项卡的“高级选项”部分上选择“配置执行队列”命令。默认队列的默认线程计数为 15,最小值为 5。如果线程计数值小于 5,请将其更改为较大值,以便受管服务器在启动时不会挂起。

 


启动群集之后

检查命令

如果群集启动失败,或服务器加入群集失败,则首先检查已输入的所有命令(例如 startManagedWebLogicjava 解释器命令)是否存在错误或拼写错误。

生成日志文件

在联系 BEA 技术支持请求解决与群集相关问题之前,请收集诊断信息。最重要的信息是包含受管服务器中多个线程转储的日志文件。日志文件对于诊断群集冻结和死锁问题尤其重要。

请记住:包含多个线程转储的日志文件是诊断问题的前提条件。

  1. 停止服务器。
  2. 删除或备份当前拥有的任何日志文件。应在每次启动服务器时都新建一个日志文件,而不是追加到现有日志文件。
  3. 可使用下列命令启动服务器,该命令可打开详细垃圾收集,并将标准错误和标准输出重定向到日志文件:
  4. % java -ms64m -mx64m -verbose:gc -classpath $CLASSPATH
    -Dweblogic.domain=mydomain -Dweblogic.Name=clusterServer1
    -Djava.security.policy==$WL_HOME/lib/weblogic.policy
    -Dweblogic.admin.host=192.168.0.101:7001
    weblogic.Server >> logfile.txt

    重定向标准错误和标准输出可将线程转储信息存储到包含服务器信息和错误消息的适当上下文中,并提供更有用的日志。

  5. 在重新产生问题之前继续运行群集。
  6. 如果服务器挂起,请使用 kill -3<Ctrl>-<Break> 创建所需的线程转储以诊断问题。请确保在每台服务器上执行数次该操作(每次之间间隔 5-10 秒),以帮助诊断死锁问题。
  7. 注意: 如果正在 Linux 下运行 JRockit JVM,请参阅在 Linux 下获取 JRockit 线程转储
  8. 使用 Unix 实用工具压缩日志文件:
  9. % tar czf logfile.tar logfile.txt

    - 或者使用 Windows 实用工具压缩日志文件。

  10. 将压缩的日志文件附加到发送给 BEA 技术支持代表的电子邮件。请勿将日志文件剪切和粘贴到电子邮件正文。
  11. 如果压缩的日志文件太大,则可以使用 BEA 客户支持 FTP 站点。

在 Linux 下获取 JRockit 线程转储

如果在 Linux 下使用 JRockit JVM,请使用下列方法之一生成线程转储。

检查垃圾收集

如果遇到群集问题,还应在受管服务器上检查垃圾收集。如果垃圾收集过程用时很长,服务器将不能产生频繁的检测信息,以告知其他群集成员服务器是否正在运行并可用。

如果垃圾收集(第一次生成或第二次生成)需要 10 秒或更多时间,则需要在系统上调整堆分配(msmx 参数)。

运行 utils.MulticastTest

可通过从其中一个受管服务器中运行 utils.MulticastTest 来验证多播是否正在工作。请参阅“WebLogic Server 命令参考”中的使用 WebLogic Server Java 实用工具


  返回顶部       上一页  下一页