未分布工作负载
如果您遇到工作负载分布问题,那么此信息或许能帮助您进行诊断。
请浏览问题 Deployment Manager 和应用程序服务器的 JVM 日志:
- 通过选择信息中心导航的参考视图并在导航树中展开消息,查找任何错误消息。
请使用“日志和跟踪分析器”工具来浏览和分析 Deployment Manager 及任何遇到问题的节点的服务日志 (activity.log)。请查看 app_server_root/logs 和 app_server_root/logs 中的 activity.log 文件。
请分析 Deployment Manager 及任何遇到问题的节点的服务日志 (activity.log)。请查看 profile_root/logs 中的 activity.log 文件。
如果 Java™ 异常出现在日志文件中,请尝试通过检查跟踪堆栈和在创建此异常的堆栈(其名称以 com.ibm.websphere 或 com.ibm.ws 开头)顶部附近查找产品相关的类,确定问题中直接涉及的实际子组件。如果需要,请复审信息中心的“对 WebSphere 应用程序进行故障诊断”部分中用于对适当子组件进行故障诊断的步骤。
例如,如果异常似乎由 com.ibm.websphere.naming 包中的某个类抛出,请查看“命名服务组件故障诊断技巧”主题。
请浏览问题 Deployment Manager 和应用程序服务器的 JVM 日志:
- 通过选择信息中心导航的参考视图并在导航树中展开消息,查找任何错误消息。
如果 Java 异常出现在日志文件中,请尝试通过检查跟踪堆栈和在创建此异常的堆栈(其名称以 com.ibm.websphere 或 com.ibm.ws 开头)顶部附近查找产品相关的类,确定问题中直接涉及的实际子组件。如果需要,请复审信息中心的对 WebSphere 应用程序进行故障诊断部分下面用于对适当子组件进行故障诊断的步骤。
例如,如果异常似乎由 com.ibm.websphere.naming 包中的某个类抛出,请查看“命名服务组件故障诊断技巧”主题。
- 运行 ping 命令,确保您配置中的所有机器彼此具有 TCP/IP 连接性:
- 从每台物理服务器到 Deployment Manager
- 从 Deployment Manager 到每台物理服务器
- 尽管问题是在集群环境中发生的,但是实际原因可能仅与集群间接相关甚至不相关。调查所有相关的可能性:
- 如果一个或多个服务器上的企业 Bean 不处理请求,请复审“无法从 servlet、JSP、独立程序或其他客户机访问企业 Bean”和“无法从 servlet、JSP 文件或其他客户机中查找产品托管的对象”主题。
- 如果在启用安全性之后似乎出现了问题,请复审“启用安全性之后发生错误或访问问题”主题。
- 如果应用程序服务器停止对请求作出响应,或者自发死机(其进程关闭),请复审“Web 模块或应用程序服务器死机或挂起”主题。
- 如果 SOAP 请求不是由某些服务器或所有服务器处理的,请复审“尝试发送 SOAP 请求时返回给客户机的错误”主题。
如果在一个或多个节点上的服务器上安装或部署应用程序时发生问题,请复审“对代码部署和安装问题进行故障诊断”主题。
如果拓扑由基于 Windows 的 Deployment Manager 和支持的 UNIX 系统服务器组成,那么在支持的 UNIX 系统上使用 vi 浏览任何最近更新的 .xml 和 .policy 文件,以确保这些文件中没有 Control-M 字符。要在将来避免此问题,请在支持的 UNIX 系统上使用 vi 编辑这些文件,以避免插入这些字符。
检查工作负载管理组件的故障诊断技巧。
- 通过查看可用的在线支持(提示与技巧、技术说明和修订)来检查是否标识和记录了此问题。
HTTP 请求未分布到所有服务器
- 请检查“主服务器”列表。如果没有建立亲缘关系,此插件将跨越“主服务器”列表中定义的所有服务器进行负载均衡。如果您未定义“主服务器”列表,并且未建立亲缘关系,那么此插件将跨此集群中定义的所有服务器进行负载均衡。在已建立亲缘关系的情况下,插件应直接到达该服务器,因为所有的请求都在同一个 HTTP 会话中。
- 如果某些服务器正在为请求提供服务而其他一个或多个服务器未提供服务,请尝试直接访问有问题的服务器,以除了验证工作负载管理问题之外,还验证它是否在工作。如果它不工作:
- 使用管理控制台以确保受影响的服务器正在运行。
- 有关更多信息,请参阅“未显示 Web 资源”主题。
- 有关更多信息,请参阅“HTTP 插件组件故障诊断技巧”主题。
检查“对工作负载管理组件进行故障诊断”主题中有关诊断工作负载管理问题的步骤。
企业 Bean 请求未分布到所有服务器
- 使用管理控制台验证服务器是否已启动。尝试启动它,或如果它已启动,那么停止并重新启动它。
- 浏览管理控制台并验证是否出现运行有问题的服务器的节点。如果节点不出现:
- 复审将节点添加到集群的步骤:
- 请复审一个或多个节点未显示在管理控制台中部分中的步骤。
- 若有可能,尝试直接在问题服务器上访问企业 Bean,以查看是否有 TCP/IP 连接性、应用程序服务器运行状况的问题或与工作负载管理不相关的其他问题。如果此操作失败,请复审“无法从 servlet、JSP、独立程序或其他客户机访问企业 Bean”主题。
检查“对工作负载管理组件进行故障诊断”主题中有关诊断工作负载管理问题的步骤。
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
未均匀地分布企业 Bean 请求
- 不适当的配置
- 环境问题,如服务器或应用程序的可用性。
- 包含事务亲缘关系的大量请求,或
- 少量客户机
产品中的工作负载管理基于在服务器之间分布请求的与权重相称的方案。这导致平衡由请求数而不是任何其他量度标准来确定。通过将集群中的每个成员处理的请求数与为这些成员中的每个设置的权重进行比较来确定真实的平衡问题。遵循“对工作负载管理组件进行故障诊断”主题中的步骤来执行此操作。
产品中的工作负载管理基于请求分布的循环方案。这导致平衡由请求数而不是任何其他量度标准来确定。通过将集群中的每个成员处理的请求数与为这些成员中的每个设置的权重进行比较来确定真实的平衡问题。
![[z/OS]](../images/ngzos.gif)
- 当到达集群的每个成员的请求百分率与权重一致时,即使请求数平衡,也需要进一步分析应用程序以确定工作负载不平衡的原因。
- 当 numIncomingNonWLMObjectRequests 数在集群成员间不平衡并且与 numIncomingRequests 相比较大时,不平衡的原因是安装在集群成员上的不可分布的组件。对此配置的修改将产生一个更平衡的环境。
- 当 numIncomingStrongAffinityRequests 数在集群成员间不平衡并且与 numIncomingRequests 相比较大时,不平衡的原因是在事务中调用的请求。这些可以通过安装包含在同一集群中的事务中的对象来减少。
出现故障的服务器仍接收到企业 Bean 请求(故障转移未完成)
客户机可能已存在于已停止的服务器上具有企业 Bean 的事务中。请检查管理问题企业 Bean 实例的应用程序服务器的 JVM 日志。如果请求返回,并带有 CORBA SystemException COMM_FAILURE org.omg.CORBA.completion_status.COMPLETED_MAYBE,它可能按所设计的那样工作。此设计将让此特殊异常流回到客户机,因为事务可能已完成。到另一个服务器的请求失败可能会导致此请求被服务两次。
客户机可能已存在于已停止的服务器上具有企业 Bean 的事务中。请检查管理问题企业 Bean 实例的应用程序服务器的 JVM 日志。如果请求返回,并带有 CORBA SystemException COMM_FAILURE org.omg.CORBA.completion_status.COMPLETED_MAYBE,它可能按所设计的那样工作。此设计将让此特殊异常流回到客户机,因为事务可能已完成。到另一个服务器的请求失败可能会导致此请求被服务两次。
如果发送到服务器的请求返回到一贯具有任何其他异常的客户机,这可能是没有可用的服务器。在这种情况下,请遵循主题“对工作负载管理组件进行故障诊断”中所描述的解决步骤。
如果发送到服务器的请求返回到一贯具有任何其他异常的客户机,这可能是没有可用的服务器。
![[z/OS]](../images/ngzos.gif)
停止或挂起的服务器在复原后未共享工作负载
当先前不可用的服务器在复原后无法为工作负载管理组件所识别时,会发生此错误。有一个由属性 com.ibm.websphere.wlm.unusable.interval 确定的不可用时间间隔,在此时间间隔中工作负载管理器将等待发送到已标记为不可用的服务器。缺省情况下,它是 5 分钟。
可以通过确保停止的服务器现在已启动并能够服务请求来确认这是该问题。然后在检查确定是否发生故障转移之前等待不可用的时间间隔消逝。
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
集群未故障转移到它的备份集群
[10/11/04 13:11:10:233 CDT] 00000036 SelectionMana A WWLM0061W: An error was
encountered sending a request to cluster member {MEMBERNAME=FlorenceEJBServer1,
NODENAME=fwwsaix1Node01} and that member has been marked unusable for future
requests to the cluster "", because of exception: org.omg.CORBA.COMM_FAILURE:
CONNECT_FAILURE_ON_SSL_CLIENT_SOCKET - JSSL0130E: java.io.IOException: Signals
that an I/O exception of some sort has occurred. Reason: Connection refused
vmcid: 0x49421000 minor code: 70 completed: No"
- 复审每个备份集群设置的 Deployment Manager 主机名和引导程序端口。
- 复审您的核心组网桥对等端口以确保主机名以及分布和一致性服务 (DCS) 端口是正确的。
- 验证您的主集群和备份集群的名称是否匹配。
- 如果应用程序将通过安全性转至备份集群,请复审您的安全性配置。您可能需要使用单点登录 (SSO) 并将轻量级第三方认证 (LTPA) 密钥导入备份单元。