我们即将部署一个通过BizTalk处理大量消息的系统。由于这些消息是累积更新,因此在部署中断期间需要排队,然后在部署完成时按顺序处理。由于可能存在大量手动,因此很难手动执行此操作。
一种可能的解决方案是让发送端口停止并让消息暂停。然后,我们可以在部署完成后按顺序恢复它们。
是否可以针对BizTalk消息框数据库运行SQL脚本(或工具),该数据库将按照接收的顺序恢复特定端口的已暂停消息?
答案 0 :(得分:1)
如果您有订购要求(您要么做或不做),则应将发送端口标记为有序交付。
如果是这样,那么当您启动停止发送端口时,将按照提交的顺序处理邮件。
答案 1 :(得分:0)
如果您停止端口(但保留订阅)并在之后再次启动它应该恢复消息本身,或者如果不是,它很简单就可以进入管理控制台并批量恢复它们。
但是,如果通过运行Orchestrations也订阅了发送端口的响应消息,那么在完成所有操作之前,您将无法取消部署Orchestration,因此在此方案中停止发送端口将不起作用。
有时一个选项是,如果启动端口是单向接收,则停止接收位置并让所有内容完成。然后,您可以停止应用程序并重新部署并重新启动它,并且发送端口将获取要处理的所有等待消息。
如果无法实现上述目的,您可能需要查看执行side by side deployment,其中增加解决方案中所有程序集的版本号,以便您可以同时部署这两个版本,然后您可以允许旧版本完成运行,但让新版本处理任何新消息。
答案 2 :(得分:-1)
更好的选择是向msmq发送消息,通常不需要额外的编码。您可以使用MSMQ适配器将消息路由到msmq,然后在部署后按顺序接收它们,因为MSMQ适配器允许按顺序接收。在生产之前,请确保在QA环境中进行小型测试。