---
title: "Har jag låst på rätt ställen?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/13132-har-jag-låst-på-rätt-ställen"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Harback"
published: "2001-12-10T21:40:00.000Z"
updated: "2001-12-11T12:32:00.000Z"
replies: 4
views: 165
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/13132-har-jag-låst-på-rätt-ställen"
---

# Har jag låst på rätt ställen?

## #1 — Harback, 2001-12-10T21:40Z

Hejsan. Använder mig av Vides statistik (fungerar kanon) men jag tyckte att man borde låsa applikationerna i global.asa innan de ändras. Har jag rätt? 

Så här:

```
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Session_OnStart
  Set objConn = Server.CreateObject("ADODB.Connection")
  objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../dbhifi.mdb") & ";" & " Jet OLEDB:Database Password=" & xxxxx

  strIp = Request.ServerVariables("REMOTE_HOST")
  strKlient = Request.ServerVariables("HTTP_USER_AGENT")
  dtmDatum = Now
  strReferer = Request.ServerVariables("HTTP_REFERER")

  SQL = "INSERT INTO logg (dtm, ip, klient, referer)" &_
  " VALUES (#" & dtmDatum & "#, '" & strIp & "', '" & strKlient & "', '" & strReferer & "')"
  objConn.Execute(SQL)

  objConn.Close
  Set objConn = Nothing

  Application.Lock
  Application("intActive_users") = Application("intActive_users") + 1
  Application.UnLock
End Sub

Sub Session_OnEnd
  Application.Lock
  Application("intActive_users") = Application("intActive_users") - 1
  Application.UnLock
End Sub

Sub Application_OnStart
  Application("intActive_users") = 0
End Sub
</SCRIPT>
```

Är det något mer ställe som det är bra att låsa? När man skriver till databasen kanske?

En annan fråga. Session_OnEnd fungerar ju lite sådär, går det att lösa på annat vis att visa hur många som är på sidan?

Tacksam för svar.

Permalänk: https://www.webforum.nu/p/13132

## #2 — Vide, 2001-12-11T07:46Z

Du behöver bara låsa application när du vet att någon klient har möjligheten att ändra. Så du behöver inte ändra när du skriver till databasen, den använder ju inte ens application, och ingen klient skulle i sånna fall ändrat applications värde.

> En annan fråga. Session_OnEnd fungerar ju lite sådär, går det att lösa på annat vis att visa hur många som är på sidan?

Inte på något smidigt sätt.

Permalänk: https://www.webforum.nu/p/300486

## #3 — Harback, 2001-12-11T08:01Z

Okej, så jag har låst på rätt ställen då eller?

Det går inte att lösa mitt andra problem med IsClientConnected på någe vis? Bara tänkte att kanske...

Permalänk: https://www.webforum.nu/p/300487

## #4 — Vide, 2001-12-11T11:37Z

Jo, du kan använda andra metoder, men alla andra metoder betyder att du måste ha en includefil på varje sida. Vilket är lite krångligt...

Permalänk: https://www.webforum.nu/p/300488

## #5 — PatrikB, 2001-12-11T12:32Z

En annan sak man ska tänka på är att ha subbarna i ordning, dvs i den ordning som de körs:

```
Sub Application_OnStart
'## -- kod som körs när siten startas --
End Sub

Sub Session_OnStart
'## -- kod som ska köras när en ny besökare kommer till siten --
End Sub

Sub Session_OnEnd
'## -- kod som ska köras när besökarens session timas ut --
End Sub

Sub Application_OnEnd
'## -- kod som ska köras när siten stoppas --
End Sub
```

Om ordningen inte stämmer kan session_onend ibland inte triggas, eller, ofta har jag märkt att det beror just på att ordningen är fel.
Har hittils inte haft några problem just med att Session_OnEnd inte triggas när jag har dessa subbar i rätt ordningsföljd alltså i den ordning som de ska köras.

cya,
PatrikB

Permalänk: https://www.webforum.nu/p/300489

---

Tråden på webben: https://www.webforum.nu/amne/asp/13132-har-jag-låst-på-rätt-ställen
