感谢您的回答和您提供的链接。实际上我已经阅读了其中的一些,并且我还能够对这些解决方案进行一些测试。对于 SQL 适配器,BizTalk 主机群集被证明是一个很好的解决方案,但会导致您无法最大限度地利用 BizTalk 组(主机冗余)来实现可伸缩性目的。因此,出于这个原因,我们决定避免使用集群解决方案,但 MessageBox 确实需要集群以实现高可用性。我们试图完成的是有一个 Active / Active 或者我应该说通过 BizTalk Server Group 进行负载平衡,这意味着我们实际上将同时有几个 SQL 接收适配器轮询。最初我的解决方案是在查询级别通过锁定提示处理它,下面是我的 SP 示例。
MERGE INTO EmployeeComp
USING (SELECT EmployeeID
FROM
[AdventureWorks].[dbo].[EmployeeComp]
WITH (READPAST, UPDLOCK)
WHERE
[AdventureWorks].[dbo].[EmployeeComp].[Status] = 0) e(EmployeeID)
ON EmployeeComp.EmployeeID = e.EmployeeID
WHEN MATCHED THEN
UPDATE SET
STATUS = 2
OUTPUT Inserted.EmployeeID, Inserted.Name, Inserted.Status;
您能对我创建的 SP 提供一些反馈吗?我对 BizTalk WCF-SQL 适配器读取了大约 500,000 个数据进行了几次测试,然后同时写入了另外数千个数据,结果证明它按我的预期工作。
虽然解决方案似乎很好,但我还不确定对这种解决方案有什么影响,也许你也可以给我一些启示?
我还在考虑是否可以使用本文中的 SQL Server Service Broker。http://blogs.msdn.com/adapters/archive/2008/06/30/using-the-wcf-sql-adapter-to-read-messages-from-ssb-queues-and-submit-them-to- biztalk.aspx
现在我仍在检查它,但不确定是否有可能解决这个问题。
非常感谢