2009-04-08 61 views
0

如果我有一個只顯示一個調用的.asmx Web服務。一個需要幾個參數並將這些值插入SQL Server 2005表中的記錄。該方法應該怎樣看待ADO.NET連接池儘可能「友善」?如果它被稱爲每秒10次(分散)在多個客戶端上,它應該是什麼樣子。我應該調整任何其他設置?Web服務,ADO.NET連接池,超時錯誤

目前我得到的錯誤:

System.Web.Services.Protocols.SoapException:
Server was unable to process request --> System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to the operation or the server is not responding.

請問錯誤是不同的,如果連接池是問題嗎? 如何判斷這是連接池問題,SOAP限制還是數據庫太忙以至於調用實際上超時?

回答

1

你不會發布一些關於你在做什麼的最重要的信息。它是一種網絡方法,這是一個紅鯡魚,它只是歸結爲一個數據庫問題,以及你對此有多大的看法。

看起來你可能在這裏有一個連接問題,因爲例外狀態(我不相信它與池有任何關係)。試圖打開連接或試圖執行操作時,你是否得到了這個?每個人都有一個單獨的超時,所以明確地打開連接然後調用操作可能是一個好主意,所以你可以看到超時發生的地方。

此外,我會看看你是否使用交易。如果這包含在連接中,並且超時位於操作上,並且您正在使用事務,那麼您是否正在使用事務訪問事務中包裝的任何其他位置(讀或寫)的此表?這可能是一個僵局。

如果不是這樣,那麼這是一個連接問題,您必須查看機器和服務器是否配置正確(您是否使用tcp ip,命名管道或共享內存例如)進行數據庫操作。

+0

+1。感謝您排除Web服務。我正在使用TCP/IP並且沒有事務。在另一臺機器上的多維數據集構建活動之前,SSIS包中的數據可能會在此計算機上進行繁重的活動。由於我不在BI或DBA團隊中,因此這些東西有點不在我的手中。 – BuddyJoe 2009-04-08 18:37:14