BizTalk 值映射缓存模式





0/5 (0投票)
本文试图解释在 BizTalk 集成中使用值映射缓存模式的时机。
了解典型集成中的值映射问题!
在一些集成项目中,需要反复映射源值和目标值。 考虑一个场景,在进行任何映射之前,必须查找目标值。 换句话说,对于每个插入或更新目标记录的请求,都必须对目标系统进行查找。 这意味着仅仅为了进行正确的插入或更新,就要对目标系统调用太多的调用。
考虑一个场景,需要更新带有“货币”值的“付款”记录。 为了在目标系统上更新此记录,必须获取货币值的货币“GUID”(例如,USD),然后向目标系统发送另一个请求,以使用插入的正确值来更新付款记录。 这被称为“聊天式”调用,这意味着对目标系统进行了太多的调用。

- 步骤 1:源系统调用一个“Web 服务”以“更新”或“插入”目标系统中的记录。
- 步骤 2:为了在目标系统中“插入”或“更新”一个值,查询 WS 用于检索合适的“GUID”值。
- 步骤 3:然后使用“GUID”值来调用插入/更新 WS,以正确更新“付款”记录。
有没有更好的方法?
这个想法是建立一个“缓存”并偶尔刷新它。 缓存将保存所有目标映射值,例如,在我们的示例方案中,各种货币的所有“GUID”。
为什么要缓存映射值?
这将非常有益,以便通过至少提高两倍来提高系统的性能。
您想缓存什么?
这将包含所有目标映射值。 在我们的场景中,各种货币的所有“GUID”。

一个典型的缓存数据库将包含“GUID”值,可以通过传递“货币代码”和“目标代码”来检索这些值。 此缓存表由业务流程定期更新。 这将帮助我们减少对目标系统的方法调用量,从而提高性能。
了解值映射缓存模式

步骤 1:循环直到缓存中有数据
声明一个“布尔”标志以确定何时退出主循环。 仔细观察业务流程结构,如果您将“terminate”标志设置为 false(默认值),则业务流程将等待预定义的时间,然后再重新刷新缓存。
步骤 2:编写业务流程的核心代码
使用一个异常“范围”来调用 Web 服务,以便检索所有值以构建值映射缓存。 请注意,此业务流程仅用于在自定义集成数据库中构建缓存。
步骤 3:缓存刷新周期
使用“timespan”对象来配置业务流程的“延迟”形状。 这将确定缓存刷新周期之间的时滞。
步骤 4:不要忘记添加配置条目
我们需要在“BizTalk”配置文件中或使用“SSO DB”配置来配置“terminate”标志和“延迟时间”以刷新缓存。
我们是否有其他更简单的替代方案?
好消息是,我们有。 有几种更简单的替代方案,特别是在使用“BizTalk Xref 数据”方面,Michael Stephenson 的文章对此进行了详细描述,请参阅“参考资料”部分。