Sun Java System Message Queue 4.2 发行说明

C-API 的分布式事务支持

根据 X/Open 分布式事务模型,分布式事务支持依赖于分布式事务管理器,后者跟踪并管理一个或多个资源管理器所执行的操作。在 Message Queue 4.2 中,Message Queue C-API 现在支持 XA 接口(位于分布式事务管理器和 Message Queue 之间,作为符合 XA 的资源管理器),以使分布式事务处理环境(如 BEA Tuxedo)中运行的 Message Queue C-API 客户端能够参与分布式事务。

这种分布式事务支持包含以下用于实现 XA 接口规范的新 C-API 函数(以及新参数和错误代码):

MQGetXAConnection()
MQCreateXASession()

如果要在分布式事务上下文中使用 C 客户端应用程序,该应用程序必须使用 MQGetXAConnection() 获取连接,并使用 MQCreateXASession() 创建会话以生成和使用消息。任何分布式事务的启动、提交和回滚操作都是通过分布式事务管理器提供的 API 进行管理的。

公共信息

X/Open XA 接口规范需要以下有关符合 XA 的 Message Queue 资源管理器的公共信息:

支持以下名称/值对:

表 1–6 Message Queue 资源管理器名称/值对

名称 

值 

描述 

默认值 

address 

host:port

代理的端口映射器服务的主机:端口。 

localhost:7676

username 

字符串 

用于连接到代理的用户名 

guest

password 

字符串 

用户名的密码 

guest

conntype 

TCP 或 SSL 

连接代理的协议类型 

TCP

trustedhost 

true/false 

代理主机是否可信(仅适用于 conntype=SSL) 

true

certdbpath 

字符串 

包含 NSS 证书和密钥数据库文件的目录的完整路径 

未设置 

clientid 

字符串 

仅对 JMS 持久订阅是必需的 

未设置 

reconnects 

整数 

重新连接到代理的尝试次数(0 表示不重新连接) 

0

编程示例

要编写使用分布式事务的应用程序,请创建一个在事务管理器环境中运行的服务器端服务,以及调用事务管理器 API 的客户端代码。Message Queue 4.2 提供了一些基于 Tuxedo 事务管理器的编程示例。这些示例位于每个平台 ./C/tuxedo 目录下的样例程序目录中。

此目录包含一个 README 文件,它说明了如何设置 Tuxedo 以使用 Message Queue 资源管理器,以及如何在 Tuxedo 环境中生成以下样例程序:

样例程序 

描述 

jmsserver.c

实现 Tuxedo 服务以通过 Message Queue 发送和接收消息。 

jmsclient_sender.c

使用 jmsserver.c 程序中的消息生成服务的 Tuxedo 客户端。

jmsclient_receiver.c

使用 jmsserver.c 程序中的消息接收服务的 Tuxedo 客户端。

async_jmsserver.c

实现 Tuxedo 服务以通过 Message Queue 异步使用消息。 

jmsclient_async_receiver.c

使用 async_jmsserver.c 程序中的异步消息使用服务的 Tuxedo 客户端。