首页 > 解决方案 > 在高音量期间禁用/阻止 BizTalk WCF 发送端口

问题描述

我有一个非关键/可选的 WCF 发送端口,它在正常操作期间很有用,但需要在一定的消息吞吐量下自动禁用。当连接的系统执行数据加载(每小时 100 000 条消息或更多)时,就会出现这种高容量。不应保留或处理来自大量时间的消息,而应完全丢弃。一旦音量降至阈值水平以下,发送端口应恢复处理/发送消息。该应用程序不使用编排。到目前为止,我唯一的想法是使用自定义管道组件和类似 redis 的东西来跟踪吞吐量,然后基于此删除或发送消息。这似乎不是一个很好的hack。

我的问题是:使用 WCF 适配器(或其他东西)是否有一种简单的方法可以根据当前的消息吞吐量删除或发送消息?

标签: biztalkbiztalk-2016biztalk-wcf

解决方案


在这种情况下,我通常做的是将传入的消息保存到数据库表中,然后有一个接收位置来轮询该表以处理消息。因此,您可以有一个由该轮询接收位置调用的存储过程,如果有太多消息未决,请删除它们。如果您确实想要处理所有消息,或者如果您想要批量发送消息,则此方法也适用。

注意:在这种情况下,不要设置 Poll while messages found = True。


推荐阅读