我在Biztalk 2006 R2中遇到了业务规则引擎的问题。
我在英国有一项政策。类库用于调用策略。
我已经实现了一个LongTermFactRetriever。
如果一次通过业务流程发送1条消息,所有BRE缓存都会得到刷新。
但是,如果我们发送大量消息(比如同时发送5条消息),BRE缓存会刷新4次(对于业务流程的4个实例,factsHandleIn为null )。
现在,我们在BRE工作内存中有5个缓存对象。同样,如果我们发送批量消息(同时发送5条消息),则使用缓存的实例,而不创建新实例。
我的查询是:“是否对流经业务流程的每个消息使用相同的1缓存实例,或者如果现有的缓存被另一条消息使用,它是否应该为并发消息创建一个新实例”。
发布于 2009-06-15 20:51:26
在某些情况下,BizTalk BRE可以缓存长期事实的多个实例。在您的事实检索器中,您负责确定何时更新长期事实,并跟踪哪些BRE实例正在缓存您的长期事实。
下面是BizTalk文档的相关部分 (出现在"DataTable绑定示例“之前):
“在某些批处理场景中,可以创建相同策略的多个策略实例。如果创建了新的策略实例,则必须确保断言正确的长期事实。
此外,您还需要编写自定义代码来实现以下策略:
第二点(跟踪哪个规则引擎实例使用哪个长期事实),如果您只有最新事实的一个版本,并且可以在必要时可靠地刷新它们,则严格来说不是必要的--在大多数简单的情况下都是如此。
https://stackoverflow.com/questions/994771
复制相似问题