21.6. 配置 WS-RM Persistence


概述

在本章中已描述的 Apache CXF WS-RM 功能为网络故障等情况提供了可靠性。WS-RM 持久性提供跨其他类型的故障的可靠性,如 RM 源或 RM 目标崩溃。

WS-RM 持久性涉及将各种 RM 端点的状态存储在持久存储中。这可让端点在收到通知时继续发送和接收信息。

Apache CXF 在配置文件中启用 WS-RM 持久性。默认的 WS-RM 持久性存储是基于 JDBC。为方便起见,Apache CXF 包括 Derby 进行即用部署。另外,永久存储也使用 Java API 公开。要实施自己的持久性机制,您可以使用这个 API 与您首选的 DB 来实施。

重要

WS-RM 持久性仅支持单向调用,默认是禁用的。

如何使用

Apache CXF WS-RM 持久性如下:

  • 在 RM 源端点中,传出的消息会在传输前保留。它在收到确认后从持久性存储中驱除。
  • 从崩溃恢复后,它会恢复保留的消息并重新传输,直到所有消息都已确认为止。此时,RM 序列将关闭。
  • 在 RM 目标端点中,进入的消息会被保留,并在成功存储后发送确认信息。当消息被成功分配时,它将从持久性存储中驱除。
  • 从崩溃恢复后,它会恢复持久的消息并分配它们。它还将 RM 序列设置为接受、确认和交付新消息的状态。

启用 WS-persistence

要启用 WS-RM 持久性,您必须为 WS-RM 指定实施持久性存储的对象。您可以自行开发,也可以使用基于 Apache CXF 随附的 JDBC 存储。

例 21.14 “配置默认 WS-RM Persistence 存储” 中显示的配置启用了基于 JDBC 的存储,该存储与 Apache CXF 一同启用。

例 21.14. 配置默认 WS-RM Persistence 存储

<bean id="RMTxStore" class="org.apache.cxf.ws.rm.persistence.jdbc.RMTxStore"/>
<wsrm-mgr:rmManager id="org.apache.cxf.ws.rm.RMManager">
    <property name="store" ref="RMTxStore"/>
</wsrm-mgr:rmManager>

配置 WS-persistence

由 Apache CXF 附带的基于 JDBC 的存储支持 表 21.4 “JDBC 存储属性” 中显示的属性。

表 21.4. JDBC 存储属性
属性名称类型默认设置

driverClassName

字符串

org.apache.derby.jdbc.EmbeddedDriver

userName

字符串

null

passWord

字符串

null

url

字符串

jdbc:derby:rmdb;create=true

例 21.15 “为 WS-RM Persistence 配置 JDBC 存储” 中显示的配置启用了基于 JDBC 的存储,该存储与 Apache CXF 一同启用,同时将 driverClassNameurl 设置为非默认值。

例 21.15. 为 WS-RM Persistence 配置 JDBC 存储

<bean id="RMTxStore" class="org.apache.cxf.ws.rm.persistence.jdbc.RMTxStore">
    <property name="driverClassName" value="com.acme.jdbc.Driver"/>
    <property name="url" value="jdbc:acme:rmdb;create=true"/>
</bean>
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.