3.2. 管理事务
查看交易的属性
要查看事务的相关信息,如 Java 命名和目录接口名称、EIS 产品名称和版本或其状态,请使用 read-resource 操作。
/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9:read-resource
/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9:read-resource
查看交易参与者的详细信息
每个事务日志包含一个子元素,称为 参与者。使用此元素的 read-resource 操作来查看事务参与者的详细信息。参与者通过其 Java 命名和目录接口名称标识。
/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9/participants=java\:\/JmsXA:read-resource
/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9/participants=java\:\/JmsXA:read-resource
结果可能类似如下:
此处显示的结果状态为 HEURISTIC 状态,并有资格恢复。如需了解更多详细信息 ,请参阅恢复 交易参与者。
特殊情况下,可以在对象存储中创建孤立记录,即 XAResourceRecords,日志中没有任何对应的事务记录。例如,XA 资源已准备好,但在 TM 记录之前崩溃,域管理 API 无法访问 XA 资源。要访问这些记录,您需要将 management 选项 expose-all-logs 设置为 true。此选项不会保存在管理模型中,并且在服务器重启时恢复到 false。
/profile=default/subsystem=transactions/log-store=log-store:write-attribute(name=expose-all-logs, value=true)
/profile=default/subsystem=transactions/log-store=log-store:write-attribute(name=expose-all-logs, value=true)
您可以使用这一备用命令,以汇总格式显示事务参与者 ID。
/host=master/server=server-one/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9:read-children-names(child-type=participants)
/host=master/server=server-one/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9:read-children-names(child-type=participants)
删除交易参与者
每个事务日志都支持 删除 操作,从而删除代表事务的事务日志。
/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9:delete
/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9:delete
这也会删除交易中的所有参与者。
通常,您可以将参与者的日志管理保留到恢复系统或拥有该系统的事务日志中,但当您知道这样做是安全的情况下,可以使用 删除 操作。如果是 heuristicly completed XA 资源,则会触发一个 忘记 调用,以便正确清理 XA 资源供应商日志。如果这个 忘记 调用失败,默认情况下 删除 操作仍然会成功。您可以通过将 ObjectStoreEnvironmentBean.ignoreMBeanHeuristics 系统属性设置为 false 来覆盖此行为。
恢复交易参与者
每个交易参与者都支持使用恢复操作进行 恢复。
/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9/participants=2:recover
/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9/participants=2:recover
如果交易参与者的状态是 HEURISTIC,则 恢复 操作会将状态切换到 PREPARE,并请求定期恢复过程重新播放提交。
如果提交成功,则从事务日志中移除参与者。您可以通过在 日志存储上运行 参与者是否不再列出来进行验证。如果这是最后一个参与者,则交易也将被删除。
探测 操作并检查
刷新交易参与者的状态
如果事务需要恢复,您可以使用 刷新 操作确保在尝试恢复前仍然需要恢复。
/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9/participants=2:refresh
/profile=default/subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-b66efc2\:4f9e6f8f\:9/participants=2:refresh