session

Java

2 svar · 247 visningar · startad av jme

Medlem sedan maj 20012 237 inlägg
Trådstart#1

Hej!

Jag har lite funderingar över klassen HttpSession.
I JavaDoc kan jag se att klassen har bl a följande metoder:
getMaxInactiveInterval() samt setMaxInactiveInterval(int).

Som jag förstår så används dessa metoder för att kontrollera samt sätta en session-variabels livslängd.

Men vad betyder egentligen "maximum time interval"?

Som jag förstår så ifall jag besker en sida som kör med:

session = request.getSession();
session.setMaxInactiveInterval(10); // 10 sekunder

så skall session-variabeln bli gammal om "inget händer" på sidan under en period på 10 sekunder.

Jag har testat detta men nog fan finns sessionen kvar efter 10 sekunder. vad är det jag missar?

Medlem sedan aug. 20021 752 inlägg
#2

Jag har testat lite och det verkar som att det tar ca 30 sekunder extra för session att bli inaktiv. Jag kan bara gissa varför det är så och min gissning är att det finns 1 cleaner tråd som kollar om någon session är för gammal och den körs bara var 30'e sekund.
Man kan kanske i någon config fil ställa in hur ofta sessions ska städas bort. Men i vanliga fall brukar ju 30 sekunder extra vara helt OK.

/Viktor

Medlem sedan maj 20012 237 inlägg
#3

Tack!

Såg själv sen att sessionen faktiskt blev gammal.

269 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
144 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)