GBase 8s 事务对符合 XA 的外部数据源的支持

GBase 8s 事务管理器 GBase 8s 的主体部分,而不是单独模块,用于识别符合 XA 的外部数据源。这些数据源可参与两阶段落实事务。

对于参与特殊事务事件(例如,准备、落实或回滚)的分布式事务每个符合 XA 的外部数据源,事务管理器都会对其运行支持例程。该交互符合 X/Open 接口标准。

符合 XA 的外部数据源的事务支持(也称为资源管理器)使您能够执行以下操作:
  • 创建符合 XA 的外部数据源类型及其实例。
  • 创建或修改用户定义的例程 (UDR)、虚拟表接口或虚拟索引接口以启用符合 XA 的数据源来为来自符合 XA 的数据源的外部数据提供数据访问机制。

    MQ DataBlade 模块 是提供此类型外部数据访问的一组 UDR 的示例。

  • 将符合 XA 的外部数据源注册到 GBase 8s
  • 注销符合 XA 的外部数据源。
  • 在同一个全局事务中使用多个符合 XA 的外部数据源。

事务与符合 XA 的外部数据源的协调仅在以 GBase 8s 登录的数据库和符合 ANSI 标准的数据库中受支持,因为这些数据库都支持事务。事务与符合 XA 的外部数据源的协调在未登录的数据库中不受支持。

可使用以下 DDL 语句,它们是用于管理 XA 数据源类型和数据源的 SQL 语句的扩展:
语句 描述
CREATE XADATASOURCE TYPE 创建符合 XA 的外部数据源类型
CREATE XADATASOURCE 创建符合 XA 的外部数据源实例
DROP XADATASOURCE 删除符合 XA 的外部数据源实例
DROP XADATASOURCE TYPE 删除符合 XA 的外部数据源类型

有关这些语句的更多信息,请参阅 GBase 8s SQL 指南:语法

GBase 8s 和符合 XA 的外部数据源之间的交互通过一组用户定义且支持 XA 的例程(例如,xa_openxa_end xa_commitxa_prepare)执行。可在使用 CREATE XADATASOURCE TYPE 语句之前创建这些支持例程。有关更多信息,请参阅 GBase 8s DataBlade API 程序员指南

在创建了符合 XA 的外部数据源之后,可使用 mi_xa_register_xadatasource()(或 ax_reg())和 mi_xa_unregister_xadatasource()(或 ax_unreg())函数将该数据源注册到当前事务和注销该数据源。在分布式环境中,必须在本地协调者服务器上注册数据源。注册是瞬态的,持续时间仅仅是该事务的持续时间。有关这些函数的更多信息,请参阅 GBase 8s DataBlade API Function 参考GBase 8s DataBlade API 程序员指南

使用以下 onstat 选项可显示有关包含符合 XA 的数据源的事务的信息:
onstat 选项 此命令显示的符合 XA 的数据源信息
onstat -x 显示有关事务中的 XA 参与者的信息。
onstat -G 显示有关全局事务中的 XA 参与者的信息。
onstat -g ses session id 显示会话信息,包括有关参与事务的 XA 数据源的信息。

GBase 8s MQ DataBlade 模块 提供 XA 数据源的外部数据访问机制。有关此 DataBlade 模块的信息,请参阅《GBase 8s Database Extensions 用户指南》。