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