Jag anropar en webserver och ska få tillbaks ett dataset men det blir timeout innan det kommer tillbaks. SQL frågan tar lite tid att köra och det är det som gör att det blir timeout (Frågan är optimerad och där är index på databasen). Min fråga är, kan jag på något sätt sätta en längre gräns för timeout på att köra frågan? Det är inte datasetet som har en timeout. Det bör vara webservice anropet. Kolla på timeouten för webservicen... Anropar du en WebService på servern som i sin tur frågar databasen? Om det inte är webservice-anropet som gör timeout så måste det var själva frågan mot databasen, testa att öka timeouten där. Det borde gå att avgöra var problemet om du postar ditt felmeddelande. Jag anropar en funktion på webservern som returnerar ett dataset som jag sen använder i en rapport. Hur lång tid tar frågan om du kör den i query analyzer ? Vad får du för exception? Det är inte så att du genom det kan se om det är timeout i sql-delen eller i webservicen? Webservicens exekvering har vad jag vet begränsad tid på sig att rendera sitt svar. Att fylla datasetet består av att adaptern öppnar en reader internt och sedan går rad för rad och flyttar datat till datasetet. Det kan ta en stund om det är mycket data... Problemet löst: Bara ett tips är att du kan komma åt command objektet ändå via da.SelectCommand. Dvs da.SelectCommand.CommandTimeout = 120. Bara en tanke som ger mindre kod, dvs mindre slit på fingeravtrycken...Dataset och timeout
Jag kan inte hitta någon information om timeout på dataset...
Tacksam för hjälp!
/CSv: Dataset och timeout
Sv: Dataset och timeout
/JohanSv:Dataset och timeout
Ja det verkar vara frågan som gör en timeout. Hur kan jag öka den tiden ? Query Wait på SQL servern är -1 och det ska väl vara tillräckligt?!
Jag har precis testat att använda en sqldatareader(med tillräckligt lång timeout) istället och det funkar!
/CSv: Dataset och timeout
I din rutin kan du sätta timeout och tillåta hur länge du skall vänta
try
dim myproxy as webservice1 = new webservice.nånting
myproxy.timeout = 10
dim ds as dataset = myproxy.hämtadata(inparameter)
catch ex
response.write "vi har fått timeout"
end try
Obs! Använd inte datareader från webservicen och skicka - den stänger inte connection och således så är den väldigt dålig att använda för ändamålet webservice.Sv: Dataset och timeout
Sv:Dataset och timeout
comm = New SqlCommand(strSQL, conSQL)
comm.CommandType = CommandType.Text
comm.Commandtimeout = 120
da = New SqlDataAdapter(comm)
ds = New DataSet()
da.Fill(ds, "Mitturval")
Jag använde inte SQLCommand objektet innan och kunde inte sätta timeout.
Tack för era snabba svar och vilja att hjälpa :o)
/CSv: Dataset och timeout