Fail to query LDAP after completing transaction

Bloqueada Fail to query LDAP after completing transaction

  • lunes, 19 de marzo de 2012 4:28
     
     

    I am deleloping a web site in .Net framework 4, SQC 2008 R2 database. I am using System Transaction for transaction and Enterprise Library data for all Database access, all DB accesses are done through stored procedures.

    On one page, I have some operations (insert, update) in a transaction (on the same database), after that I have an inquiry, in this stored procedure there is join to linked server view that querying LDAP. The inquiry gives error: The requested operation could not be performed because OLE DB provider "ADSDSOObject" for linked server "ADSI" does not support the required transaction interface.

    My code would have the below structure,

    Dim trnscope as TransactionScope = New TransactionScope(TransactionScopeOption.RequiresNew)

    Using transcope

    objA.insert

    objB.update

    transcope.Complete

    End Using

    transcope.dispose

    transcope = nothing

    objC.Inquiry

    objC.Inquiry invoke the stored procedures that join with a linked server view that query from LDAP

    The same objC.Inquiry is run fine when calling before the transaction occurs.

    It seems the connection assigned to the inquiry call still hook with "transaction". Not sure if it is the result of confict when using Connection Pool, System Transaction, Enterprise Library and LDAP together. Run the application in debug mode, I see Transaction.Current is "nothing" after the Dispose and when executing the objC.Inquiry. The error seems to indicate the connection used in objC.inquiry has "transaction" context.

    My issue is similar to the post http://forums.lhotka.net/forums/p/7927/37895.aspx but I need a different solution than adding a function in the business layer and use System.Directory Services to query LDAP

Todas las respuestas

  • viernes, 29 de junio de 2012 13:59
     
     Respuesta propuesta

    Hi,

    I am having same problem that you had. Were you able to resolve it? 

    • Propuesto como respuesta programmer_gal lunes, 23 de julio de 2012 13:28
    •  
  • lunes, 23 de julio de 2012 13:28
     
     

    For somebody, who is having the same problem as I had and could not find solution anywhere.

    I tried couple of things and nothing worked and finally I tried using Transaction Isolation Level and I wrapped my query as shown below in transaction statement.

    SET TRANSACTION ISOLATION LEVEL read uncommitted
    BEGIN TRANSACTION GetData

    //queries go here

    COMMIT TRANSACTION GetData

    It worked like a charm. Problem solved.