Har ett problem med en av mina ASP-app:ar (klassisk ASP). Använder du connection.Execute() för att öppna recordset? lite sent svar...men problemet kvarstår dock, inte kritiskt men fortfarande jobbigt problem :) Först och främst bör du flytta dina SQL frågor till Stored Procedures. Tack för svaret... Rekursiva funktioner i kombination med recordsets är en mycket dålig idé. Troligen är det orsaken till din servers dykande.ASP app suger för mycket minne - restart av app-pool
Den ligger på ett webbhotell i en helt egen app-pool (IIS6) och det är någonting som suger mycket minne/resurser från den vilket gör att den startar om stup i kvarten.
Den har bara ett fåtal samtidiga användare så jag är rätt så säker att felet ligger nånstans i koden, tex att jag glömmer att stänga nåt ADO recordset eller connection.
Är dock väldigt noga med såna grejjer men jag vet inte annars vad det kan vara.
Jag undrar om nån vet nåt bra sätt att felsöka detta, att få nåt sorts hum om vilken sida eller liknande som ställer till problem?
Vill ju helst slippa gå igenom koden på femtioelva sidor...men är det enda sättet så finns det ju inte så mycket att göra.
Aja, alla tips är välkomna...små som stora :)Sv: ASP app suger för mycket minne - restart av app-pool
Sv:ASP app suger för mycket minne - restart av app-pool
japp...på många ställen gör jag:
set rs = conn.Execute("SELECT * FROM tabell")Sv: ASP app suger för mycket minne - restart av app-pool
Därefter, för att minimera tiden du har dina connections mot databasen öppna kan du göra på följande sätt:
' Kör din query som vanligt
set rs = conn.Execute("SELECT * FROM tabell")
if (not rs.EOF) then
' Hämta ut all data som frågan generade
tabelldata = rs.getrows()
else
tabelldata = null
end if
' Stäng ner din connection och förstör recordset
rs.close()
conn.close()
set rs = nothing
set conn = nothing
' Bearbeta / visualisera data
if (tabelldata != null) then
' Hittade data
' "tabelldata" innehåller nu en matris med all data från din databasfråga.
' Du kommer åt innehållet genom att göra som följande:
Response.write( tabelldata(0,0) )
' Raden ovan skriver ut första kolumnen i första raden.
else
' Fanns ingen data
end if
Sv:ASP app suger för mycket minne - restart av app-pool
Hmmm...jag gör alla selects mot vyer...dock inte SPs...tjänar man verkligen nåt att ha SPs istället?
All uppdatering av databasen görs dock med SPs.
Sen använder jag disconnected recordsets överallt...så jag stänger anslutningen direkt efter att jag kört frågan. Recordsetet stänger jag sen så fort jag använt det klart...
Har också hållt på med GetRows() förrut...men gillar den inte när arrayerna inte kan vara associativa utan vanliga a la arrRs(0,0)...fulkod :)
Jag tror jag får ta några kvällar och bara tråkläsa igenom all kod ordentligt.
Jag har en konstig rekursivfunktion som klonar ett recordset...som kanske inte gör rent efter sig (fråga inte vad den gör...hehe)Sv: ASP app suger för mycket minne - restart av app-pool
Jag utvecklade ett forum en gång i tiden med den tekniken, och det krävde inte mer än ett tiotal inlägg och 2-3 besökare för att IIS:en skulle dyka. Gick runt problemet med cache :)