跳到主要内容

对事务执行启发式操作

可以对XA事务、XA会话和本地事务会话执行一些管理操作。

这些管理操作是启发式的,因为它们是影响事务结果的单方面决定。如果管理操作与初始应用程序请求所选择的不同,启发式管理操作可能会破坏事务的原子性。

可以对XA事务执行以下管理操作:

  • 启发式提交XA事务
  • 启发式回滚XA事务
  • 启发式删除XA事务

可以对XA会话或事务(本地)会话执行以下管理操作:

  • 启发式删除XA会话或事务会话

启发式提交XA事务

可以对处于空闲或准备状态的XA事务进行启发式提交。

XA事务成功提交后,不会自动释放,而是处于启发式提交状态。然后可以通过管理操作删除处于启发式提交状态的XA事务。

要启发式提交XA事务,请输入以下命令:

solace> enable
solace# admin
solace(admin)# message-spool message-vpn <vpn名称>
solace(admin/message-spool)# commit-transaction xid <xid>

其中: <xid>是唯一标识XA事务的Xid。可以使用通配符“*”或“?”。

启发式回滚XA事务

可以对处于空闲或准备状态的XA事务进行启发式回滚。XA事务成功回滚后,不会自动删除。但是,可以通过管理操作删除该XA事务。

要启发式回滚XA事务,请输入以下命令:

solace> enable
solace# admin
solace(admin)# message-spool message-vpn <vpn名称>
solace(admin/message-spool)# rollback-transaction xid <xid>

其中: <xid>是唯一标识XA事务的Xid。可以使用通配符“*”或“?”。

启发式删除XA事务

可以启发式删除处于启发式完成状态(即已成功启发式提交或回滚)的XA事务。

要启发式删除XA事务,请输入以下命令:

solace> enable
solace# admin
solace(admin)# message-spool message-vpn <vpn名称>
solace(admin/message-spool)# delete-transaction xid <xid>

其中: <xid>是唯一标识XA事务的Xid。可以使用通配符“*”或“?”。

启发式删除XA会话或事务会话

可以通过名称标识来启发式删除XA会话。当删除XA会话时,与该XA会话关联的所有事务都将回滚并删除,连接到该XA会话的客户端将被断开连接。

也可以通过名称标识来启发式删除事务会话(即非XA本地事务)。当删除事务会话时,与该事务会话关联的所有事务都将回滚并删除,连接到该事务会话的客户端将被断开连接。

要删除XA会话或事务会话,请输入以下命令:

solace> enable
solace# admin
solace(admin)# message-spool message-vpn <vpn名称>
solace(admin/message-spool)# delete-transacted-session <名称>

其中: <名称>是XA会话或事务会话的名称。可以使用通配符“*”或“?”。