WS-ReliableMessaging 故障诊断技巧

有关对 WS-ReliableMessaging 配置进行故障诊断的技巧。

注: 本主题引用了一个或多个应用程序服务器日志文件。作为另一种建议采用的方法,您可以在分布式系统和 IBM® i 系统上配置服务器以使用高性能可扩展日志记录 (HPEL) 记录和跟踪基础结构,而不使用 SystemOut.logSystemErr.logtrace.logactivity.log 文件。您还可以将 HPEL 与本机 z/OS® 日志记录设施结合使用。如果要使用 HPEL,那么可从服务器概要文件 bin 目录使用 LogViewer 命令行工具来访问所有日志和跟踪信息。有关使用 HPEL 的更多信息,请参阅有关使用 HPEL 对应用程序进行故障诊断的信息。

为了帮助确定并解决有关 WS-ReliableMessaging 的问题,您可以使用 WebSphere® Application Server 跟踪和日志记录工具。如果您正在使用基于 Eclipse 的工具,那么还可以使用 Eclipse 中的 TCP/IP 监视器来查看在客户机应用程序与支持可靠消息传递的 Web Service 之间传递的消息。

要启用对 WS-ReliableMessaging 的跟踪,请按如下所示设置应用程序服务器跟踪字符串:
  • 对于受管服务质量:
    org.apache.sandesha2*=all=enabled:com.ibm.ws.websvcs.rm*=all=enabled:org.apache.axis2*=all=enabled:com.ibm.ws.sib.wsrm*=all=enabled
  • 对于非受管的非持久服务质量:
    org.apache.sandesha2*=all=enabled:com.ibm.ws.websvcs.rm*=all=enabled:org.apache.axis2*=all=enabled
如果遇到您认为可能与 WS-ReliableMessaging 有关的问题,那么可以在 WebSphere Application Server 管理控制台以及应用程序服务器的 SystemOut.log 文件中检查错误消息。您还可以启用应用程序服务器调试跟踪来提供详细的异常转储。

WS-ReliableMessaging 已知限制中提供了使用 WS-ReliableMessaging 时受到的主要已知限制列表。

WebSphere Application Server 系统消息是从各种来源(包括应用程序服务器组件和应用程序)记录的。由应用程序服务器组件和相关 IBM 产品记录的消息以唯一消息标识开始,此标识指示发出消息的组件和应用程序。WS-ReliableMessaging 组件的前缀是 CWSKA

故障诊断者参考:消息主题包含有关所有 WebSphere Application Server 消息(按消息前缀建立了索引)的信息。每条消息都提供了问题说明以及有关任何可以用来解决该问题的操作的详细信息。

如果重新分配了某个序列,那么您可能会看到比预期多的序列

在检查入站或出站序列的运行时状态时,您可能会由于序列重新分配而找到意外的序列

如果对序列进行了重新分配,那么原始序列和新序列均可见。请忽略重复条目。

[AIX Solaris HP-UX Linux Windows][IBM i]

如果可靠消息传递在集群上运行,那么当您检查入站和出站序列的运行时状态时,您会看到每个序列有多个条目

这是因为,虽然可靠消息传递仅绑定到集群中的一个消息传递引擎,但是运行时面板会为每个集群成员计算和显示序列信息一次。 忽略重复条目。请注意,为每个重复条目显示的统计信息中的细微差异主要是因为条目是按序创建,而对消息的轮询是一直继续的。

[z/OS]

当您检查入站或出站序列的运行时状态时,您可能会看到每个序列有多个条目

这是因为,虽然可靠消息传递仅绑定到一个消息传递引擎,但是运行时面板会为每个服务方区域计算和显示序列信息一次。 忽略重复条目。请注意,为每个重复条目显示的统计信息中的细微差异主要是因为条目是按序创建,而对消息的轮询是一直继续的。

从 V6.1.0.9 或 6.1.0.11 迁移持久存储的 WS-ReliableMessaging 消息时发生运行时错误

如果您要从 WebSphere Application Server V6.1 进行迁移,并且正在使用 Feature Pack for Web Services V6.1.0.9 或 V6.1.0.11,而且配置包含针对受管持久服务质量配置的 WS-ReliableMessaging,那么在进行迁移前,需要移除所有持久存储的消息。

每条消息都作为当前正在处理的序列的组成部分进行保存。要移除所有已保存的消息,请使用管理控制台来完成下列步骤:
  1. 转到可靠消息传递应用程序的入站序列集合运行时面板。
  2. 选择所有入站序列,然后单击删除序列和消息以删除序列。
  3. 转到出站序列集合运行时面板,然后对出站序列重复上述步骤。

应用程序服务器启动时,用于可靠消息传递的消息传递引擎被报告为不可用

如果将可靠消息传递与受管服务质量一起使用,那么在应用程序服务器启动时,可看到以下异常消息:

CWSIT0019E: 总线 yourBus 中不存在与指定的连接属性相匹配的合适消息传递引擎

在 Network Deployment 环境中,发生这种情况的原因可能是消息传递引擎所在的应用程序服务器或集群成员,在主管可靠消息传递应用程序的服务器之后启动。在这种情况下,您只需等待;可靠消息传递将继续尝试连接,直到消息传递引擎变为可用。

如果您怀疑存在底层问题,例如,绑定不正确或主管消息传递引擎的服务器无法启动,请完成以下检查:
  • 检查指定的消息传递引擎和服务集成总线是否存在。
  • 检查系统输出日志以确保主管消息传递引擎的服务器已启动。

客户机应用程序无法调用支持可靠消息传递的 Web Service

如果客户机应用程序无法调用支持可靠消息传递的 Web Service,那么可以使用 TCP/IP 监视器来查看在客户机与服务之间传递的消息。您还应该检查是否满足下列条件:

未建立序列,因此 WS-ReliableMessaging 无法确保传输了消息

在建立序列之后,WS-ReliableMessaging 会将消息重新传输至服务。但是,如果未建立序列,那么就不会将消息传输至服务,并且会显示一条与以下示例相似的消息:

org.apache.axis2.AxisFault: RM 目标拒绝了“创建序列”请求

已经拒绝了初始的 createSequence 消息。这是传播回来的消息,并导致客户机失败。有关 CreateSequenceCreateSequenceRefused 的信息,请参阅WS-ReliableMessaging:受支持的规范与标准

您后来还可能会看到一条消息来帮助说明为何请求被拒绝。例如:

原因:javax.xml.ws.soap.SOAPFaultException: com.ibm.ws.sib.wsrm.exceptions.WSRMRuntimeException:
CWSJZ0202I: 没有为 myBus 总线提供消息传递引擎连接
可靠消息传递配置存在问题。请完成以下检查:
  • 检查是否正确应用了策略集。特别要检查目标是否正确启用了可靠消息传递。
  • 检查服务器端产生的问题的日志。
  • 对于受管持久服务质量,检查相关联的消息传递引擎是否可用。

序列已建立但无法使用,因此 WS-ReliableMessaging 无法确保传输了消息

如果发生类似于以下的异常,那么表明虽然已建立序列,但该序列不可用:

javax.xml.ws.WebServiceException: org.apache.axis2.AxisFault: wsrm:Identifier 的值是一个未知的序列标识

产生此异常的最常见原因是:您正在一个集群环境中工作,但是服务器端策略集指定了非受管的非持久服务质量。例如:WS-I RSP 缺省策略集指定了非受管非持久服务质量。要在集群环境中使用可靠的异步消息传递,必须使用受管服务质量以使集群成员能够使可靠消息传递状态相关。要完成此任务,请使用 WS-I RSP ND 缺省策略集,或者修改定制策略集以使 WS-ReliableMessaging 策略指定受管服务质量以及对服务集成总线和消息传递引擎的相关联绑定。有关如何完成此任务的信息,请参阅使用管理控制台来配置 WS-ReliableMessaging 策略集使用管理控制台将 WS-ReliableMessaging 策略集连接到 Web Service 应用程序并与其绑定

要了解可能有助于您解决问题的其他检查,另请参阅下列故障诊断技巧:

未初始化可靠消息传递受管库,因为策略集绑定不完整或无效

如果策略集指定了受管服务质量,但是尚未指定与消息传递引擎的绑定以支持该服务质量,那么就会产生以下异常消息:

CWSKA0102E: 未能初始化受管的 Web Service 可靠消息传递存储管理器,因为策略集绑定不完整或无效

也许您已经将受管策略集连接至应用程序,并且使用了缺省绑定,而缺省绑定不支持受管服务质量。您必须为应用程序创建新的绑定,并且此绑定必须指定服务集成总线和消息传递引擎以支持受管服务质量。为此,请参阅使用管理控制台将 WS-ReliableMessaging 策略集连接到 Web Service 应用程序并与其绑定

可靠消息传递被中断,因为服务器不可用

集群可以最大限度地防止服务器变得不可用。它提供了高可用性服务端点,并且通过服务集成总线也为可靠消息传递层提供了高可用性。

有关为 Web Service 和消息传递引擎配置高可用性的更多信息,请参阅平衡工作负载将消息传递引擎添加到集群

在集群中运行多个可靠消息传递客户机应用程序时收到套接字超时错误

当多个应用程序使用同一个消息传递引擎时,会影响性能,在某些情况下,会导致超时错误。

有关为 Web Service 和消息传递引擎配置高可用性的更多信息,请参阅平衡工作负载将消息传递引擎添加到集群

服务器不可用后未恢复消息

当可靠消息传递层接收到请求消息时,它会发送一个应答,然后将该消息传递给目标服务。在应答请求消息之后但是在传递此消息之前,主管可靠消息传递层的服务器有可能变为不可用。在这种情况下,仅当您使用的是按顺序传递以及受管持久服务质量时,才会恢复消息。要指定按顺序传递,选择 WS-ReliableMessaging 策略选项以“以消息的发送顺序传递消息”,如配置 WS-ReliableMessaging 策略中所述。

注: 使用按顺序传递会产生性能开销,因为在可以按顺序传递消息之前,消息保存在队列中。但是,在需要最高级别可靠性的情况下,您应该始终指定按顺序传递和受管持久服务质量。

异常消息声明安全上下文令牌无效

将可靠消息传递与持久 WS-I RSP 概要文件和 WS-SecureConversation 配合使用时,异常消息声明安全上下文令牌无效。

使用包含 WS-SecureConversation 的持久 WS-I RSP 策略集时,如果范围限定安全上下文令牌在服务器重新启动时到期,那么 WS-ReliableMessaging 无法重新发送其消息并且系统消息将写入日志文件,表明可靠消息传递序列未使用正确的安全性令牌进行保护。例如:
CWWSS7215E: 无法从高速缓存获取有效的安全上下文令牌。

要确保范围限定安全上下文令牌在 WS-ReliableMessaging 恢复并重新发送其消息前不会过期,请完成以下任务:将 WS-SecureConversation 配置为与 WS-ReliableMessaging 一起使用

[z/OS]

使用受管服务质量时,服务方区域发生超时异常结束

发生超时异常结束的原因可能是,sib.wsrm.tokenLockTimeout 定制属性的值设置得太大。此属性是在 WS-ReliableMessaging 策略绑定所指定的消息传递引擎上设置的。此值应该小于控制区域在结束不活动服务方区域前所等待的时间。请参阅服务集成定制属性主题以获取有关此属性的更多信息。


指示主题类型的图标 参考主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwbs_wsrm_prob0
文件名:rwbs_wsrm_prob0.html