我們有一個在SQL 2005上運行的數據庫。其中一個存儲過程使用鏈接服務器從Active Directory查找用戶的電子郵件地址。對鏈接服務器的調用發生在數據庫函數中。SQL 2005鏈接服務器查詢定期失敗
我能叫成功是從我的Asp.Net應用程序中的第一次,但在此之後定期時,出現以下錯誤:
{「請求的操作不能因爲OLE DB進行提供程序\「ADsDSOObject \」對於鏈接服務器\「ADSI \」不支持所需的交易接口。「}
看起來,調用函數之間的時間量會影響鏈接服務器查詢是否正常工作。我沒有使用任何交易。當我嘗試在快速轉換SQL腳本中調用函數時,它每次都運行正常(即使在快速連續測試時也是如此)。
如果我不嘗試再次調用該過程,是否有某種事務會自然死亡?我在這裏不知所措。
這裏是存儲過程的簡單調用:
DECLARE @email varchar(50)
SELECT @email = LEFT(mail, 50)
FROM OPENQUERY (
ADSI,
'SELECT mail, sAMAccountName FROM ''LDAP://DC=Katz,DC=COM'' WHERE objectCategory = ''Person'' AND objectClass = ''User'''
)
WHERE sAMAccountName = CAST(@LoginName AS varchar(35))
RETURN @email
我的LDAP查詢一次只返回1個對象,所以我不認爲返回對象的數量是一個問題。 我可以看看安全上下文,但我有點懷疑,因爲有時它有效,有時它不。但整個過程中,安全環境保持不變。 – anschoewe 2009-01-28 02:56:19