工业数字模型驱动引擎
工业数字模型驱动引擎
- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
- 控制台操作指南
-
数据建模引擎用户指南
- 设计态使用指南
- 运行态使用指南
- 流程引擎使用指南
- 数字主线引擎用户指南
- 最佳实践
- 开发指南
-
API参考
- 使用前必读
- API概览
- 如何调用API
-
API
- 应用管理
- 运行服务管理
-
数据建模引擎
- 基础数据服务
-
版本服务
- 管理员更新M-V模型数据实例
- 管理员批量更新M-V模型数据实例
- 管理员撤销检出M-V模型数据实例
- 管理员批量撤销检出M-V模型数据实例
- 获取指定M-V模型实例的版本列表
- 获取指定版本的M-V模型实例数据
- 检出M-V模型数据实例
- 批量检出M-V模型数据实例
- 检出并更新M-V模型
- 批量检出并更新M-V模型
- 撤销检出M-V模型数据实例
- 批量撤销检出M-V模型数据实例
- 检入M-V模型数据实例
- 批量检入M-V模型数据实例
- 更新并检入M-V模型数据实例
- 批量更新并检入M-V模型数据实例
- 修订M-V模型数据实例
- 批量修订M-V模型数据实例
- 修订并更新M-V模型数据实例
- 批量修订并更新M-V模型数据实例
- 批量升级M-V模型实例的版本号
- 删除版本对象下最新分支的最新版本实例数据
- 软删除版本对象下最新分支的最新版本实例数据
- 删除最新大版本下的所有小版本
- 批量删除最新大版本下的所有小版本
- 软删除M-V模型实例下最新分支的所有小版本数据
- 批量软删除最新大版本下的所有小版本
- 对比M-V模型实例
- 失效管理
- 业务编码生成器
- 标签管理
- 生命周期管理
- 系统版本
- 多维视图和多维分支
- 关系实体服务
- 树形结构
- 流程引擎
- 应用示例
- 权限和授权项
- 附录
- SDK参考
-
常见问题
- 一般性相关问题
- 计量计费相关问题
-
数据建模引擎相关问题
- 设计态与运行态有什么区别?
- 为什么无法登录应用运行态?
- 为什么用户管理中会有“用户不存在”的用户?
- 为什么登录应用运行态时提示“缺少参数或参数错误”?
- 为什么设置输入型参数时提示安全校验失败?
- 应用发布后,在运行态为什么看不到构建的模型数据?
- 如何验证已设置的用户权限已生效?
- 什么是XDM应用?
- 什么是M-V模型?
- 数据建模引擎支持哪些属性类型?
- 枚举、合法值和参考对象的区别是什么?
- 入图和不入图有什么不同?
- 数据建模引擎支持哪些层级的缓存?
- 如何进行应用同步?
- 可以通过API方式使用应用设计态吗?
- 体验版数据建模引擎和基础版数据建模引擎提供的API有什么不同?
- 如何查看数据建模引擎的版本号?
- 如何避免数据模型互相引用形成环?
- 使用JDK 17版本应用运行态时,服务编排存在哪些约束与限制?
-
数字主线引擎相关问题
- 什么是企业租户和应用租户?
- 创建实体时选择构建表的作用是什么?
- 复杂实体属性太多,创建麻烦怎么办?
- 什么是源端映射和目标端映射?
- 什么是增量字段?
- 关系型数据库映射配置中DelFlag字段的作用是什么?
- 创建数据质量任务时,怎么选不出数据实体?
- 为什么LinkX-F中xDM-F来源的实例数据的最后更新时间显示与xDM-F中不一致
- 什么是入图调度的数据起止时间和数据分片间隔?
- 聚合服务编排中非纯脚本服务选择入参时,提示错误“初始数据实体必填入参为空,请选择必填入参”?
- 发布聚合服务后生成的API如何调用?
- 调用聚合服务时提示“查找不到该企业用户”
- 为什么操作时提示WSF参数校验失败?
- 描述类信息中输入英文双引号导致系统错误提示
- 全量数据服务API相关问题
- 文档下载
- 通用参考
链接复制成功!
方案概述
背景信息
在应用开发过程中,可能会存在一个核心业务逻辑的执行需要同时调用多个下游业务进行处理的场景。因此,如何保证核心业务和多个下游业务的执行结果完全一致,是事务需要解决的主要问题。
以某工厂整体业务流程为例,生产管理部向生产车间发放生产工单这一核心操作的同时会涉及到生产部的领料加工、采购部的原材料采购等多个子系统的变更。当前业务的处理分支包括:
- 主分支生产工单系统状态更新:由待处理变更为生产中。
- 加工系统状态变更:新增产品加工记录,新增用料记录。
- 原材料采购状态变更:变更原材料数量,更新原材料库存表。
基于普通消息方案,将工单系统变更作为本地事务,剩下的系统变更作为普通消息的下游来执行。此时,消息下游分支和工单系统变更的主分支很容易出现不一致的现象。例如:
- 消息发送成功,工单没有执行成功,需要回滚整个事务。
- 工单执行成功,消息没有发送成功,需要额外补偿才能发现不一致。
- 消息发送超时未知,此时无法判断需要回滚工单还是提交工单变更。
为了保证上述分支的执行结果一致,具备提交、回滚和统一协调的能力,工业数字模型驱动引擎-数据建模引擎(xDM Foundation,简称xDM-F)提供事务型任务功能,编排多个原子接口,并与本地事务绑定,实现多接口提交结果的一致性,并提升接口调用速率和性能。
操作流程
图1 事务型任务操作流程
![](https://support.huaweicloud.com/bestpractice-idme/figure/zh-cn_image_0000001669514384.png)
- 创建事务型任务
此接口需要设置执行iDME原子接口的数量,完成事务型任务的初始化。
- 执行iDME原子接口
根据创建事务型任务时设置的原子接口数量,依次执行。执行的原子接口会被单独存储到iDME事务存储系统中,等待提交事务型任务返回执行结果后再统一提交。
- 提交事务型任务
- 同步提交:原子接口按照指定顺序执行,需等待上一个原子接口执行完成后再执行下一个原子接口,适用于需要等待任务完成后才能继续执行的场景。例如,在读取文件或者网络请求时,应用需要等待文件读取完成后才能继续执行下一步操作。
- 异步提交:各原子接口间串行执行,适用于需要同时执行多个任务的场景。例如,在多线程或者多进程的编程中,应用可以同时执行多个任务,提高应用的执行效率。
所有原子接口都提交成功,则原子接口数据提交成功;否则,所有原子接口都进行数据回滚操作。
- 查询事务型任务执行结果
您可以通过此接口快速搜索您想要的事务任务执行结果。
使用说明
- v1版本事务型任务接口最多支持执行5个原子接口。v2版本事务型任务接口,在异步提交事务型任务的原子接口取消数量限制。
- 不支持跨租户或跨数据源使用事务型任务功能。
- 不支持非数据库操作(如文件上传)。
父主题: 通过事务型任务API实现事务一致性