在调用脚本函数的BizTalk映射中,对象(您正在调用的类)是在第一次调用时初始化的,并且在转换发生的整个时间内保存在内存中?或者每次执行新行时或每次调用脚本时都会销毁和初始化?
我之所以问这个原因,是因为我讨论了通过脚本功能在内存中缓存一个小型查找表的优点。我想在第一次查看第一条记录时缓存字典,并使用相同的字典而不进行数据库访问以用于后续查找。
这是一种天真的做法吗?字典是否会丢失,因为对象将被重新初始化,或者它是否会保留在内存中直到转换结束?微软是否对此有任何指导(我找不到)?
答案 0 :(得分:1)
只要它是外部组件中的非静态类,BizTalk将在每次运行映射时创建一个新实例,并且如您所描述的那样“普通”缓存可以工作。
This post及其引用的帖子讨论了问题和一些不同的解决方案。