21.5. 配置 WS-RM
21.5.1. 配置 Apache CXF-Specific WS-RM 属性 复制链接链接已复制到粘贴板!
概述 复制链接链接已复制到粘贴板!
要配置特定于 Apache CXF 的属性,请使用 rmManager
Spring bean。在配置文件中添加以下内容:
-
到命名空间列表的
http://cxf.apache.org/ws/rm/manager
命名空间。 -
您要配置的特定属性的
rmManager
Spring bean。
例 21.4 “配置 Apache CXF-Specific WS-RM 属性” 显示一个简单的示例。
例 21.4. 配置 Apache CXF-Specific WS-RM 属性
rmManager Spring bean 的子项 复制链接链接已复制到粘贴板!
表 21.2 “rmManager Spring Bean 的子项” 显示 http://cxf.apache.org/ws/rm/manager
命名空间中定义的 rmManager
Spring bean 的子元素。
元素 | 描述 |
---|---|
|
一个类型 |
|
描述应应用的交付保证的 |
|
一个 |
|
一个类型为 |
Example 复制链接链接已复制到粘贴板!
例如,请参阅 “最大未确认的消息阈值”一节。
21.5.2. 配置标准 WS-RM 策略属性 复制链接链接已复制到粘贴板!
概述 复制链接链接已复制到粘贴板!
您可以使用以下方法之一配置标准 WS-RM 策略属性:
WS-Policy RMAssertion Children 复制链接链接已复制到粘贴板!
表 21.3 “WS-Policy RMAsertion 元素的子项” 显示 http://schemas.xmlsoap.org/ws/2005/02/rm/policy
命名空间中定义的元素:
Name | 描述 |
---|---|
| 指定在端点可以认为 RM 序列因为不活跃而终止前必须传递的时间长度。 |
|
为给定消息设置 RM Source 必须接收确认的时间间隔。如果在 |
| 指示将使用通常已知的 exponential backoff 算法(Tanenbaum)调整重新传输间隔。 如需更多信息,请参阅 计算机网络、Andrew S. Tanenbaum、Prentice Hall PTR、2003。 |
| 在 WS-RM 中,在返回消息或独立发送时发送确认。如果返回消息无法发送确认,则 RM Destination 可以在发送独立确认前最多等待确认间隔。如果没有未确认的信息,则 RM Destination 可以选择不发送确认信息。 |
更详细的参考信息 复制链接链接已复制到粘贴板!
有关更详细的参考信息,包括每个元素的子元素和属性的描述,请参阅 http://schemas.xmlsoap.org/ws/2005/02/rm/wsrm-policy.xsd。
rmManager Spring bean 中的 RMAssertion 复制链接链接已复制到粘贴板!
您可以通过在 Apache CXF rmManager
Spring bean 中添加 RMAssertion
来配置标准 WS-RM 策略属性。如果您要在同一配置文件中保留所有 WS-RM 配置,这是最佳方法;也就是说,如果您想要在同一文件中配置特定于 Apache CXF 的属性和标准 WS-RM 策略属性。
例如,例 21.5 “在 rmManager Spring Bean 中使用 RMAssertion 配置 WS-RM 属性” 中的配置显示:
-
标准 WS-RM 策略属性
BaseRetransmissionInterval
,使用rmManager
Spring bean 中的RMAsertion
配置。 -
特定于 Apache CXF 的
RM 属性
,在同一配置文件中配置。
例 21.5. 在 rmManager Spring Bean 中使用 RMAssertion 配置 WS-RM 属性
功能中的策略 复制链接链接已复制到粘贴板!
您可以在功能中配置标准 WS-RM 策略属性,如 例 21.6 “将 WS-RM 属性配置为功能内的策略” 所示。
例 21.6. 将 WS-RM 属性配置为功能内的策略
WSDL 文件 复制链接链接已复制到粘贴板!
如果您使用 WS-Policy 框架启用 WS-RM,您可以在 WSDL 文件中配置标准 WS-RM 策略属性。如果您希望服务与部署到其他策略感知型 Web 服务堆栈的用户无缝地交互和使用 WS-RM,这是良好的方法。
例如,请参阅 “WS-Policy 框架:隐式添加拦截器”一节,在 WSDL 文件中配置基本重新传输间隔。
外部附加 复制链接链接已复制到粘贴板!
您可以在外部附加文件中配置标准 WS-RM 策略属性。如果您无法或不想更改 WSDL 文件,这是很好的方法。
例 21.7 “在外部附加中配置 WS-RM” 显示一个外部附件,为特定 EPR 启用 WS-A 和 WS-RM (基本重新传输间隔 30 秒)。
例 21.7. 在外部附加中配置 WS-RM
21.5.3. WS-RM 配置用例 复制链接链接已复制到粘贴板!
概述 复制链接链接已复制到粘贴板!
本小节重点介绍从用例角度配置 WS-RM 属性。如果属性是 http://schemas.xmlsoap.org/ws/2005/02/rm/policy/ 命名空间中定义的标准 WS-RM 策略属性,则仅显示在 rmManager
Spring bean 中的 RMAssertion
中设置它的示例。有关如何在功能中设置此类属性作为策略的详情;在 WSDL 文件或外部附加中,请参阅 第 21.5.2 节 “配置标准 WS-RM 策略属性”。
涵盖了以下用例:
基本重新传输间隔 复制链接链接已复制到粘贴板!
BaseRetransmissionInterval
元素指定 RM 源重新传输了尚未确认的消息的时间间隔。它在 http://schemas.xmlsoap.org/ws/2005/02/rm/wsrm-policy.xsd 模式文件中定义。默认值为 3000 毫秒。
例 21.8 “设置 WS-RM Base Retransmission Interval” 显示如何设置 WS-RM 基础重新传输间隔。
例 21.8. 设置 WS-RM Base Retransmission Interval
重新传输的指数 backoff 复制链接链接已复制到粘贴板!
ExponentialBackoff
元素决定了是否以指数级间隔执行非确认消息尝试连续重新传输。
存在 ExponentialBackoff
元素可启用此功能。默认使用 exponential backoff 比率 2
。ExponentialBackoff
是一个标志。当元素存在时,启用了 exponential backoff。当元素不存在时,会禁用 exponential backoff。不需要值。
例 21.9 “设置 WS-RM Exponential backoff 属性” 显示如何为重新传输设置 WS-RM 指数 backoff。
例 21.9. 设置 WS-RM Exponential backoff 属性
确认间隔 复制链接链接已复制到粘贴板!
AcknowledgementInterval
元素指定 WS-RM 目标发送异步确认的时间间隔。除了在接收传入消息时发送的同步确认之外。默认异步确认间隔为 0
毫秒。这意味着,如果 AcknowledgementInterval
没有配置为特定值,则确认将立即发送(即,第一个可用机会)。
只有满足以下条件时,RM 目的地才会发送异步确认:
-
RM 目的地使用非匿名
wsrm:acksTo
端点。 - 在确认间隔到期之前,不会发生对响应消息的确认机会。
例 21.10 “设置 WS-RM 确认间隔” 显示如何设置 WS-RM 确认间隔。
例 21.10. 设置 WS-RM 确认间隔
最大未确认的消息阈值 复制链接链接已复制到粘贴板!
maxUnacknowledged
属性设置在序列终止前每个序列可以意外处理的最大未确认消息数。
例 21.11 “设置 WS-RM Maximum Unacknowledged Message Threshold” 显示如何设置 WS-RM 最大值未确认的消息阈值。
例 21.11. 设置 WS-RM Maximum Unacknowledged Message Threshold
RM 序列的最大长度 复制链接链接已复制到粘贴板!
maxLength
属性设置 WS-RM 序列的最大长度。默认值为 0,
这意味着 WS-RM 序列的长度未绑定。
当设置此属性时,RM 端点会在达到限制时创建一个新的 RM 序列,并在收到之前发送消息的所有确认后。新消息使用新的sequence 发送。
例 21.12 “设置 WS-RM 消息序列的最大长度” 显示如何设置 RM 序列的最大长度。
例 21.12. 设置 WS-RM 消息序列的最大长度
消息交付保证策略 复制链接链接已复制到粘贴板!
您可以将 RM 目的地配置为使用以下交付保证策略:
例 21.13 “设置 WS-RM 消息交付保证策略” 显示如何设置 WS-RM 消息交付保证。
例 21.13. 设置 WS-RM 消息交付保证策略