XA 数据源类型的用途选项

CREATE XADATASOURCE TYPE 语句指定用于访问来自符合 X/Open XA 标准的外部数据源的数据的目的函数。这些函数还使外部数据能够处理根据 GBase 8s 的事务语义进行处理。只有使用事务日志记录的数据库(如符合 ANSI 的数据库和支持显式事务的 GBase 8s 数据库)才支持事务协调。

下面的示例创建一个新的 XA 数据源类型 MQSeries®,其所有者是用户 gbasedbt
CREATE XADATASOURCE TYPE 'gbasedbt'.MQSeries(
          xa_flags    = 1,
          xa_version  = 0,
          xa_open     = gbasedbt.mqseries_open,
          xa_close    = gbasedbt.mqseries_close,
          xa_start    = gbasedbt.mqseries_start,
          xa_end      = gbasedbt.mqseries_end,
          xa_rollback = gbasedbt.mqseries_rollback,
          xa_prepare  = gbasedbt.mqseries_prepare,
          xa_commit   = gbasedbt.mqseries_commit,
          xa_recover  = gbasedbt.mqseries_recover,
          xa_forget   = gbasedbt.mqseries_forget,
          xa_complete = gbasedbt.mqseries_complete);

这些值表示 XA Switch Structure 中的字段,如文件 $GBASEDBTDIR/incl/public/xa.h 中所列。此示例中的规范的顺序遵循 sysxasourcetypes 系统目录表中的列名称的顺序,但是它们可以按任何顺序列出,前提是不重复任何项目。xa_flagsxa_version 值必须是数字;其余的必须是事务管理器可以调用的 UDR 的名称。这些 UDR 必须已存在于数据库中,然后才能发出 CREATE XADATASOURCE TYPE 语句,以在其用途选项规范中引用它们。

DROP FUNCTION 或 DROP ROUTINE 语句不能删除在 CREATE XADATASOURCE TYPE 语句的目的选项中列出的 UDR ,直到删除使用 UDR 定义的所有 XA 数据源类型。

有关如何使用上一示例中的 UDR 来协调与外部 XA 数据源的事务的信息,请参阅 GBase 8s DataBlade API 程序员指南

有关 MQDataBlade 模块的信息,请参阅 GBase 8s 数据库扩展用户指南