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