** Viktigt **
Den senaste tiden har Aktieguiden vid ett par tillfällen om dagen hängt sig för mig. Efter 15-20 minuter brukar systemet komma igång igen och då fungera som vanligt. Mycket irriterande. Med anledning av detta har vi letat intensivt efter vad som kan tänkas orsaka problemet - hittills dock utan framgång.
Jag skriver det här inlägget för att ni ska känna till att vi arbetar på att försöka hitta och åtgärda felet. Säg gärna till om ni uppmärksammar några mönster i dessa störningar, det skulle hjälpa oss mycket.
Mvh // Staffan
Webmaster på Aktieguiden
Har uppstått en gång för mig och då när jag var inloggad men det försvann efter några minuter.
Nu verkar det som att min kollega Charlie har lyckats hitta och kanske även åtgärda detta problem. Håll tummarna.
Säg gärna till direkt om det ändå fortsätter att hänga sig.
Ifall ni är intresserade av vad som ställt till det för oss så tror jag att det är bäst om Charlie själv förklarar, det är knappt så att jag förstår det själv... :)
Mvh // Staffan
Webmaster på Aktieguiden
#3
Vore kul att höra Charlie:s fantastiska lösningar. (Själv tekniker och försöker lära mig mera...)
mvh/viotto
Ok, jag ska göra ett försök.
Problemet är relaterat till något som kallas lås, detta är något som finns i alla multitrådade virtuella maskiner så som CLR (.NET) och JVM (Java). När vi ska exekvera något i databasen så har vi en pool av exekveringsobjekt som kan tas av webserverns trådar. När man tagit exekveringsobjektet så tar man omedelbart även ett lås för just det objektet så att ingen annan tråd av misstag försöker använda sig av samma objekt, vilket skulle kunna resultera i enormt oförutsägbara resultat. Vi har i möjligaste mån försökt undvika att man hamnar i väntan på att ett exekveringsobjekt ska bli ledigt genom att poolen för exekveringsobjekt automatiskt expanderar ifall flera trådar får vänta.
Det som är knepigt när man utvecklar en virtuell maskin som även managerar minnet (Garbage Collection) är att vid just lås så uppträder en hel del komplicerade beroenden.
Vad som hände med Aktieguiden var, 1 tråd (t1) hade ett exekveringsobjekt. 1 tråd (t2) hade blivit placerad att vänta på sin tur att få köra. Samtidigt blir det lite ont om resurser, CLR startar en Garbage collection (gc).
Under pågånde garbage collection så görs en rollforward på t1 och den bedöms som att den exekverat klart. Vad CLRen glömmer att göra är att släppa låset som t2 väntar på. Alltså kommer t2 att bli hängandes.
/Charlie
Systemarkitekt, Aktieguiden
hehe alltid lika kul o läsa dina inlägg, är det raketforskning, matematiskfysik eller ... ja hemsidesnickeri? :-)
Bör tilläggas:
Hade jag inte arbetat dagligen med exakt liknande problem hade jag aldrig hittat vad problemet fanns. ;)
/Charlie
Systemarkitekt, Aktieguiden
#5 charlie
Excellent förklaring !
mvh/viotto
P.S. Litet råd: lås den här tråden, för det finns inte mycket att tillägga efter charlies uttömmande svar...! ;-) D.S
Japp, nu är allt glasklart! ;-)
#5 Visste jag ju hela tiden, ville bara att ni skulle få visa vad ni går för lite. Pinsamt att det tog sån tid för er att hitta just det där.
Läst "WWW for dummies" nyligen?
|StRY| "Caveat emptor. Buyer beware."
#6
Kanske det, jrockit. ;)
/Charlie
Systemarkitekt, Aktieguiden
Visa sida
Ogilla! 2
Gilla!
De problem jag upplever är just vid inloggning till AG... när jag klickar på min AG-ikon, så händer ingenting på säkert upp emot en halv minut ibland.
Sedan skramlar det till och jag är på väg in.
Om detta skulle vara samhörigt med det problem du funderar över, så kan jag bidra med 1st. iakttagelse
Det startade i samma veva som det nya inloggningsfönstret dök upp
//Sextra
"Knepet är att se till att man inte dör i väntan på det goda livet" - Lee Iacocca