事务管理
1. 概述
事务管理是对组织层的事务实例进行管理。事务实例是实际运行的事务定义。一个事务定义可以有多个事务实例。
2. 事务管理列表
事务实例列表展示了事务实例的基本信息。
2.1 事务实例状态总览
- 完成状态:展示执行完成的事务实例数量。
- 运行中状态:展示正在进行中的事务实例数量。
- 失败状态:展示执行失败的事务实例数量。
2.2 按事务视图查看事务实例
列表字段:
- 事务实例:事务定义名称+事务实例的ID,是事务实例的标识,具有唯一性。
- 状态:事务实例的运行状态。共有
进行中
、完成
、失败
三种状态。 - 开始时间:事务实例开始运行的时间。以年-月-日 时:分:秒的形式展示。
- 关联业务类型:事务实例会关联至少一个业务。这个业务一般取事务实例运行时执行的第一个子事务所关联业务。业务有类型属性。该字段为事务实例关联的业务的业务类型。
- 关联业务ID:事务实例关联的业务的业务ID。
- 进度条:展示事务实例下各个任务的执行情况。绿色表示完成,红色表示失败,蓝色表示进行中,黄色表示队列中。
hover到事务实例的名称查看更多详情:
- ID:事务实例的ID,是事务实例的标识,具有唯一性。
- 所属事务定义:实例所属的事务定义。一个事务定义下可以有多个实例。
- 描述:saga的描述,说明saga中定义的事务所执行的功能流程。
- 所属微服务:定义saga的微服务。一般选择在saga的处理流程中,第一步涉及的微服务,在该微服务中定义saga。
- 触发层级:组织层。
- 开始时间:事务实例开始运行的时间。以年-月-日 时:分:秒的形式展示。
- 结束时间:事务实例运行结束的时间。以年-月-日 时:分:秒的形式展示。
2.3 按任务视图查看事务实例
- 任务编码:任务的编码。
- 状态:事务实例时任务的运行状态。共有
进行中
、完成
、失败
、队列中
四种种状态。 - 所属事务实例:任务所属的事务实例。
- 描述:任务的描述,对任务进一步补充说明。
- 实际开始时间:任务实际开始运行的时间。
- 实际完成时间:任务实际运行完成的时间。
- 重试次数:已重试次数与最大重试次数的比值。
3. 事务实例详情
- 进入管理中心,点击菜单“管理>事务管理>事务定义”,进入事务管理页面。
- 点击事务管理列表的实例名称,可查看事务实例运行的详情。
详情页以流程图的形式展示实例的实际运行情况。流程图展示了按执行顺序执行的任务及输入、输出。
- 任务也可称为事务实例里的一系列子事务。任务一共有
等待
、运行中
、完成
、失败
四种状态。 - 输入、输出为位于开始和结束节点的圆形。点击输入节点,显示json格式的输入参数的数据;点击输出参数,显示json格式的输出结果数据。
- 任务为位于输入、输出节点之间的正方形。点击任务节点,显示任务的运行情况和该任务在事件定义中的详情。
- 任务也可称为事务实例里的一系列子事务。任务一共有
点击正方形的任务节点,显示任务的运行情况和该任务在事件定义中的详情任务的运行情况有如下信息:
- 任务编码:用来标识任务,具有唯一性。
- 状态:任务的状态,一共有
等待
、运行中
、完成
、失败
四种状态。 - 序列:任务在执行流程中的执行顺序。
- 运行的微服务实例:运行这个任务的微服务实例。因为是分布式事务,所以不同的任务会分布在不同的微服务中运行。
- 最大重试次数:若任务执行失败后,系统自动重试的最大次数。
- 已重试次数:任务失败后,系统已经重试的次数。
- 当状态为
完成
时,显示运行结果:显示json格式的输出结果数据。 - 当状态为
失败
时,显示异常信息:导致任务运行失败的原因。
4. 解锁任务
当任务的状态为等待、运行中或失败中任一种,且运行的微服务实例不为空时,任务将会被锁住,此时,允许进行解锁操作。
如果锁住任务的微服务实例出现异常,但任务没有接收到异常信息时,任务将保持锁住状态,此时,可以在界面将任务解锁,解锁后,任务可以被同一微服务的其他实例进行锁定。解锁步骤如下:
- 点击事务实例的名称,查看详情。
- 出现事务实例的事务执行流程图后,点击要解锁的任务。
- 出现任务运行情况后,在运行情况顶部点击解锁→按钮。
5. 重试任务
当任务的执行出现异常时,系统将会自动进行重试,当已重试次数达到最大重试次数的值时,该任务的状态将从运行中变为失败,允许用户可在界面上进行手动重试操作。重试步骤如下:
- 点击事务实例的名称,查看详情。
- 出现事务实例的事务执行流程图后,点击要重试的任务。
- 出现任务运行情况后,在运行情况顶部点击重试→按钮。
6. 强制失败
当任务执行状态为进行中或者等待被拉取的状态时,用户可以强制将任务置为失败状态
- 点击事务实例的名称,查看详情。
- 出现事务实例的事务执行流程图后,点击要强制失败的任务。
- 出现任务运行情况后,在运行情况顶部部点击强制失败→按钮。