Problema care o descrii (un batch SQL care dureaza 'prea mult') ar trebuii rezolvata prin a identifica de ce dureaza prea mult si apoi luate masurile necesare pentru a face ca acest SQL sa fie executat intr-un timp acceptabil. Masurile necesare depind, evident, de cauza problemei. Rezolvarea problemei prin abandonarea batch-ului daca dureaza prea mult nu rezolva nici o problema, doar cauzeaza timp/resurse/IO/CPU sa fie consumate degeaba pe server.
In alta ordine de idei, raspunsul la intrebarea ta este ca trebuie sa setezi propietatea CommandTimeout pe obiectul SqlCommand care executa batch-ul. . Daca vrei sa folosesti SqlDataAdapter, atunci trebuie sa setezi propietatea CommandTimeout la obiectul care executa batch-ul pentru SqlDataAdapter: SqlDataAdapter.SelectCommand, SqlDataAdapter.InsertCommand, SqlDataAdapter.UpdateCommand sau SqlDataAdapter.DeleteCommand.
Optiunile care le mentionezi sint:
- "Connection Timeout": pentru a controla durata maxima cit clientul astepta deschiderea unei conexiuni noi, dupa cum este descris aici: http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring(VS.71).aspx . Nu exista o optiune "Connection Lifetime"
- sp_configure 'remote login timeout' este durata folosita de SQL Server cind deschide conexiuni externe (linked servers, distributed queries)
- VS options: sincer, habar n-am ce face aceasta optiune :)
HTH,
~ Remus
http://rusanu.com