BizTalk Wcf_Custom - SQL死锁问题

时间:2014-04-14 15:19:47

标签: biztalk biztalk-2010 biztalk-2009 biztalk2006r2 biztalk-orchestrations

我有DB SP UPDATEClientID,如下所示。其中将客户端ID作为参数 我在一秒钟内从WCF自定义适配器调用UPDATEClientID SP 50次。然后我看到了SQL死锁问题。

在我的场景中,我必须在一秒钟内调用UPDATEClientID SP 50次。如何解决SQL死锁问题?

CREATE  PROCEDURE [dbo].[UPDATEClientID]
    @ClientID VARCHAR(50) = NULL

AS
BEGIN

    SET NOCOUNT ON;

    UPDATE  CleintDetails
    SET     STATUS = 'Y'
    WHERE   ClientID = @ClientID            

END

2 个答案:

答案 0 :(得分:0)

你真的必须在一秒钟内调用此存储过程50次,或者你恰好每秒呼叫50次?

一些选项:

  1. 在发送端口上设置有序传递。这将序列化请求。然而,它会慢几个数量级。
  2. 使用锁定提示优化语句,例如ROWLOCK。

答案 1 :(得分:0)

存储过程代码在BizTalk服务器默认事务级别serializable下执行。将其更改为读取已提交。

我们可以通过存储过程中的以下语句设置事务级别。

SET TRANSACTION ISOLATION LEVEL READ COMMITTED