webForumDet fria alternativet
Logga in / Bli medlem

databaskoppling i application-variabel

ASP

2 svar · 260 visningar · startad av bohlin

Medlem sedan mars 2000263 inlägg
Frågan#1

Jag läste nånstans att man inte ska ha databaskoppliingar i applicationvariabler, utan i vanliga. varför?

Nån som kanske har en länk till nån sida där det står varför?

Medlem sedan dec. 19998 577 inlägg
#2

Det (tycker jag) beror på hur du använder den... jag antar att du menar att du initierar application i global.asa...

Det du inte skall initiera den i Sub Session_OnStart, för då kommer ju det att startas/skrivas över samma application för varje besökare och då tappar man ju allt va Application står för...

Om man skall initiera den i global.asa så skall du använda den i Sub Application_OnStart, då kommer den bara att startas en gång under serverns uppgång...

Allt detta trots är det en bit minne som alltid är upptaget för servern då man startar en Application i Sub Application_OnStart...

Nu blev ju jag också splittrad... :e

Medlem sedan dec. 19996 721 inlägg
#3

Nej, man ska inte ha några objekt i application- eller session-scope. Om man skapar kopplingen i application-scope, måste alla anrop gå via den tråd som t.ex. global.asa skapat.
För det första måste tråden anropas (marshalling), för det andra hamnar alla anrop i kö, dvs. man utnyttjar inte möjligheten till multitrådning.

Däremot är det inte så dumt att lagra kopplingsträngen (connectionstring) i application-scope, så att den blir smidig att komma åt.

Har för mig att det finns artiklar om detta på MSDN.

377 ms totalt · 4 externa anrop · v20260731065814-full.05830320
120 ms — deklarationer (db)
126 ms — hämta statistik (db)
127 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)