【问题标题】:Avoiding Zombies in BizTalk 2006 Orchestration在 BizTalk 2006 编排中避免僵尸
【发布时间】:2013-06-04 15:00:45
【问题描述】:

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

【问题讨论】:

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

标签: biztalk biztalk-2006


【解决方案1】:

一种选择是关联日期(除了 BTS.MessageType)

您必须创建一个在没有时间的情况下推广日期的管道组件。但是可能存在一些时间窗口,消息会“随机”发送到旧实例或新实例(例如,如果您有多个时间略有不同的 BizTalk 服务器,或者系统时钟与 NTP 源重新同步)。为了安全起见,请等待几分钟,然后再结束前一天的实例。

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

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

【讨论】:

    猜你喜欢
    • 2021-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 2019-12-31
    • 1970-01-01
    相关资源
    最近更新 更多