06-04-2014

Husk at lukke databaseforbindelserne

Det er genialt med weekender, hvor man ingenting skal. Det kan ofte blive dyrt for mig, fordi jeg kan sidde og surfe på nettet og finde ligegyldige ting, jeg bør købe. Jeg har dog brugt under 500 kr. på den konto indtil videre.

Jeg har også brugt lidt tid på at tage hånd om de fejl, der er dukket op her på siden. Flere har oplevet, at de ikke kunne tilgå siden. Men efter et minut eller to bliver den tilgængelig igen. Jeg har været i dialog med Surftown om, der er noget galt med serveren, for det er ikke et problem der har været tidligere. Og jeg har ikke pillet ved den bagvedliggende kode, siden stort set siden, den kom online for år tilbage.

Jeg troede til at starte med, at problemet bundede i mine aggressive xhtml-krav. Det var noget, jeg gik meget op i engang. Jeg har prøvet, at pille det fra, men det var helt uden effekt på problemet.

Det gjorde det dog lettere, at se fejlmeddelelserne. Fejlmeddelelserne kunne nemlig ikke vises tidligere, da den standard-html-kode, der viser fejlmeddelelserne ikke er skrevet i korrekt xhtml.

Fejlmeddelelsen leder mig i retning af den control der styrer blokken med Blogarkivet. Den der viser Antallet af indlæg fordelt på måneder og år i højre side.

Jeg har faktisk tidligere bemærket, at den blok somme tider ikke blev indlæst, men at den bare blev efterladt tom. Så det var ikke fremmed for mig, at der kunne være et problem her. Siden er dog altid blevet vist alligevel, så problemet har ikke rigtigt været grelt før nu.

Jeg tænker at ændringen skyldes webhotellets flytning fra ét kontrolpanel til at andet, men jeg ved det ikke.

Jeg opdager, at jeg opretter en ny forbindelse til databasen for hver måned og år i listen. Så det er jo noget, der vil blive tungere og tungere med tiden.

Generelt kunne koden godt optimeres ved at lave én database-forbindelse og hente alle dataene én gang for alle. Men jeg finder ud af, jeg ikke lukker forbindelserne igen, og på den måde laver jeg altså i øjeblikket 80 åbne databaseforbindelser bare på den lille blok.

Det kan ikke være optimalt. Så jeg har tilføjet denne linje i to funktioner:

myConn.Close();

Jeg håber det hjælper.

16:19
Etiketter: Webudvikling
Kommentarer

HegelundHegelund

Lyder da bestemt ikke usandsynligt, nice find :)
9. april 2014 kl. 09:00 Citér
Website:

Martin P.Martin P.

Nu er det mange år siden jeg sad med ASP, men bliver close() ikke kaldt automatisk når objektet "dør"? Ikke at det ikke er god skik at lukke forbindelsen når der ikke er brug for den mere, men jeg tvivler på det gør den store forskel - især på så lille og ligegyldig en blog som din. Ellers spørg Lars BJ - han plejer at kunne få det til at virke derhjemme. Men kun med JAVA.
11. april 2014 kl. 17:56 Citér
Website:

Kasper TranzKasper Tranz

Hehe
Det er også længe siden, jeg har leget med asp classic. Nu er det jo asp.net C#, der gælder, og der tror jeg ikke, vi kommer ud over det. Men jeg ved det ikke. Jeg kan bare konstatere at problemet ikke er der længere.

Lars var jo selvudnævnt mester i alle programmeringssprog, så mon ikke han havde spottet fejlen, før han havde fået skrevet hele adressen ind i browseren. Eller måske bare via magi.

Jeg tager en krydderbolle og noget cola light, så kører det for mig.

12. april 2014 kl. 01:13 Citér
Website:

Martin P.Martin P.

Det er det samme i .NET:

www.codeproject.com/Articles/442069/ASP-NET-How-To-Use-Open-Close-Connections-Correctl

"The Dispose() will automatically close the Connection before disposing it."

Jeg er holdt op med at drikke sodavand, Chaps, så jeg nøjes med en krydderbolle! Kunne du ikke blogge lidt om den anspændte situation i Ukraine?
13. april 2014 kl. 15:28 Citér
Website:
Skriv en kommentar

E-mailen offentliggøres ikke på siden - Anvendes til at vise Gravatars.
Gengiv koden i billedet