在BizTalk 2006编排中避免僵尸

在BizTalk 2006编排中避免僵尸,biztalk,biztalk-2006,Biztalk,Biztalk 2006,我正在运行BizTalk 2006,我有一个业务流程,它接收一系列与BTS.MessageType相关的消息(订单)。在我的延迟形状上,我检查直到午夜的时间,这是批次切断。我偶尔会收到循环结束后收到的消息,这就是创建僵尸消息。我仍然需要处理这些消息,但是在编排的新实例中。我需要一些关于如何优雅地处理这件事的想法 一个选项是关联日期(除了BTS.MessageType) 您必须创建一个管道组件来提升没有时间的日期。但是,可能存在某个时间窗口,消息将“随机”发送到旧实例或新实例(例如,如果您有多个时

我正在运行BizTalk 2006,我有一个业务流程,它接收一系列与BTS.MessageType相关的消息(订单)。在我的延迟形状上,我检查直到午夜的时间,这是批次切断。我偶尔会收到循环结束后收到的消息,这就是创建僵尸消息。我仍然需要处理这些消息,但是在编排的新实例中。我需要一些关于如何优雅地处理这件事的想法

一个选项是关联日期(除了BTS.MessageType)

您必须创建一个管道组件来提升没有时间的日期。但是,可能存在某个时间窗口,消息将“随机”发送到旧实例或新实例(例如,如果您有多个时间略有不同的BizTalk Server,或者如果系统时钟与NTP源重新同步)。为了安全起见,请在结束前一天的实例之前等待几分钟

如果旧实例和新实例之间的重叠窗口是一个问题,则应改为关联另一个每天仅更改一次的值,例如存储在数据库中并由管道组件升级的Guid


否则,我已经在过去的项目中成功地使用了您的“黑客”解决方案,只要您能够容忍一个小窗口,在该窗口中消息排队,并且每天几分钟内不会立即处理。就我而言,这很好,因为消息是由美国用户在工作日生成的,并通过FTP或MSMQ发送。但是,如果您有通过web服务发送消息的国际用户,那么您可能一天中没有时间接收不到任何消息,web服务将无法将消息排队以供以后处理。

一个选项是在日期上关联(除了BTS.MessageType)

您必须创建一个管道组件来提升没有时间的日期。但是,可能存在某个时间窗口,消息将“随机”发送到旧实例或新实例(例如,如果您有多个时间略有不同的BizTalk Server,或者如果系统时钟与NTP源重新同步)。为了安全起见,请在结束前一天的实例之前等待几分钟

如果旧实例和新实例之间的重叠窗口是一个问题,则应改为关联另一个每天仅更改一次的值,例如存储在数据库中并由管道组件升级的Guid


否则,我已经在过去的项目中成功地使用了您的“黑客”解决方案,只要您能够容忍一个小窗口,在该窗口中消息排队,并且每天几分钟内不会立即处理。就我而言,这很好,因为消息是由美国用户在工作日生成的,并通过FTP或MSMQ发送。但是,如果您有通过web服务发送消息的国际用户,那么您可能一天中没有时间接收不到任何消息,web服务将无法将消息排队等待以后处理。

作为一个旁注,作为一种黑客(不优雅)解决方案的尝试,我在接收位置设置了一个时间表,以确保在编排离开循环后不会收到任何消息。我知道这不是最好的,但它似乎暂时解决了这个问题。顺便说一句,作为一种黑客(不优雅)解决方案的尝试,我在接收位置设置了一个时间表,以确保在编排离开循环后不会收到任何消息。我知道这不是最好的,但它似乎暂时解决了问题。